Powershell:远程exe安装

时间:2017-03-16 23:29:40

标签: windows powershell exe invoke-command

我的脚本设计用于远程安装可执行文件时出现问题。我脚本的所有初步操作都运行得很好。我从文本文件中获取了大约十几台计算机的主机名。我使用PSExec来启用PSRemoting。然后将安装程序复制到远程计算机上的临时目录中。除了重要的部分,一切都很好。我无法安装它。

我尝试了以下内容:

 Invoke-Command -ComputerName remoteComp -ScriptBlock {C:\temp\installer.exe} -ArgumentList /SILENT
 Invoke-Command -ComputerName remoteComp {Start-Process C:\temp\installer.exe -ArgumentList /SILENT -Wait}

我尝试过像这样使用New-PSSession:

 $s = New-PSSession -ComputerName remoteComp
 Invoke-Command -Session $s -ScriptBlock {C:\temp\installer.exe} -ArgumentList /SILENT

没有发送任何错误,他们什么都不做。具有-Wait的命令永远挂起。如果我放了-Sleep,它只是等待请求的秒数然后结束,什么都不做。我不知道这是否重要,但是当我使用/ SILENT开关在本地计算机上运行可执行文件时,它不会请求任何提示,但它会打开一个资源管理器窗口。

我尝试使用PSExec.exe,但我得到了类似的结果。它只是永远挂起而没有任何错误。在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

在与这个东西打架之后,我能够通过创建批处理文件然后使用

成功安装exe
select ai.MainAccount as "Main", mi.MainAccount as "Secondary"
from #AccountsInterval ai
cross join #MainAccounts mi
where mi.MainAccount >= ai.FromAccount and mi.MainAccount <= ai.ToAccount

批处理文件中的所有内容都是

 Invoke-Command -ComputerName remoteComp -ScriptBlock {C:\temp\installer.bat}

ssaviers提到了另一种对我有用的方法,我可以使用schtasks.exe来安排一次性任务。

答案 1 :(得分:0)

尝试里面的参数列表......如果exe支持它。

例如:

Invoke-Command -ScriptBlock { c:\temp\yourexe.exe /verysilent /norestart /log="c:\install.log"}

请尝试。