Difference between revisions of "Invoke-Command"

From UVOO Tech Wiki
Jump to navigation Jump to search
Line 6: Line 6:
 
         Invoke-Command -ComputerName "$line" -ScriptBlock { hostname }
 
         Invoke-Command -ComputerName "$line" -ScriptBlock { hostname }
 
     }
 
     }
 +
}
 +
```
 +
 +
```
 +
foreach($line in Get-Content .\hosts.txt) {
 +
    write-output $line
 +
    Invoke-Command -ComputerName "$line" -ScriptBlock { sc.exe failure "my service" reset=36000 actions=restart/90000 }
 
}
 
}
 
```
 
```

Revision as of 15:20, 10 May 2022

$regex = "foo"
foreach($line in Get-Content .\hosts.txt) {
    if($line -match $regex){
        write-output $line
        Invoke-Command -ComputerName "$line" -ScriptBlock { hostname }
    }
}
foreach($line in Get-Content .\hosts.txt) {
    write-output $line
    Invoke-Command -ComputerName "$line" -ScriptBlock { sc.exe failure "my service" reset=36000 actions=restart/90000 }
}

https://stackoverflow.com/questions/33511772/read-file-line-by-line-in-powershell

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 }
}