In this post i want to show you some ways how to execute remote execution of scripts.
First the complicated way:
connect – set execution policy – copy script, execute, delete – roll back execution policy
$Computername=Name #"Start Session" $s = New-PSSession -ComputerName $Computername #"Enable Script Execution on remote System..." Invoke-Command -Session $s -scriptblock { Set-executionpolicy unrestricted } #Copy Script Copy-Item H:\Skript.ps1 \\$Computername\c$\temp\Skript.ps1 #"Start Script..." Invoke-Command -Session $s -scriptblock { c:\temp\Skript.ps1 } #Delete Script Remove-Item \\$Computername\c$\Skript.ps1 #Disable Script Execution on remote System... Invoke-Command -Session $s -scriptblock { Set-executionpolicy default } #End Session Remove-PSSession $s
Next we use Invoke-Command – the scriptfile is copied and executed within the command itself:
Invoke-Command -computer Computername -FilePath C:\Skript.ps1
Next code connects to a computer NOT using Kerberos. This can become necessary if you want to connect to computers outside your domain:
$Computername=Name #Not using Kerberos: cd WSMan:\localhost\Client Set-Item trustedhosts $Computername -force Restart-Service winrm Invoke-Command Computername { #Skript in here#} -authentication negotiate -credential Get-Credential
Have fun with it.
~David