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-Key: 1422499727

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

Printed on: April 26, 2024 at 00:04 o'clock

Member: LeeX01
Solution LeeX01 Oct 23, 2021 at 08:37:40 (UTC)
Goto Top
...
     $exist = Get-ADUser -filter {UserPrincipalName -eq $vnSub}
} while ($exist -eq $null)
Mitglied: 149569
Solution 149569 Oct 23, 2021 updated at 09:09:16 (UTC)
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.
Member: LeeX01
Solution LeeX01 Oct 23, 2021 at 09:10:45 (UTC)
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
Mitglied: 148848
Solution 148848 Oct 23, 2021 updated at 09:15:13 (UTC)
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
Member: zuzuelq
zuzuelq Oct 23, 2021 at 09:28:15 (UTC)
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ß.
Mitglied: 149569
149569 Oct 23, 2021 at 09:57:25 (UTC)
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
Member: zuzuelq
zuzuelq Oct 23, 2021 at 10:12:42 (UTC)
Goto Top
Danke