Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Powershell: Letzte Schritte

Frage Microsoft

Mitglied: gabeBU

gabeBU (Level 1) - Jetzt verbinden

25.02.2014, aktualisiert 15:41 Uhr, 1366 Aufrufe, 4 Kommentare

Hallo Zusammen

Dank euch ist das Script nun fast fertig und sieht so aus:
01.
Import-Module ActiveDirectory;  
02.
$Zaehler = 0  
03.
$Import = @(Import-CSV C:\users\administrator\desktop\test.csv)  
04.
$Reihenzaehler = $Import | Measure-Object;  
05.
$Benutzername =  $Import[$Zaehler].sAMAccountName;  
06.
$CompletePath = "CN=$Benutzername,OU=ZugelasseneMaschinen,OU=UEB,DC=ueb,DC=lokal"; 
07.
 
08.
do 
09.
10.
   
11.
    $ADAbfrage = $ADAbfrage = get-aduser -Identity "CN=$Benutzername,OU=ZugelasseneMaschinen,OU=UEB,DC=ueb,DC=lokal" -ErrorAction SilentlyContinue  
12.
    $Benutzername 
13.
    if ($Benutzername -ne $ADAbfrage ) 
14.
15.
        csvde -i -k -f C:\users\Administrator\Desktop\test.csv    
16.
        Set-AdAccountPassword -Identity $Benutzername -PassThru -Reset -Newpassword (ConvertTo-Securestring $Import[$Zaehler].sAMAccountName -Asplaintext -force)  
17.
        $Zaehler = $Zaehler + 1;   
18.
19.
    elseif ($Benutzername -eq  $ADAbfrage) 
20.
21.
        write-host "nix"; 
22.
    }  
23.
    elseif ($Benutzername -eq $NULL) 
24.
25.
        write-host "bööb" 
26.
        Remove-ADUser -Identity "CN=$Benutzername,OU=ZugelasseneMaschinen,OU=UEB,DC=ueb,DC=lokal" -Confirm:$false 
27.
28.
    $Zaehler = $Zaehler + 1;  
29.
    Clear-Variable ADAbfrage  
30.
}while ($Reihenzaehler > $Zaehler  ) 
Jetzt gibt es nur noch eine kleine Sache und zwar folgendes:

Wenn ich einen Benutzer in der AD habe, der aber nicht in meiner CSV ist, soll er gelöscht werden. Also Beispielsweise ich habe in meiner OU die Benutzer:
hans
fritz
peter

Aber in meiner CSV ist nur
Hans
Peter

vorhanden. Das heisst, es soll dann Fritz löschen. Versucht habe ich dies mit dem 3 elseif($Benutzername -eq $NULL). Nur leider springt das Script, wenn ein Benutzer nicht vorhanden ist, immer in das zweite elseif ($Benutzername -eq $ADAbfrage).

Wie könnte ich dies nun noch umsetzen?

Danke für eure Antworten.

Gruss

Gabriel
Mitglied: Rolf-Hanka.ITD
25.02.2014 um 12:01 Uhr
Hey du benutzt in deinem Skript das Programm CSVDE. Damit kannst du allerdings nur Objekte hinzufügen. Das Richte Programm wäre bei deinem Wunsch aber LDIFDE. Damit kannst du aus eine *.ldif Datei Objekte erstellen, ändern und löschen!

Du musst also ldifde statt csvde benutzen und deine *.csv in eine *.ldif um basteln.

Hier bekommst du dann weitere Informationen zu LDIFDE.
http://technet.microsoft.com/de-de/library/cc730865.aspx

