121103

Fehlermeldung Powershell

Hi zusammen,

ich möchte im AD-Modul für Powershell die Telefonnummer einer OU von extAttr7 & extAttr8 in die OfficePhone & Fax schreiben lassen.

Hierfür habe ich gestern schon einen Code bekommen / leicht abgeändert, jedoch kommt durchgehend folgende Fehlermeldung:

Code:
get-aduser -Filter * -Properties extAttr7,extAttr8 -ResultSetSize $null -SearchBase 'OU=XX,dc=XX,dc=de' | ?{$_.extAttr7 -ne "" or $_.extAttr8 -ne ""} | %   
{ 
   $props = @{} 
   if ($_.extAttr7 -ne "") { $props.OfficePhone = $_.extAttr7}   
   if ($_.extAttr8 -ne "") { $props.Fax = $_.extAttr8}   
   set-aduser $_ $props 
}

Fehlermeldung:

Unerwartetes Token "or" im Ausdruck oder in der Anweisung.
Bei Zeile:7 Zeichen:146
+get-aduser -Filter * -Properties extAttr7,extAttr8 -ResultSetSize $null -SearchBase 'OU=XX,dc=XX,dc=de' | ?{$_.extAttr7 -ne "" or $_.extAttr8 -ne ""} | %
+CategoryInfo : ParserError: (or:String) , ParentCOntainsError RecordExeption
+ FullyQualifiedErrodID : UnexpectedToken


Das es sich um das "or" handelt ist mir klar, jedoch kann ich mir nicht erklären was ich genau ändern muss.

Danke im Voraus!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 304744

Url: https://administrator.de/forum/fehlermeldung-powershell-304744.html

Ausgedruckt am: 10.05.2025 um 06:05 Uhr

Dirmhirn
Dirmhirn 18.05.2016 um 09:46:24 Uhr
Goto Top
Hi,

mach doch einmal < code > ... < code /> tags um deinen code.

sg Dirm
121103
121103 18.05.2016 um 09:53:52 Uhr
Goto Top
Oh sorry ! Hatte ich ganz vergessen
colinardo
colinardo 18.05.2016 aktualisiert um 10:01:37 Uhr
Goto Top
Da fehlt ein Dash vor dem OR -or face-wink
https://technet.microsoft.com/de-de/library/hh847732.aspx

Grüße Uwe
121103
121103 18.05.2016 um 10:03:55 Uhr
Goto Top
Super danke! Jetzt kommt direkt der nächste Fehler...
unbenannt
colinardo
colinardo 18.05.2016 aktualisiert um 10:09:41 Uhr
Goto Top
*Koppschüttel*, das ganze pastest du nicht wirklich in die Konsole ?? Das gehört natürlich in ein *.ps1 Skript ... ich kann dir zwar ein Einzeiler draus machen aber das ist dein Fehler den du hier machst ...

Hier noch der Einzeiler für die Konsole:
get-aduser -Filter * -Properties extAttr7,extAttr8 -ResultSetSize $null | ?{$_.extAttr7 -ne "" -or $_.extAttr8 -ne ""} | %{$props = @{}; if ($_.extAttr7 -ne "") { $props.OfficePhone = $_.extAttr7}; if ($_.extAttr8 -ne ""){$props.Fax = $_.extAttr8}; set-aduser $_ $props}  
121103
121103 18.05.2016 um 10:14:20 Uhr
Goto Top
Oh mist ! Ich habe sowas noch nie gemacht! Hatte mir sowas schon gedacht das der Fehler vor dem PC hockt.....
121103
121103 18.05.2016 aktualisiert um 10:21:53 Uhr
Goto Top
Jedoch laufe ich weiterhin in einen Fehler.....
unbenannt
colinardo
colinardo 18.05.2016 aktualisiert um 10:42:02 Uhr
Goto Top
Dann hat ein User diese Eigenschaft einfach nicht in seinem Objekt. Dann entweder über LDAP-Filter gehen oder -Properties * und dann prüfen ob die Eigenschaft existiert.
121103
121103 18.05.2016 um 10:42:19 Uhr
Goto Top
Okay das liegt daran, dass manche User Testuser sind ohne Telefonnummer.
Das heißt er trägt diese dann nirgends ein.
121103
121103 18.05.2016 um 10:43:06 Uhr
Goto Top
Oder ich müsste rein theoretisch eine Ausnahme definieren in der er nichts eingibt richtig?
121103
121103 18.05.2016 aktualisiert um 10:48:00 Uhr
Goto Top
Get-ADUser -Filter {samextAttr7 -Like ‘+ 49* ’}

Ich müsste dann so Filtern das nur die extAttr7 die mit + 49 anfangen gefilter werden und alles eintragen.
colinardo
colinardo 18.05.2016 aktualisiert um 10:50:41 Uhr
Goto Top
Nein hier braucht nichts gefiltert werden, ich schreibs dir nacher
121103
121103 18.05.2016 aktualisiert um 10:54:18 Uhr
Goto Top
Okay! Ich bin echt einfach unfassbar dankbar!
Es gibt halt diverse User die in allen 4 geforderten Attributen ( extAttr7, extAttr8, Phone, Fax ) keinen Eintrag haben.

So ist das wenn man immer hört "hier mach mal das geht irgendwie" ;)
colinardo
colinardo 18.05.2016 um 11:01:49 Uhr
Goto Top
get-aduser -Filter * -Properties * -ResultSetSize $null -SearchBase 'OU=XX,dc=XX,dc=de' | ?{$_.extAttr7 -ne "" -or $_.extAttr8 -ne ""} | %{if ($_.extAttr7 -ne "") {set-aduser $_ -OfficePhone $_.extAttr7};if($_.extAttr8 -ne ""){set-aduser $_ -Fax $_.extAttr8}}  
121103
121103 18.05.2016 aktualisiert um 11:11:52 Uhr
Goto Top
Langsam verzweifel ich echt....

Get-AdUser : Verzeichnisobjekt nicht gefunden.
Bei Zeile:1 Zeichen:11

Bedeutet das, dass er die OU nicht findet?
colinardo
colinardo 18.05.2016 aktualisiert um 11:37:46 Uhr
Goto Top
Och Mensch, min jung natürlich Anpassen ... 'OU=XX,dc=XX,dc=de' ... !!!

I'm out here now.
121103
121103 18.05.2016 um 11:15:52 Uhr
Goto Top
Nein das ist definitiv geändert worden !!

Trotzdem danke den Rest schaff ich schon selber!