我正在尝试使用Powershell 2.0在远程计算机上注册OCX文件。
这不起作用:
$LocalOCXPath = "C:\Windows\SysWOW64\dxapi.ocx"
Invoke-Command -ComputerName $ComputerName -ScriptBlock { "C:\windows\system32\Regsvr32.exe $args" } -argumentlist $LocalOCXPath但这确实是:
Invoke-Command -ComputerName $ComputerName -ScriptBlock { & 'regsvr32.exe' 'C:\Windows\SysWOW64\dxapi.ocx' } 我真的需要能够通过一个变量来传递路径,但我不认为我可以使用选项2来做到这一点,而且我也不知道为什么选项1不起作用。我的意思是,powershell看起来像是正确地调用了该命令,但是当我查看远程计算机时,ocx文件并未注册。
发布于 2013-07-24 16:09:06
我觉得你太过热衷于工程了,试试:
$LocalOCXPath = "C:\Windows\SysWOW64\dxapi.ocx"
Invoke-Command -ComputerName $ComputerName -ScriptBlock { & 'regsvr32.exe' $LocalOCXPath }发布于 2015-03-18 03:41:04
Invoke-Command在远程系统的上下文中运行scriptblock,这样$LocalOCXPath变量就不存在了。在PowerShell 3.0中,您可以通过为变量添加前缀$Using:来强制它在远程上下文中可见,就像在$Using:$LocalOCXPath中一样。
https://stackoverflow.com/questions/17749160
复制相似问题