gelöst Fehlermeldung Powershell

Mitglied: 121103

121103 (Level 1)

18.05.2016, aktualisiert 09:59 Uhr, 1637 Aufrufe, 17 Kommentare, 1 Danke

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:
01.
get-aduser -Filter * -Properties extAttr7,extAttr8 -ResultSetSize $null -SearchBase 'OU=XX,dc=XX,dc=de' | ?{$_.extAttr7 -ne "" or $_.extAttr8 -ne ""} | % 
02.
{ 
03.
   $props = @{} 
04.
   if ($_.extAttr7 -ne "") { $props.OfficePhone = $_.extAttr7} 
05.
   if ($_.extAttr8 -ne "") { $props.Fax = $_.extAttr8} 
06.
   set-aduser $_ $props 
07.
}
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!
Mitglied: Dirmhirn
18.05.2016 um 09:46 Uhr
Hi,

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

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

Grüße Uwe
Mitglied: 121103
18.05.2016 um 10:03 Uhr
Super danke! Jetzt kommt direkt der nächste Fehler...
unbenannt - Klicke auf das Bild, um es zu vergrößern
Mitglied: colinardo
18.05.2016, aktualisiert um 10:09 Uhr
*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:
01.
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
18.05.2016 um 10:14 Uhr
Oh mist ! Ich habe sowas noch nie gemacht! Hatte mir sowas schon gedacht das der Fehler vor dem PC hockt.....
Mitglied: 121103
18.05.2016, aktualisiert um 10:21 Uhr
Jedoch laufe ich weiterhin in einen Fehler.....
unbenannt - Klicke auf das Bild, um es zu vergrößern
Mitglied: colinardo
18.05.2016, aktualisiert um 10:42 Uhr
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
18.05.2016 um 10:42 Uhr
Okay das liegt daran, dass manche User Testuser sind ohne Telefonnummer.
Das heißt er trägt diese dann nirgends ein.
Mitglied: 121103
18.05.2016 um 10:43 Uhr
Oder ich müsste rein theoretisch eine Ausnahme definieren in der er nichts eingibt richtig?
Mitglied: 121103
18.05.2016, aktualisiert um 10:48 Uhr
01.
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.
Mitglied: colinardo
18.05.2016, aktualisiert um 10:50 Uhr
Nein hier braucht nichts gefiltert werden, ich schreibs dir nacher
Mitglied: 121103
18.05.2016, aktualisiert um 10:54 Uhr
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" ;)
Mitglied: colinardo
18.05.2016 um 11:01 Uhr
01.
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
18.05.2016, aktualisiert um 11:11 Uhr
Langsam verzweifel ich echt....

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

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

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

Trotzdem danke den Rest schaff ich schon selber!
Titel: Fehlermeldung Powershell
Content-ID: 304744
Art des Inhalts: Frage
Ausgedruckt am: 21.09.2019 um 13:38:03 Uhr
URL: https://administrator.de/contentid/304744