Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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 If mit Continue

Frage Microsoft Windows Server

Mitglied: lenny4me

lenny4me (Level 2) - Jetzt verbinden

20.06.2011, aktualisiert 13:32 Uhr, 5024 Aufrufe, 22 Kommentare

Hallo Kollegen ich Grüße euch und wünsche einen wunderschönen Tag

Ich habe ein Problem mit einem kleinen Powershell script.
Ich möchte alle Server die einen Neustart benötigen (Windows Updates) per Script nachts neu starten. Ein paar Maschienen die aber auch Nachts laufen müssen vom Neustart ausnehmen...

Was ich schon habe... Alle Server/Clients werden angezeigt...

Das Problem sind die Ausschlüsse..
hier mein Script (das meiste aus der Knowledgebase von MS geklaut...)

if (!$wsus) {
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
}

$computerScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope;
$computerScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;

$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope;
$updateScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;

$computers = $wsus.GetComputerTargets($computerScope);

$computers | foreach-object {

$_.FullDomainName | out-file -filepath W:\wsus\Clients_reboot_needed.txt -encoding Default -append
$_.FullDomainName |foreach-object {


if ($_ -eq 'Server1.Domain.de'){
continue
}
if ($_ -eq 'Server2.Domain.de'){
continue
}
if ($_ -eq 'Server3.Domain.de'){
continue
}
if ($_ -eq 'Server4.Domain.de'){
continue
}
if ($_ -eq 'Server5.Domain.de'){
continue
}
if ($_ -eq 'Server6.Domain.de'){
continue
}
write-host $_

}

Wenn ich nun dieses Scriptchen ausführe listet er mir nur 2,3 Rechner auf. Wenn ich aber das Continue weglasse sind es wesentlich mehr...
Ich will einfach wenn der Servername gefunden wird, die Schleife zurücksetzen und mit dem nächsten Wert starten... aber aufgrund irgendeinem Fehler will er nicht... Er läuft bis der erste Name matched und steigt dann aus der gesamten Schleife aus... wie bei Break (da gibt genau das gleiche Ergebnis zurück).
Wenn man die If Abfragen auf ElseIf umstrickt gibt er schon mehr Clients zurück... Aber immer noch nicht alle...
Continue sollte doch der richtige Befehl sein oder?

Grüße Lenny
Mitglied: LittleFlame
20.06.2011 um 13:53 Uhr
Hallo Lenny,

Ich hab jetzt nur mal kurz drübergeschaut, werd mich aber gleich noch n bisschen damit beschäftigen.
Aber das erste was mir aufgefallen ist, ist, dass für

$computers | foreach-object {

am Ende noch die } fehlt. (Evtl auch einfach Copy & Paste falsch)

Ich schau mal schnell drüber.

Grüße,
LF
Bitte warten ..
Mitglied: lenny4me
20.06.2011 um 14:00 Uhr
Hallo,

falsches Copy Paste... in meinem Script stimmts...

Danke für die Hilfe.

Grüße Lenny
Bitte warten ..
Mitglied: LittleFlame
20.06.2011 um 14:09 Uhr
Überprüfst du verschiedene Domains, oder befinden sich alle deine zu überprüfenden Rechner in der selben Domain?

Grüße,
LF
Bitte warten ..
Mitglied: lenny4me
20.06.2011 um 15:02 Uhr
irgendwann kann man darüber sprechen ob er mehrere Domain abklopfen soll... Momentan würde mir die Domain des WSUS reichen...
Es wäre noch interessant wie ich eine einzelne Gruppe am WSUS Server auslesen kann... Momentan nimmt er mir die gesamten Clients des WSUS mit...


Grüße Lenny
Bitte warten ..
Mitglied: LittleFlame
20.06.2011 um 16:04 Uhr
So... hab mal n bisschen drübergelesen.

Also wenn ich das richtig verstehe, versuchst du mit

if ($_ -eq 'Server1.Domain.de'){
continue
}

die Clients wegzuschreiben, die erlaubt sind, oder?

Aber was passiert, wenn der Client nicht vorkommt?
Dann hängt die Schleife ohne Anweisung irgendwo.

Kann sein, dass ich des falsch verstehe, aber für mich hast du hier keine "Ausnahmen" sondern nur erlaubte Clients.
Und sobald ein Client kommt, der nicht aufgeführt wird, macht dein Script nichtsmehr.

Hab ich das so richtig verstanden?
Bitte warten ..
Mitglied: LittleFlame
20.06.2011 um 16:29 Uhr
Hab nochmal oben nachgelesen...

Ich will einfach wenn der Servername gefunden wird, die Schleife zurücksetzen

Ich bin nicht der große Powershell-Guru, aber warum willst du die Schleife zurücksetzen?
Für deine ersten Tests (Du schreibst das ganze ja momentan nur in ein Logfile) ist es doch unsinnig, die Schleife zurücksetzen zu wollen

Wenn du einfach anstatt deine IF-Abfragen, das ganze sofort mit write-host $_ ins Logfile schreibst, müsstest du doch am Ende in deinem Logfile alle Clients stehen haben, die einen Reboot benötigen. Und genau das willst du doch, oder?

Fragende Grüße,
LF
Bitte warten ..
Mitglied: lenny4me
20.06.2011 um 17:00 Uhr
write-host $_ werde ich später durch shutdown /r /f /t oder sonstiges Powershell equivalent ersetzen.
Nur zum testen mag ich ned meine Server permanent durchstarten ;D

Die server 1-6 (die mit den If anweisungen) sind Server die ich nicht neustarten möchte.

Also If Name1 stimmt mit If Anweisung überein -> breche den aktuellen Ablauf ab und starte mit einem neuen Servernamen.
Wenn Server2 in den If Anbweisungen nicht vorkommt dann starte Ihn neu -> Starte die Schleife mt neuem Servernamen usw...

Und einen Schleifendurchlauf sollte man eingentlich mit Continue abbrechen können... ( Strg+c... Another useful statement for use in loops in the continue statement. When the execution process finds a continue statement in any kind of loop it skips all remaining code in the body of the loop and begins execution once again from the top of the loop.)


Grüße Lenny
Bitte warten ..
Mitglied: LittleFlame
20.06.2011 um 17:06 Uhr
01.
if (!$wsus)  
02.
03.
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer(); 
04.
05.
 
06.
$computerScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope; 
07.
$computerScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot; 
08.
 
09.
$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope; 
10.
$updateScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot; 
11.
 
12.
$computers = $wsus.GetComputerTargets($computerScope); 
13.
 
14.
$computers | foreach-object  
15.
16.
	$_.FullDomainName | out-file -filepath C:\Temp\test.txt -encoding Default -append 
17.
	$_.FullDomainName | foreach-object  
18.
19.
		if ($_ -eq 'Server1.Domain.de') 
20.
21.
			continue 
22.
23.
		elseif ($_ -eq 'Server2.Domain.de') 
24.
25.
			continue 
26.
27.
		elseif ($_ -eq 'Server3.Domain.de') 
28.
29.
			continue 
30.
31.
		elseif ($_ -eq 'Server4.Domain.de') 
32.
33.
			continue 
34.
35.
		elseif ($_ -eq 'Server5.Domain.de') 
36.
37.
			continue 
38.
39.
		elseif ($_ -eq 'Server6.Domain.de') 
40.
41.
			continue 
42.
43.
		else  
44.
45.
46.
	write-host $_ 
47.
48.
}

