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

Frage Microsoft

Mitglied: gabeBU

gabeBU (Level 1) - Jetzt verbinden

25.02.2014, aktualisiert 15:41 Uhr, 1376 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 ...

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

Windows Tools
Powershell: Aus String die letzten Werte ermitteln
Frage von ColoneltwWindows Tools3 Kommentare

Hallo liebe Foristen, ich sitze an einem kleinen Powershell Problem. Ich habe einen UNC Pfad und möchte das letzte ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 21 StundenBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 23 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows 10
Windows 10 GPO Powershell Skript Registry bearbeiten
Frage von potshockWindows 1010 Kommentare

Hi Admins, Gegeben ist ein Windows 2012 R2 Server an welchen ich Gpos für Windows 10 Clients bereitstelle. U.a. ...

Microsoft
Erfahrungen mit Webcam over RDP gesucht
Frage von DerWoWussteMicrosoft10 Kommentare

Moin Kollegen. Bekanntlich kann man Webcams nur mit Drittanbietersoftware in RDP reinschleifen. Was nutzt Ihr dazu? Wie stabil funktioniert ...