PSSession不会更改工作目录

时间:2015-09-23 15:36:59

标签: powershell powershell-remoting

我有一个我试图实施的脚本。如果我单独运行每一行,它就可以正常工作。但是,如果我将它放在一个函数中,或者运行PowerGUI或Powershell ISE,它就会出错。问题是脚本没有更改工作目录,因此找不到Invoke-Command正在调用的文件。

$DLUpdate = New-PSSession -ComputerName msmsgex10wprd03 -Credential $DLUpdateCred -Name DLUpdate

Enter-PSSession -Session $DLUpdate

$UpdateDLPath = 'c:\users\mascott2\Desktop\Distrolist\Updates\'

Set-Location $UpdateDLPath

Invoke-Command -ScriptBlock {cmd.exe "/c updatedls.bat"}

Exit-PSSession 

Remove-PSSession -Name DLUpdate

1 个答案:

答案 0 :(得分:1)

你不应该在这样的脚本中使用Enter-PSSession。将您想要的所有命令放入与Invoke-Command一起使用的脚本块中,然后针对您的会话运行它:

$DLUpdate = New-PSSession -ComputerName msmsgex10wprd03 -Credential $DLUpdateCred -Name DLUpdate

Invoke-Command -Session $DLUPdate -ScriptBlock {
    $UpdateDLPath = 'c:\users\mascott2\Desktop\Distrolist\Updates\'
    Set-Location $UpdateDLPath
    cmd.exe "/c updatedls.bat"
}

Remove-PSSession -Name DLUpdate