使用powershell远程注册ocx

时间:2013-07-19 14:50:54

标签: powershell-v2.0 powershell-remoting

我正在尝试使用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文件没有注册。

2 个答案:

答案 0 :(得分:0)

我认为你过度紧张,试试:

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

答案 1 :(得分:0)

Invoke-Command在远程系统的上下文中运行scriptblock,因此那里不存在$ LocalOCXPath变量。在PowerShell 3.0中,您可以通过在$ Using:前面加上$ Using:来强制在远程上下文中看到该变量,如$ Using:$ LocalOCXPath。

相关问题