Invoke-Command
- Details
- Category: PowerShell
- Created: Tuesday, 24 January 2012 14:59
- Last Updated: Friday, 10 November 2017 19:01
- Published: Tuesday, 24 January 2012 14:59
- Written by Frank
- Hits: 13141
Invoke-Command und Jobs
Beispiel:
Abrufen der Printed Events und auswerten der Events:
$Computers="Host1", "Host2", "Host3", "Host4"
$s=new-pssession-computername$Computers
invoke-command-session$s-scriptblock {
$EventID="307"
$LogFileName="Microsoft-Windows-Printservice/Operational"
$DateFilter= (get-date).AddDays(-1)
$Messages=Get-WinEvent-Computername$_-FilterHashtable @{ logname=$LogFileName;StartTime=$DateFilter; ID=$EventID}
foreach($Messin$Messages){
$Printserver=$_
$PrintTime=$Mess.TimeCreated
$rxRegEx= [regex]"owned by (\S+)"
$rxMatches=$rxRegEx.Match($Mess.Message)
$User=$rxMatches.Groups[1].Value
$rxRegEx= [regex]"was printed on (\S+)"
$rxMatches=$rxRegEx.Match($Mess.Message)
$Printer=$rxMatches.Groups[1].Value
$rxRegEx= [regex]"through port (\S+(?=\.))"
$rxMatches=$rxRegEx.Match($Mess.Message)
$Port=$rxMatches.Groups[1].Value
$rxRegEx= [regex]"Pages printed: (\d+)"
$rxMatches=$rxRegEx.Match($Mess.Message)
$Pages=$rxMatches.Groups[1].Value
$rxRegEx= [regex]"Size in bytes: (\d+)"
$rxMatches=$rxRegEx.Match($Mess.Message)
$Size=$rxMatches.Groups[1].Value
Write-Host"Do what you want..."
Write-Host"$Printserver - $PrintTime - $User - $Printer - $Port - $Pages - $Size"
} -AsJob
Job anschauen, wobei 1 für die ID des Jobs steht:
Get-Job 1
Ergebnisse des Jobs anschauen, wobei 1 für die ID des Jobs steht:
Receive-Job 1
Einen Job entfernen:
Remove-Job 1
Weitere Befehle mit Jobs:
Start-Job
Stop-Job
Get-Job
Wait-Job
Receive-Job
Remove-Job