Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: gabeBU

gabeBU (Level 1) - Jetzt verbinden

25.02.2014, aktualisiert 15:41 Uhr, 1409 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
Netzwerkmanagement

Meinen PI2 über SSH über das WAN konfigurieren scheitert am letzten Schritt

Frage von M.MarzNetzwerkmanagement1 Kommentar

ich wollte eben meinen raspberrypi2 aus dem öffentlichen netz über ssh konfigurieren. habe mir auf meinem android gerät ein ...

Batch & Shell

Powershell SetSelected letzter Eintrag

gelöst Frage von BuggerBatch & Shell2 Kommentare

Hallo, ich habe ein Script mit einer kleinen Textbox um weitere Einträge einer Listbox hinzuzufügen. Mit kann ich zwar ...

Netzwerke

OepnVPN Schritt für Schritt Anleitung

Frage von winlinNetzwerke5 Kommentare

Hallo Leute, ich habe mit folgender Anleitung openVPN auf meinem Rechner installiert: Das hat auch geklappt und VPN Verbindung ...

Batch & Shell

Letzter Start einer Applikation per Powershell

gelöst Frage von pixel0815Batch & Shell5 Kommentare

Guten Morgen, ist es möglich den letzten Start einer ausführbaren Datei auszulesen per Powershell? Gruß pixel0815

Neue Wissensbeiträge
iOS
IOS 11.2.6 verfügbar
Information von sabines vor 4 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 18 StundenSicherheit2 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 1 TagErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server38 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless19 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Server-Hardware
Server für Exchange 2016, Kaufberatung
Frage von MazenauerServer-Hardware15 Kommentare

Guten Tag werte Gemeinde, Vorab: Ich dachte es gab mal einen separaten Bereich für solche Anfragen, habe ich leider ...