How to execute a powershell script available in remote machine?

81,725

Solution 1

When you write :

invoke-command -computer $MachineName -filepath "C:\hello.ps1"

The script C:\hello.ps1 will be taken from the client computer and brought to the server to be executed. So you've got the error file does not exist because Invoke-Command is looking for the file in the client computer.

Solution 2

I got the same error but I hooked a Remote session in a variable in your code and finally have something that works:

$s = New-PSSession -ComputerName "WTxxxxxL32" -Credential $credential

Invoke-Command -Session $s -Command {D:\ServerDLLDev\RemoteCOMInstall.ps1}

There are a million Invoke-etc solutons but the simplest worked finally for me. Thanks to you.

Share:
81,725
Samselvaprabu
Author by

Samselvaprabu

I am mainly working as a Build and integrator. I am maintaining ESXi servers and doing little bit of Configuration management activities (Base Clearcase and clearcase UCM) as every build and integrator.

Updated on December 31, 2021

Comments

  • Samselvaprabu
    Samselvaprabu over 2 years

    I was trying to execute a script in remote computer.

    I did "Enable-PSremoting" in the remote machine.

    I placed a script hello.ps1 in remote machine.

    [My client machine is Windows XP and remote computer is Windows 2003 ]

    Then from my client computer i was trying to execute the script.

    invoke-command -computer $MachineName -filepath "C:\hello.ps1"
    

    I got the following error.

    Invoke-Command : Cannot find path 'C:\hello.ps1' because it does not exist.

    I think it tries to find script from client machine.

    If i try to run

    invoke-command -computer $MachineName -command { C:\hello.ps1 } , It executes the script available in remote machine in client side.

    But i would like to execute the remote script in remote machine itself.

    How to make it to run the script available in remote machine?

    Updated:

    Actually this command "invoke-command -computer $MachineName -command { C:\hello.ps1 }" works in remote side and returned the result to client side. I misunderstood by seeing the return values that it is executing at client side.