LG
Bitte warten ..
Mitglied: gabeBU
25.02.2014 um 13:56 Uhr
Das ist ein netter Tipp, aber ich weiss eher nicht, wie ich die Abfrage machen soll, deswegen wäre hier LDIFDE nicht unbedingt gefragt. Das löschen funktioniert für mich auch wunderbar mit Remove-ADUser.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 25.02.2014, aktualisiert um 15:41 Uhr
Hallo Gabriel,
zu dem Code sag ich nichts mehr, hatte dir beim letzten mal eine bessere Alternative vorgeschlagen, aber zurück zum Thema.
Das Löschen von Usern im AD die nicht in deiner CSV-Datei stehen lässt sich so in einem Schlag machen
01.
$allADUsers = Get-ADUser -Filter * -SearchBase "OU=ZugelasseneMaschinen,OU=UEB,DC=ueb,DC=lokal" | select -ExpandProperty SamAccountName 
02.
$allCSVUsers = Import-CSV "C:\users\administrator\desktop\test.csv" | select -ExpandProperty SamAccountName 
03.
$allUsersNotInCSV = Compare-Object -ReferenceObject $allADUsers -DifferenceObject $allCSVUsers | ?{$_.SideIndicator -eq "<="} | select  
04.
-ExpandProperty InputObject 
05.
 
06.
foreach ($user in $allUsersNotInCSV){ 
07.
   echo "Lösche Benutzer: $user ..." 
08.
   Remove-ADUser -Identity "CN=$User,OU=ZugelasseneMaschinen,OU=UEB,DC=ueb,DC=lokal" -Confirm:$false  
09.
}
Grüße Uwe
Bitte warten ..
Mitglied: gabeBU
25.02.2014, aktualisiert um 16:34 Uhr
Yes! Danke. Jetzt muss ich nur noch schauen, dass er sonst den Benutzer erstellt.

Edit: SOoo! Alles fertig, Script funktioniert nun. Ich muss nur zusehen, dass immer ein Benutzer vorhanden ist (in der AD wie auch in der CSV). So sieht nun das Script aus:
01.
Import-Module ActiveDirectory 
02.
do 
03.
04.
$Zaehler = 0; 
05.
$Import = @(Import-CSV C:\users\administrator\desktop\MACAdresslist.csv)  
06.
$Benutzername =  $Import[$Zaehler].sAMAccountName;  
07.
$allADUsers = Get-ADUser -Filter * -SearchBase "OU=ZugelasseneMaschinen,OU=UEB,DC=ueb,DC=lokal" | select -ExpandProperty SamAccountName 
08.
$allCSVUsers = $Import | select -ExpandProperty SamAccountName 
09.
$allUsersNotInCSV = Compare-Object -ReferenceObject $allADUsers -DifferenceObject $allCSVUsers | ?{$_.SideIndicator -eq "<="} | select  -ExpandProperty InputObject -erroraction SilentlyContinue 
10.
 
11.
foreach($Benutzername in $allUsersNotInCSV) 
12.
13.
 csvde -i -k -f C:\users\Administrator\Desktop\MACAdresslist.csv    
14.
 try 
15.
16.
    Set-AdAccountPassword -Identity $Benutzername -PassThru -Reset -Newpassword (ConvertTo-Securestring $Import[$Zaehler].sAMAccountName -Asplaintext -force) 
17.
18.
 catch 
19.
20.
21.
 finally 
22.
23.
24.
}  
25.
 
26.
foreach ($Benutzername in $allUsersNotInCSV) 
27.
28.
   try 
29.
30.
   echo "Lösche Benutzer: $user ..." 
31.
   Remove-ADUser -Identity "CN=$Benutzername,OU=ZugelasseneMaschinen,OU=UEB,DC=ueb,DC=lokal" -Confirm:$false  
32.
33.
   catch 
34.
35.
36.
   finally 
37.
38.
39.
40.
            
41.
$Zaehler = $Zaehler + 1; 
42.
}while($Zaehler > $Reihenzaehler)  
43.
 
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell funktioniert nicht richtig beim Auslesen der letzten Zeile (5)

Frage von Peter32 zum Thema Batch & Shell ...

Windows Server
PowerShell Script - Ordnerrechte setzen (7)

Frage von desmondjames zum Thema Windows Server ...

Batch & Shell
gelöst Powershell Regex anders (1)

Frage von ukodus zum Thema Batch & Shell ...

Batch & Shell
gelöst Erneute Frage: Powershell in Batch mit Html (6)

Frage von michi-ffm zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (18)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (17)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
DNS ins mehreren Subnetzen (13)

Frage von joerg zum Thema Windows Netzwerk ...