使用PowerShell脚本中的PsExec和RegSvcs.exe远程注册.dll

时间:2014-09-08 17:45:34

标签: powershell registration psexec

我正在尝试使用PowerShell脚本中的PsExec在远程服务器上注册.dll。

我的脚本如下所示:

ForEach($component in $registerComponents) {
    try {
        PsExec "\\$targetServer" -u $userName -p $password C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegSvcs.exe /u /nologo "$component.dll"
    }
    catch {
        Write-Host $Error
    }
}

每次运行脚本时,它都将比挂起之前的一个组件进一步前进,即第一次运行它时,它将成功取消注册第一个$组件并挂起第二个组件;第二次,第一个和第二个组件在挂在第三个组件之前将被取消注册。

认为RegSvcs.exe进程可能仍在远程服务器上运行并且这可能是原因,我添加了一个PsKill调用,如下所示:

ForEach($component in $registerComponents) {
    try {
        PsExec "\\$targetServer" -u $userName -p $password C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegSvcs.exe /u /nologo "$component.dll"
        PsKill "\\$targetServer" -u $userName -p $password RegSvcs.exe
    }
    catch {
        Write-Host $Error
    }
}

......但无济于事。从服务器上的远程登录,taskmanager将在它运行时显示RegSvcs.exe;当脚本挂起时,似乎进程没有被执行。

这似乎应该可以正常工作,但我无法做到这一点。 对此有任何帮助将非常感激。

0 个答案:

没有答案