Jump to content

Powershell Script Benutzer Verschieben


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Zusammen,
 
Ich versuche seit 2 Tagen krampfhaft das Problem zu lösen das inaktive Benutzer via Powershell in eine ander OU Verschoeben werden.
 
Das Script für Verschieben der Rechner Objekte funktioniert ohne Probleme, aber die Benutzer lassen sich nicht verschieben.

 

 

#Import AD module
Import-Module ActiveDirectory

$ErrorActionPreference = "SilentlyContinue"

$searchbase = "DC=Domain,DC=de"
$EntGroups = "OU=OU Benutzer,DC=domain,DC=de"
$groups = Get-ADUser -Filter * -searchbase $EntGroups
$inactiveOU = “OU=Alte Benutzer,OU=OU Deaktiviert,DC=domain,"DC=de"

# Set the number of days from today since the last logon.
$Days = (Get-Date).AddDays(-xTAGE)
$User = Get-ADUser -Properties * -Filter {LastLogonDate -lt $Days} -SearchBase $searchbase
$DisabledUsers = Get-ADUser -Properties Name,Enabled,LastLogonDate -Filter {(Enabled -eq "False" -and LastLogonDate -lt $Days)} -SearchBase $inactiveOU

#Move inactive computer accounts to your inactive OU
foreach ($User in $Users) {    
    Set-ADUser $User -Location $User.LastLogonDate | Set-ADUser $User -Enabled $false
    Move-ADObject -Identity $User.ObjectGUID -TargetPath $inactiveOU
    Remove group memberships
    foreach ($group in $groups) {
        Remove-ADGroupMember -Identity $group -Members $User.ObjectGUID -Confirm:$false
    }
}

 

 

Habt Ihre eine idee was ich da falsch gemacht habe?

 

Danke schomn mal für eure Hilfe.

 

 

Link zu diesem Kommentar

Moin,

 

ich würde das nicht selbst bauen, sondern OldCmp nutzen.

 

[OldCmp]
http://joeware.net/freetools/tools/oldcmp/index.htm
 

Ansonsten stolpere ich in deinem Code über:

Set-ADUser $User -Location $User.LastLogonDate

Warum sollte das LastLogonDate eine gültige Location abgeben? Und was für ein Parameter soll das sein?

 

Gruß, Nils

bearbeitet von NilsK
Link zu diesem Kommentar

Moin,

 

ich würde das nicht selbst bauen, sondern OldCmp nutzen.

 

[OldCmp]

http://joeware.net/freetools/tools/oldcmp/index.htm

 

Ansonsten stolpere ich in deinem Code über:

Set-ADUser $User -Location $User.LastLogonDate

Warum sollte das LastLogonDate eine gültige Location abgeben? Und was für ein Parameter soll das sein?

 

Gruß, Nils

Ich Habe des selben Code für das Verschieben der Rechner genommen

 

# Set the number of days from today since the last logon.

$Days = (Get-Date).AddDays(-600)

$computers = Get-ADComputer -Properties * -Filter {LastLogonDate -lt $Days} -SearchBase $searchbase

$DisabledComps = Get-ADComputer -Properties Name,Enabled,LastLogonDate -Filter {(Enabled -eq "False" -and LastLogonDate -lt $Days)} -SearchBase $inactiveOU

 

#Move inactive computer accounts to your inactive OU

foreach ($computer in $computers) {    

    Set-ADComputer $computer -Location $computer.LastLogonDate | Set-ADComputer $computer -Enabled $false

    Move-ADObject -Identity $computer.ObjectGUID -TargetPath $inactiveOU

    #Remove group memberships

    foreach ($group in $groups) {

        Remove-ADGroupMember -Identity $group -Members $computer.ObjectGUID -Confirm:$false

    }

}

 

Bei Rechnern funktioniert es ohne Probleme. Nur die Benutzer wollen einfach nicht. :cry:

Link zu diesem Kommentar

Moin,

 

Ein Tool, welches seit fast 13 Jahren nicht mehr aktualisiert wurde, würde mich ja erst mal stutzig machen ....   ;)   ... lässt man das wirklich noch auf aktuelle Installationen los?

 

berechtigt, aber das Tool ist hochgradig bewährt. An den angesprochenen Schnittstellen hat sich nichts geändert, daher gab es wohl keinen Bedarf, es weiter zu bearbeiten. Wäre es nicht zuverlässig, würde Joe es nicht mehr anbieten, er hat einen Ruf zu verlieren.

 

OldCmp hat eine Reihe von Betriebsmodi, arbeitet mit Usern und Computern und erzeugt vorher auch Reports. Zudem ist es viel schneller als jedes PS-Skript. Ich würde daher bei solchen Aufgaben gar nicht über was anderes nachdenken.

 

Gruß, Nils

bearbeitet von NilsK
Link zu diesem Kommentar

Moin,

 

 

berechtigt, aber das Tool ist hochgradig bewährt. An den angesprochenen Schnittstellen hat sich nichts geändert, daher gab es wohl keinen Bedarf, es weiter zu bearbeiten. Wäre es nicht zuverlässig, würde Joe es nicht mehr anbieten, er hat einen Ruf zu verlieren.

 

OldCmp hat eine Reihe von Betriebsmodi, arbeitet mit Usern und Computern und erzeugt vorher auch Reports. Zudem ist es viel schneller als jedes PS-Skript. Ich würde daher bei solchen Aufgaben gar nicht über was anderes nachdenken.

 

Gruß, Nils

 

Is jebont ;)  ...  kommt mit in meine Sammlung ...  falls ich's doch mal brauchen kann ...   :thumb1:

Link zu diesem Kommentar
$DisabledUsers = Get-ADUser -Properties Name,Enabled,LastLogonDate -Filter {(Enabled -eq "False" -and LastLogonDate -lt $Days)} -SearchBase $inactiveOU

    Move-ADObject -Identity $User.ObjectGUID -TargetPath $inactiveOU

 

Was ist das für ein Code? Erst suchst Du nach Usern in Deiner InactiveOU, und dann willst Du sie dorthin verschieben? Schwerer Denkfehler, fürchte ich :cool:

 

Ach ne Quatsch - $DisabledUsers wird ja gar nicht verwendet. Aber das hier sieht auch komisch aus:

 

$User = Get-ADUser -Properties * -Filter {LastLogonDate -lt $Days} -SearchBase $searchbase

foreach ($User in $Users) {  

 

Du speicherst die Suche in $User, iterierst dann aber über $Users?

bearbeitet von daabm
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...