2013-07-19 70 views
0

我正在嘗試使用Powershell 2.0在遠程計算機上註冊OCX文件。使用powershell的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文件未註冊。

回答

0

我想你overenginnering,嘗試:

$LocalOCXPath = "C:\Windows\SysWOW64\dxapi.ocx" 
Invoke-Command -ComputerName $ComputerName -ScriptBlock { & 'regsvr32.exe' $LocalOCXPath } 
0

調用命令運行在遠程系統的上下文中的腳本塊讓你的$ LocalOCXPath變量不存在那裏。在PowerShell 3.0中,你可以強制變量在遠程上下文中顯示,方法是在$ Using:$ LocalOCXPath中加上$ Using:作爲前綴。