Verbessert das das ganze?

Und falls du dich fragst, warum ich als relativer PS-Neuling versuche, das ganze hinzukriegen:
Ich sitze ebenfalls gerade an meinen ersten Powershell-Scripts und dachte mit "Geteiltes Leid is halbes Leid"

Grüße,
LF
Bitte warten ..
Mitglied: lenny4me
20.06.2011 um 20:33 Uhr
Werde es morgen mal versuchen und mich dann morgen mal wieder melden.
Bitte warten ..
Mitglied: lenny4me
21.06.2011 um 07:13 Uhr
Hallo Little Flame,

das Problem bleibt das gleiche. sobald er einen Rechner findet, seigt er aus...

Grüße Lenny

was allerdings etwas mehr bring t ist
01.
$computers | foreach-object {  
02.
               # $_.FullDomainName | write-host ; 
03.
                 $_.FullDomainName | out-file -filepath W:\wsus\Clients_reboot_needed.txt -encoding Default -append 
04.
                 $_.FullDomainName |foreach-object { 
05.
                                               
06.
                         if ($_ -eq 'server1.Domain.de'){ 
07.
            	             continue 
08.
                        				 
09.
			             elseif ($_ -eq 'server2.Domain.de') 
10.
              	             continue 
11.
                        		 
12.
                         elseif ($_ -eq 'serve3r.Domain.de') 
13.
              	             continue 
14.
                        		 
15.
                         elseif ($_ -eq 'serve4r.Domain.de') 
16.
              	             continue 
17.
                        	 
18.
                         elseif ($_ -eq 'server5.Domain.de') 
19.
            	             continue 
20.
                        	 
21.
                         elseif ($_ -eq 'server6.Domain.de') 
22.
            	             continue 
23.
                        }		 
24.
                        write-host $_			 
25.
			              
26.
27.
              }
Aber ich verstehe nicht warum... Grundsätzlich sollte das doch genau das gleiche machen... und es werden zu allem Überfluss in unten genanntem Codebeispiel, Server aufgeführt die ich ausgenommen habe...
Bitte warten ..
Mitglied: LittleFlame
21.06.2011 um 09:32 Uhr
Guten morgen,

du hast in deinem Codebeispiel in Zeile 6 folgendes

01.
 if ($_ -eq 'server1.Domain.de'){  
Warum machst du hier eine klammer auf?

Grüße,
LF
Bitte warten ..
Mitglied: lenny4me
21.06.2011 um 09:43 Uhr
Hallo guten morgen,

naja ich mache eine Klammer auf weil die Anweisung doch in geschweiften Klammern stehen muss?! Ohne Klammer meckert er mir das erste Continue an...

Oder bin ich auf dem Holzweg.

Grüße Lenny
Bitte warten ..
Mitglied: LittleFlame
21.06.2011 um 10:35 Uhr
Wie führst du denn dein Script aus?
Überprüfst du die Bildschirmausgabe, oder nur das, was in der "Clients_reboot_needed.txt" steht?
Bitte warten ..
Mitglied: LittleFlame
21.06.2011 um 10:55 Uhr
Probier mal folgendes:

01.
if (!$wsus)  
02.
03.
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer(); 
04.
05.
 
06.
$file="W:\wsus\Clients_reboot_needed.txt" 
07.
 
08.
$computerScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope; 
09.
$computerScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot; 
10.
 
11.
$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope; 
12.
$updateScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot; 
13.
 
14.
$computers = $wsus.GetComputerTargets($computerScope); 
15.
 
16.
$computers | foreach-object  
17.
18.
	$_.FullDomainName | foreach-object  
19.
20.
		if ($_ -eq 'Server1.Domain.de') 
21.
22.
			continue 
23.
24.
		elseif ($_ -eq 'Server2.Domain.de') 
25.
26.
			continue 
27.
28.
		elseif ($_ -eq 'Server3.Domain.de') 
29.
30.
			continue 
31.
32.
		elseif ($_ -eq 'Server4.Domain.de') 
33.
34.
			continue 
35.
36.
		elseif ($_ -eq 'Server5.Domain.de') 
37.
38.
			continue 
39.
40.
		elseif ($_ -eq 'Server6.Domain.de') 
41.
42.
			continue 
43.
44.
	write-host $_ 
45.
	out-file -filepath $file -inputobject $_ -append -encoding default 
46.
47.
}

Somit müsstest du zumindest die richtige Ausgabe in Clients_reboot_needed.txt haben
Bitte warten ..
Mitglied: lenny4me
21.06.2011 um 11:46 Uhr
Hallo,

ich werde mich gleich mal ran machen.. Die Datei Clients_reboot_needed ist nur ein Anhaltspunkt welche Rechner er denn neu gestartet hat... also praktisch eine "Doku" welche er mir als geplanter Task per Mail zusendet (Ja ich weis das geht auch über die Powershell)
Bitte warten ..
Mitglied: lenny4me
21.06.2011 um 11:54 Uhr
Hallo,

das ging schneller als erwartet...
Nach dem start erscheint die Meldung "Geben Sie Werte für die folgenden Parameter an: Process" <- was ist denn das?!

Beim ausführen des Scripts bekomme ich einen Fehler.

ForEach-Object : Der Befehl kann nicht verarbeitet werden, da mindestens ein verbindlicher Parameter fehlt: Process.
Bei C:\Users\administratorDomain\AppData\Local\Temp\2\60471694-c3fb-4178-92dc-53ec40169413.ps1:23 Zeichen:29

$computers | foreach-object <<<<

+ CategoryInfo : InvalidArgument: (:) [ForEach-Object], ParameterBindingException
+ FullyQualifiedErrorId : MissingMandatoryParameter,Microsoft.PowerShell.Commands.ForEachObjectCommand

Das Script läuft zwar weiter... und erstellt auch eine Datei. Aber Server1-6 tauchen wieder in dieser Liste auf...

Langsam bin ich wirkllich am verzweifeln.

Grüße Lenny
Bitte warten ..
Mitglied: LittleFlame
21.06.2011 um 11:58 Uhr
Ein Problem dürfte zumindest gewesen sein, dass er dir nicht deine neu gestartetet Clients in das Logfile geschrieben hat, sondern durch

01.
$_.FullDomainName | out-file -filepath W:\wsus\Clients_reboot_needed.txt -encoding Default -append 
hast du dir hier (glaube ich) alle Clients auflisten lassen, da diese Zeile ja von den "continue" -Zeilen nicht betroffen ist.
Wenn das neue Script das tut, was es soll, schreibt es nur in das Logfile, wenn kein continue erreicht wurde.

Bin gespannt auf das Ergebnis.

Grüße,
LF
Bitte warten ..
Mitglied: LittleFlame
21.06.2011 um 12:16 Uhr
[EDIT]

Vergiss es... geht auch nicht

[EDIT]
Bitte warten ..
Mitglied: LittleFlame
21.06.2011 um 12:21 Uhr
Hier dürfte dieser Fehler nicht vorkommen:

[EDIT]
Schön formatiert
[EDIT]

01.
if (!$wsus)  
02.
03.
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer(); 
04.
05.
 
06.
$file = "W:\wsus\Clients_reboot_needed.txt" 
07.
 
08.
$computerScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope; 
09.
$computerScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot; 
10.
 
11.
$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope; 
12.
$updateScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot; 
13.
 
14.
$computers = $wsus.GetComputerTargets($computerScope); 
15.
 
16.
$computers | foreach-object { 
17.
	$_.FullDomainName | foreach-object 	{ 
18.
		if ($_ -eq "Server1.Domain.de") 
19.
20.
			continue 
21.
22.
		elseif ($_ -eq "Server2.Domain.de") 
23.
24.
			continue 
25.
26.
		elseif ($_ -eq "Server3.Domain.de") 
27.
28.
			continue 
29.
30.
		elseif ($_ -eq "Server4.Domain.de") 
31.
32.
			continue 
33.
34.
		elseif ($_ -eq "Server5.Domain.de") 
35.
36.
			continue 
37.
38.
		elseif ($_ -eq "Server6.Domain.de") 
39.
40.
			continue 
41.
42.
	write-host $_ 
43.
	out-file -filepath $file -inputobject $_ -append -encoding default 
44.
45.
}
Bitte warten ..
Mitglied: lenny4me
21.06.2011 um 13:00 Uhr
Hallo LittleFlame,

erstmal vorweg: danke das du Dir so viel Mühe gibst.

Leider steigt er mir immer noch aus, soblad der erste Servername "matched"
in meiner alten Version wird die Clients_reboot_needed ja mit allen Rechnern gefüllt die einen Neustart brauchen, incl. derer die ich gerne ausgeschlossen hätte.

Unsere Scripte unterscheiden sich nur darin, das bei dir nur Rechner in der Textfile stehen die nach dem Abbruch auch in der shell angezeigt werden, bei mir jedoch alle.

Grüße Lenny


hier noch mal aktuell was ich habe
01.
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null  
02.
  
03.
if (!$wsus) {  
04.
        $wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();  
05.
}  
06.
  
07.
$computerScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope;  
08.
$computerScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;  
09.
  
10.
$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope;  
11.
$updateScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;  
12.
  
13.
$computers = $wsus.GetComputerTargets($computerScope);  
14.
 
15.
Remove-Item -path Clients_reboot_needed.txt 
16.
  
17.
$computers | foreach-object {  
18.
                #$_.FullDomainName | write-host ; 
19.
                 $_.FullDomainName | out-file -filepath W:\wsus\Clients_reboot_needed.txt -encoding Default -append 
20.
21.
				  
22.
				  
23.
	$computers | foreach-object {  
24.
				$_.FullDomainName |foreach-object { 
25.
		              #Tee-object 'W:\wsus\Clients_reboot_needed.txt' 
26.
		                        
27.
		                  if ($_ -eq 'server1.DOMAIN.de'){ 
28.
		            	    continue; 
29.
		                  }				 
30.
					       if ($_ -eq 'server2.DOMAIN.de'){ 
31.
		              	    continue; 
32.
		                  }		 
33.
		                   if ($_ -eq 'server3.DOMAIN.de'){ 
34.
		                   	continue; 
35.
		                  }		 
36.
		                   if ($_ -eq 'server4.DOMAIN.de'){ 
37.
		                  	continue; 
38.
		                  }	 
39.
		                   if ($_ -eq 'server5.DOMAIN.de'){ 
40.
		                    continue; 
41.
		                  }	 
42.
		                   if ($_ -eq 'server6.DOMAIN.de'){ 
43.
		                   	continue; 
44.
		                  }		 
45.
		                   else {write-host $_}			 
46.
					              
47.
48.
 
49.
		}
ich weis wohl das es keinen sinn macht das Textfile in einem speraten Aufruf zu füllen, für momentane Zwecke (debugging) halte ich es aber weiterhin so...
Bitte warten ..
Mitglied: LittleFlame
21.06.2011 um 13:07 Uhr
Hallo Lenny,

ich seh schon... ich hab in dem Bereich zu wenig KnowHow, um dir weiterzuhelfen.
Aber nen Versuch wars wert

Ich hab mir ein Vergleichsscript gebaut, um deinen Fehler nachzuvollziehen. Und es tut genau das, was du möchtest.
Es springt nur zu "write-host", wenn die If-Bedingung nicht zutrifft.

01.
$ints = @(1,2,3,4,5) 
02.
$File ="C:\Temp\test.txt" 
03.
 
04.
foreach ($i in $ints) 
05.
06.
	if ($i -eq '1') 
07.
08.
		continue 
09.
10.
	elseif ($i -eq '2') 
11.
12.
		continue 
13.
14.
write-host $i 
15.
out-file -filepath "C:\Temp\test.txt" -inputobject $i -append -encoding default 
16.
} 
Deshalb verstehe ich nicht, warum es in dienem Fall nicht funktioniert.

Aber ich befürchte, ich komm nicht dahinter.

Grüße,
LF
Bitte warten ..
Mitglied: lenny4me
21.06.2011 um 13:40 Uhr
Der Herr sei gepriesen... Es funktioniert...
Ich habe mir gedacht wenn er bei den Continues aussteigt, lass ich Sie einfach weg.. und sehe da

01.
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null  
02.
  
03.
if (!$wsus)  
04.
05.
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer(); 
06.
07.
 
08.
$file = "W:\Wsus\Clients_reboot_needed.txt" 
09.
 
10.
$computerScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope; 
11.
$computerScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot; 
12.
 
13.
$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope; 
14.
$updateScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot; 
15.
 
16.
$computers = $wsus.GetComputerTargets($computerScope); 
17.
 
18.
$computers | foreach-object { 
19.
	$_.FullDomainName | foreach-object 	{ 
20.
		if ($_ -eq 'Server1.DOMAIN.de') 
21.
22.
			 
23.
24.
		elseif ($_ -eq 'Server2.DOMAIN.de') 
25.
26.
			 
27.
28.
		elseif ($_ -eq 'Server3.DOMAIN.de') 
29.
30.
			 
31.
32.
		elseif ($_ -eq 'Server4.DOMAIN.de') 
33.
34.
			 
35.
36.
		elseif ($_ -eq 'Server5.DOMAIN.de') 
37.
38.
			 
39.
40.
		elseif ($_ -eq 'Server6.DOMAIN.de') 
41.
42.
			 
43.
44.
	else {write-host $_ 
45.
	out-file -filepath $file -inputobject $_ -append -encoding default 
46.
47.
48.
}
Es klappt. Wirklich vielen dank für Deine Hilfe. Nun muss ich nur noch dahinter kommen wie ich einzelne Gruppen des WSUS Servers auslesen kann.


Mit freundlichen Grüßen Lenny
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Domain Join (2)

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

Batch & Shell
gelöst Powershell Hashtable to Übersichtliche Darstellung (2)

Frage von Marabunta zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Mauszeiger ausblenden (11)

Frage von Marabunta zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...