zuzuelq
Goto Top

Prüfen ob Befehl in Variable true zurück gibt

Hallo liebe Gemeinde,
sonst stiller Leser nun Fragender (Powershellbeginner).
Steinigt mich bitte nicht, aber ich habe mir die gestrige Nacht um die Ohren geschlagen, und unzählige Kombinationen versucht - leider ohne Erfolg.

Ich möchte gern in eine Variable einen Befehl speichern und den Wert ob erfolgreich prüfen.
In meinem Beispiel war die Wahl der Schleife schon ausreichend problematisch.

Hintergrund:
Ich habe einen Nutzer, bspw. Bobar Johnson und möchte im AD nachfragen ob es den UPN b.johnson schon gibt.
Falls Ja, soll der UPN auf bo.johnson "erweitert" werden und ich frage auch hier nach - gibt es diesen.
Gibt es diesen nun nicht, übernehme ich den UPN für Bob johnson und lege den Nutzer an.

Hier scheitere ich bei der Prüfung der Variable $frage. Ich weiß einfach nicht, wie ich prüfe, ob der Befehl darin erfolgreich ausgeführt wurde und ich nachfolgen die Schleife verlassen kann.
Ich hoffe, ihr könnt mir helfen.

$a=0
do{
$nn="johnson"  
$vn="bobar"  
$vnSub=$vn.substring(0,$a++)+"."+$nn+"@demo.local"  
$frage = {Get-ADUser -filter 'UserPrincipalName -eq "$vnSub"'}  
}
while ($frage -eq $NULL)

Ein weiterer beispielhafter Versuch:
$a=0
do{
$nn="johnson"  
$vn="bobar"  
$vnSub=$vn.substring(0,$a++)+"."+$nn+"@demo.local"  
$frage = "{Get-ADUser -filter UserPrincipalName -eq `"$vnSub`"}"  
}
while ($frage -eq "error")  

Ich erkenne einfach nicht den (vielleicht) logischen/technischen Fehler.


VG und Danke

Content-ID: 1422499727

Url: https://administrator.de/contentid/1422499727

Ausgedruckt am: 25.11.2024 um 03:11 Uhr

LeeX01
Lösung LeeX01 23.10.2021 um 10:37:40 Uhr
Goto Top
...
     $exist = Get-ADUser -filter {UserPrincipalName -eq $vnSub}
} while ($exist -eq $null)
149569
Lösung 149569 23.10.2021 aktualisiert um 11:09:16 Uhr
Goto Top
Zitat von @LeeX01:

> ...
>      $exist = Get-ADUser -filter {UserPrincipalName -eq $vnSub}
> } while ($exist -eq $null)
> 

Dann aber mit until 😉

until ($exist -eq $null)
oder mit while dann mittels -ne
while ($exist -ne $null)

Denn er will ja so lange erneut prüfen bis kein User mit einem UPN gefunden wurde, nicht immer weitermachen wenn kein User gefunden wurde.
LeeX01
Lösung LeeX01 23.10.2021 um 11:10:45 Uhr
Goto Top
Zitat von @149569:

Zitat von @LeeX01:

>> ...
>>      $exist = Get-ADUser -filter {UserPrincipalName -eq $vnSub}
>> } while ($exist -eq $null)
>> 

Dann aber mit until 😉

> until ($exist -eq $null)
> 
oder mit while dann mittels -ne
> while ($exist -ne $null)
> 

Denn er will ja so lange erneut prüfen bis kein User mit einem UPN gefunden wurde, nicht so lange weitermachen so lange kein User gefunden wurde.

Danke das ist natürlich richtig, ich muss gestehen ich habe nur über die User Abfrage nachgedacht und die Schleife übernommen und nicht nochmal Logik geprüft. face-smile
148848
Lösung 148848 23.10.2021 aktualisiert um 11:15:13 Uhr
Goto Top
Hallo,

Ich möchte gern in eine Variable einen Befehl speichern und den Wert ob erfolgreich prüfen.

Nein, du möchtest ein Object in die Variable speichern und nicht den Befehl. Bei deinem zweiten Versuch hast du das nähmlich gemacht, da hast du ein String erzeugt. Bei deinem ersten Versuch hast du ein Scriptblock verwendet. Diesen musst du natürlich noch mit der Invoke() Methode ausführen lassen....

Fazit: Nicht raten sondern lesen und verstehen! Ebenso auch mal testen! Das hättest du einfach kurz selbst rausfinden können, indem du den Einzeiler kurz in die Powershell eingegeben hättest und das Ergebnis angeschaut hättest. face-wink

MfG
zuzuelq
zuzuelq 23.10.2021 um 11:28:15 Uhr
Goto Top
Vielen Dank für Eure Hilfe,
alle Beiträe haben mir geholfen zum einen mehr zu verstehen und zu lernen und zum anderen mein "Problem" gelöst zu haben.

@148848
Ja ich muss noch viel lernen. glaube mir, ich habe soviel rumprobiert, dass ich dann auf solche Sachen wir du erwähnt hast, gar nicht gekommen bin - trotzdem Danke für den Denkanstoß.
149569
149569 23.10.2021 um 11:57:25 Uhr
Goto Top
Zitat von @zuzuelq:
Ja ich muss noch viel lernen. glaube mir
Na dann auch mal hier rein schauen Powershell Leitfaden für Anfänger
zuzuelq
zuzuelq 23.10.2021 um 12:12:42 Uhr
Goto Top
Danke