Difference between revisions of "Invoke-Command"
Jump to navigation
Jump to search
| Line 1: | Line 1: | ||
| + | ``` | ||
| + | $regex = "foo" | ||
| + | foreach($line in Get-Content .\hosts.txt) { | ||
| + | if($line -match $regex){ | ||
| + | write-output $line | ||
| + | Invoke-Command -ComputerName "$line" -ScriptBlock { hostname } | ||
| + | } | ||
| + | } | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
Running command or local script on remote host | Running command or local script on remote host | ||
``` | ``` | ||
Revision as of 07:37, 24 April 2022
$regex = "foo"
foreach($line in Get-Content .\hosts.txt) {
if($line -match $regex){
write-output $line
Invoke-Command -ComputerName "$line" -ScriptBlock { hostname }
}
}
Running command or local script on remote host
curl.exe -L $URL -o C:\tmp\myscript.ps1
$hostname = "myhost"; Invoke-Command -ComputerName $hostname -f C:\tmp\myscript.ps1
Invoke-Command -ComputerName $hostname -ScriptBlock { Get-ChildItem C:\ } -credential $username
Invoke-Command -ComputerName $hostname -f C:\tmp\local-file-on-remote.ps1
Run on array of multiple hosts via foreach
$hostnames = @(
'host1'
'host2'
)
foreach ($hostname in $hostnames) {
Invoke-Command -ComputerName $hostname -ScriptBlock { ipconfig }
}