在Invoke-Command中执行Exe文件会导致拒绝访问

时间:2012-03-13 18:17:36

标签: powershell

使用Powershell,我正在尝试连接到远程计算机并在该系统上安装exe文件。不幸的是,我在运行文件时遇到Access被拒绝错误。对于这个错误真正奇怪的是,位于同一条路径上的其他exe运行正常,所以我想知道是否可能涉及更隐蔽的内容?

我目前正在使用此命令连接到远程计算机,我是本地管理员。

$InstallFile = "\\networkshare\folder\folder\setup.exe"
$InstallParameters = "SampleParameter1 = 5"
$Server = SERVERNAME.DOMAINNAME.COM
$cred = Get-Credential
invoke-command -Computername $Server -authentication credssp -credential $cred -ScriptBlock { 
    $CurrentProcess = Start-Process -FilePath $InstallFile -ArgumentList $InstallParameters -Wait -PassThru
    $CurrentProcess | Wait-Process
}

我正在使用CredSSP,它似乎运行良好,因为它解决了其他文件的这个问题,但这个只是拒绝。还有其他想法吗?我遇到了与.NET 4类似的问题,但也无法解决该问题。

1 个答案:

答案 0 :(得分:0)

我注意到您正在使用Start-Process来运行可执行文件。根据这个: http://technet.microsoft.com/en-us/library/dd347667.aspx 还有 -Credential 参数可以传递给它。很可能是调用 Invoke-Command 的用户不执行 Start-Process 的情况。尝试将Credential传递给Start-Process:

invoke-command -Computername $Server -authentication credssp -credential $cred -ScriptBlock { 
$CurrentProcess = Start-Process -FilePath $InstallFile - Credential $cred -ArgumentList $InstallParameters -Wait -PassThru
$CurrentProcess | Wait-Process }