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, 1201 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 DataTable DataView (4)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell 2 DataTable Daten mergen (6)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

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

Frage von Markus2016 zum Thema Batch & Shell ...

Visual Studio
Sortierung von DataTable nach Select aufgelöst (1)

Frage von ForgottenRealm zum Thema Visual Studio ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

LAN, WAN, Wireless
Gebäudeverkabelung 10Gigabit LWL (27)

Frage von raffzwo zum Thema LAN, WAN, Wireless ...

Windows Update
Novemberpatches und Nadeldrucker bereiten Kopfschmerzen (14)

Tipp von MettGurke zum Thema Windows Update ...