2010-10-11 155 views
1

我无法使用sysocmgr.exe在远程服务器上运行Windows组件的远程安装。它与psexec.exe \\ServerName -i sysocmgr.exe /i:%wnidir%\inf\sysoc.inf /u:\\path\to\components.txt一起工作,但我想使用PowerShell远程实现相同的结果。使用powershell remoting在远程服务器上运行sysocmgr.exe

我有WinRM的PowerShell远程工作正常,但我无法使用PowerShell远程运行sysocmgr.exe。

我所做的这两个服务器(本地和远程)上:

  1. Set-ExecutionPolicy unrestricted
  2. Enable-PSRemoting - OK
  3. Set-Item WSMan:\localhost\Client\TrustedHosts *
  4. 我已经重新启动WinRM服务,并且它是工作

所有这一切都在两台服务器上工作,我建立了一个持久性远程会话中使用新的PSSession:

$s = NewPSSession -ComputerName Server1 

然后我试图发动PowerShell脚本(script.ps1),它保存在访问共享给所有服务器,并包含:

sysocmgr.exe /i:%wnidir%\inf\sysoc.inf /u:\\path\to\components.txt 

我用调用命令:

Invoke-Command -Session $s -FilePath \\NetworkShare\Scripts\script.ps1 

推出上述调用命令我可以在任务管理器中的远程服务器(服务器)上看到后,那sysocmgr.exe运行,但不起任何作用。 Windows组件安装程序没有启动...

我试着使用:

enter-pssession -computername Server1 - 工作得很好 尝试启动script1.ps1和它做同样的事情,我可以看到在任务的sysocmgr.exe经理,但它什么都不做......

我想我错过了一些参数与桌面交互,就像在PSEXEC的“-i”参数,我不能在PowerShell中找到...

谢谢您的帮助。

回答

0

我希望你的PowerShell脚本,看起来像这样:

sysocmgr.exe "/i:${env:windir}\inf\sysoc.inf" "/u:\path\to\components.txt" 
+0

不幸的PowerShell可以处理两种类型的变量,尽管%WINDIR%正常工作,以及在$ {ENV:WINDIR}但也解决了问题。我也添加了双引号,但它仍然不起作用... – kubusz 2010-10-12 07:30:08

+0

PowerShell本身不会识别“%var%”。顺便说一句,在你的文章或者你的代码中是错字“%wnidir%”吗? – JasonMArcher 2010-10-13 16:45:20

+0

你有没有解决你的问题?我有你看到的excact问题.. – Sune 2012-01-12 14:54:59

相关问题