121103
Goto Top

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!

Content-Key: 304744

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

Printed on: April 18, 2024 at 16:04 o'clock

Member: Dirmhirn
Dirmhirn May 18, 2016 at 07:46:24 (UTC)
Goto Top
Hi,

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

sg Dirm
Mitglied: 121103
121103 May 18, 2016 at 07:53:52 (UTC)
Goto Top
Oh sorry ! Hatte ich ganz vergessen
Member: colinardo
colinardo May 18, 2016 updated at 08:01:37 (UTC)
Goto Top
Da fehlt ein Dash vor dem OR -or face-wink
https://technet.microsoft.com/de-de/library/hh847732.aspx

Grüße Uwe
Mitglied: 121103
121103 May 18, 2016 at 08:03:55 (UTC)
Goto Top
Super danke! Jetzt kommt direkt der nächste Fehler...
unbenannt
Member: colinardo
colinardo May 18, 2016 updated at 08:09:41 (UTC)
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}  
Mitglied: 121103
121103 May 18, 2016 at 08:14:20 (UTC)
Goto Top
Oh mist ! Ich habe sowas noch nie gemacht! Hatte mir sowas schon gedacht das der Fehler vor dem PC hockt.....
Mitglied: 121103
121103 May 18, 2016 updated at 08:21:53 (UTC)
Goto Top
Jedoch laufe ich weiterhin in einen Fehler.....
unbenannt
Member: colinardo
colinardo May 18, 2016 updated at 08:42:02 (UTC)
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.
Mitglied: 121103
121103 May 18, 2016 at 08:42:19 (UTC)
Goto Top
Okay das liegt daran, dass manche User Testuser sind ohne Telefonnummer.
Das heißt er trägt diese dann nirgends ein.
Mitglied: 121103
121103 May 18, 2016 at 08:43:06 (UTC)
Goto Top
Oder ich müsste rein theoretisch eine Ausnahme definieren in der er nichts eingibt richtig?
Mitglied: 121103
121103 May 18, 2016 updated at 08:48:00 (UTC)
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.
Member: colinardo
colinardo May 18, 2016 updated at 08:50:41 (UTC)
Goto Top
Nein hier braucht nichts gefiltert werden, ich schreibs dir nacher
Mitglied: 121103
121103 May 18, 2016 updated at 08:54:18 (UTC)
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" ;)
Member: colinardo
colinardo May 18, 2016 at 09:01:49 (UTC)
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}}  
Mitglied: 121103
121103 May 18, 2016 updated at 09:11:52 (UTC)
Goto Top
Langsam verzweifel ich echt....

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

Bedeutet das, dass er die OU nicht findet?
Member: colinardo
colinardo May 18, 2016 updated at 09:37:46 (UTC)
Goto Top
Och Mensch, min jung natürlich Anpassen ... 'OU=XX,dc=XX,dc=de' ... !!!

I'm out here now.
Mitglied: 121103
121103 May 18, 2016 at 09:15:52 (UTC)
Goto Top
Nein das ist definitiv geändert worden !!

Trotzdem danke den Rest schaff ich schon selber!