Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Powershell Jobs Parallel Ergebnis in DataTable mag bei GUI nicht ohne gehts

Frage Entwicklung Batch & Shell

Mitglied: H41mSh1C0R

H41mSh1C0R (Level 3) - Jetzt verbinden

12.09.2017, aktualisiert 13.09.2017, 271 Aufrufe

Servus,

folgendes geht im Trockentest:

01.
$servers =  @('ServerA','ServerB','ServerC','ServerD','ServerE' ) 
02.
 
03.
foreach ($server in $servers) { 
04.
    $running = @(Get-Job | Where-Object { $_.State -eq 'Running' }) 
05.
    if ($running.Count -ge 2) { 
06.
        $running | Wait-Job -Any | Out-Null 
07.
08.
 
09.
    Write-Host "Starting job for $server" 
10.
    Start-Job { 
11.
        Param($server)  
12.
        $PxeS   = Invoke-Command -ComputerName $using:server -ScriptBlock { Get-Service -DisplayName "Service1" -ErrorAction SilentlyContinue  }  
13.
        $CoreS  = Invoke-Command -ComputerName $using:server -ScriptBlock { Get-Service -DisplayName "Service2" -ErrorAction SilentlyContinue }  
14.
        
15.
        New-Object PSObject -Property @{ Servername=$using:server ; PxeS=$($PxeS).Status;CoreS=$($CoreS).Status } 
16.
    }  
17.
18.
 
19.
Wait-Job * | Out-Null 
20.
 
21.
foreach($job in Get-Job) 
22.
23.
    $result = Receive-Job $job 
24.
    Write-Host $result.Servername 'PXE: ' $result.PxeS   'CoreS: ' $result.CoreS 
25.
26.
 
27.
Remove-Job -State Completed
Die Jobs rennen auch wunderbar parallel los und er liefert mir zu den Diensten auch die Werte.

Jetzt habe ich den obrigen Block versucht zu erweitern um das hinzufügen in eine DataTable.

01.
$result = Receive-Job $job 
02.
            
03.
    $row = ($result.Servername, 
04.
         $result.CoreS, 
05.
         $result.PxeS,) 
06.
 
07.
    Write-Host $result.Servername 'PXE: ' $result.PxeS   'CoreS: ' $result.CoreS 
08.
 
09.
    $global:table.Rows.Add($row) 
10.
 
11.
    $dataGridView.Update()

Die Table ist an ein DGV gebunden und er gibt mir immer nur die Werte vom Ersten Job aus.
Bei 5 Servern bekomme ich so nur ServerA und dann 4 leere Zeilen.
Selbst das write-host gibt bei der Variante nichts aus.
Nutze ich den reinen Trockentest bekomme ich in der Console von allen Servern auch den Status der Dienste ausgegeben.

;( ?

Hat einer eine Idee?

Irgendwas falsch beim Zusammenbauen der $row?

VG


EDIT:
Übeltäter gefunden

01.
Remove-Job -State Completed
Nachdem die Ergebnisse vom ersten Job abgearbeitet wurden kam das Cmdlet zu früh und räumte alle anderen Jobs ab. =)

Ähnliche Inhalte
Batch & Shell
gelöst Powershell - LastExitCode aus Job? (7)

Frage von Markus2016 zum Thema Batch & Shell ...

Batch & Shell
gelöst Erstellen eines GUI in Powershell und das nutzen vom Funktionen mit Usereingabe (2)

Frage von IT-Guy77 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Windows Uptime in einer Gui (8)

Frage von blackhawk17 zum Thema Batch & Shell ...

Batch & Shell
gelöst Cmd Befehle in Powershell GUI aufrufen (5)

Frage von Markus2016 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(8)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(27)

Information von SeaStorm zum Thema Utilities ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...