Matthew James Scott
Matthew James Scott

Reputation: 21

PSSession will not change the working directory

I have a script I'm trying to implement. If I run each line seperately, it works just fine. But if I place it in a function, or run with PowerGUI or Powershell ISE, it errors out. The problem is the script isn't changing the working directory, therefore the file that Invoke-Command is calling isn't found.

$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

Upvotes: 2

Views: 3871

Answers (1)

briantist
briantist

Reputation: 47832

You shouldn't be using Enter-PSSession in a script like that. Put all the commands you want into the scriptblock you use with Invoke-Command and run it against your session:

$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

Upvotes: 3

Related Questions