hell-boy 0 Geschrieben 23. Dezember 2016 Melden Teilen Geschrieben 23. Dezember 2016 Guten Tag liebe MCSE-Community, ich bin neu hier und habe auch gleiche ein vermutliches Verständnisproblem bei einen meiner Powershell Skripte. Auch wenn die Lösung eher simpel erscheinen kann möchte Ich um Euren Rat bitten. Was habe ich vor? Der Fileserver, welcher die Homedrives unserer AD-User bereitstellt wurde auf ein DFS-R Pfad umgeleitet. Leider sind uns ein paar Benutzer entwischt, welche derzeit noch mit deren Homedrives auf den alten Hostname zeigen. Mittlerweile bin ich einigermaßen Fit in AD-Powershell abfragen und möchte nun ein erstes Skript mit Set-User erstellen. Die folgende Abfrage nutze ich um die Fehlerhaften Homedrives Abzufragen: get-aduser -filter * -properties * | Where-Object {$_.homedirectory -like "\\falschername\*" -and $_.samaccountname -like "peter*"} Die Filteroption -and $_.samaccountname -like "peter*" nutze ich nur zum testen eines Fehlerhaften Referenzbenutzers Mein erster Ansatz führt auch gleich zu der vermutlich alles entscheidenden Frage und den Fehler get-aduser -filter * -properties * | Where-Object {$_.homedirectory -like "*" -and $_.samaccountname -like "peter*"}| foreach-object{Set-ADUser -HomeDirectory "\\domain.local\USERHOME\" + $_.samaccountname} Um in die Foreach-Schleife eine Property des get-aduser Ergebnissen hereinzubekommen bin ich mir nicht sicher, ob $_.samaccountname überhaupt hinter der Pipe in der schleife verwenden kann. Mein Ziel ist es auch in einer Zeile zu schreiben, wenn es möglich ist. Ich habe die Abfrage umgeschrieben um zu sehen ob eine andere Schreibweise, wie die folgende zum Ziel führt. $results=get-aduser -filter * -properties * | Where-Object {$_.homedirectory -like "*" -and $_.samaccountname -like "peter*"} foreach($result in $results) { Set-ADUser -HomeDirectory "\\domain.local\USERHOME\" + $result.samaccountname } Set-ADUser : Es wurde kein Positionsparameter gefunden, der das Argument "Microsoft.ActiveDirectory.Management.ADPropertyValueCollection" akzeptiert. In Zeile:4 Zeichen:5 + Set-ADUser -HomeDirectory "\\domain.local\USERHOME\" + $result. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Set-ADUser], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.SetADUser Leider bekomme ich bei beiden diesen Fehler. Über jeden Denkanstoß bin ich dankbar Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 23. Dezember 2016 Melden Teilen Geschrieben 23. Dezember 2016 Wenn ich mich nicht irre, solltest Du in Deinem Foreach-Loop eventuell noch den AD-User angeben für das neue Homedirectory gesetzt werden soll foreach-object{Set-ADUser -Identity $_.sAMAccountName -HomeDirectory ("\\domain.local\USERHOME\" + $_.samaccountname)} ... und zur Sicherheit kannst Du den 'zusammengebauten neuen Pfad' noch in Klammern setzen. Dann braucht PS nicht zu raten wo das dazu gehört. Zitieren Link zu diesem Kommentar
Beste Lösung hell-boy 0 Geschrieben 23. Dezember 2016 Autor Beste Lösung Melden Teilen Geschrieben 23. Dezember 2016 (bearbeitet) Hi BOfH_666 erst einmal vielen Dank für die schnelle Rückmeldung und vor allem auch Hilfe. Zwischenzeitlich habe ich den Schalter -identity bereits ausprobiert und habe den selben Fehler erhalten. Es lag tatsächlich an den Fehlenden Klammern um den Pfadname!!! :jau: Für jeden den es interessiert würde richtige Zeile wie folgt aussehen: get-aduser -filter * -properties * | Where-Object {$_.homedirectory -like "\\falschername*" -and $_.samaccountname -like "peter*"}| foreach-object{Set-ADUser -Identity $_.samaccountname -HomeDirectory ("\\domain.local\USERHOME\" + $_.samaccountname)} Die Filterbedingung -and $_.samaccountname -like "peter*" hilft lediglich zum testen an einem Testbenutzer. Vielen Dank & Schöne Feiertage bearbeitet 23. Dezember 2016 von hell-boy Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.