Powershell Active Directory: Nur einen Benutzername ausgeben!
Hallo Zusammen
Mein Script wächst und wächst. Ich kann jetzt schon Benutzer per CSV hinzufügen mit richtigen Passwort und aktiviert. Der nächste Schritt wäre, das ich den Benutzer aus der AD direkt vergleiche mit den Einträgen im CSV und den Nutzer nur erstelle, wenn er in der Liste nicht schon vorhanden ist. Also anderst gesagt so:
Nur leider erkennt er den Benutzername in der CSV immer als "anderst", da das Format von Get-ADUser anderst ist. Wie kann in den Nutzernamen einfach nur als eine einzelne Textzeile ausgeben ohne irgendeine Formatierung?
Besten Dank für eure Antworten.
Gruss
gabeBu
Mein Script wächst und wächst. Ich kann jetzt schon Benutzer per CSV hinzufügen mit richtigen Passwort und aktiviert. Der nächste Schritt wäre, das ich den Benutzer aus der AD direkt vergleiche mit den Einträgen im CSV und den Nutzer nur erstelle, wenn er in der Liste nicht schon vorhanden ist. Also anderst gesagt so:
Import-Module ActiveDirectory;
$Zaehler = 0
$Import = @(Import-CSV C:\users\administrator\desktop\test.csv)
$Reihenzaehler = $Import | Measure-Object;
$Benutzername = $Import[$Zaehler].sAMAccountName;
do
{
$ADAbfrage = get-aduser -Identity $Benutzername| FT SamAccountName -A;
$Benutzername
$ADAbfrage
if ($Benutzername -ne $ADAbfrage )
{
csvde -i -k -f C:\users\Administrator\Desktop\test.csv
Set-AdAccountPassword -Identity $Benutzername -PassThru -Reset -Newpassword (ConvertTo-Securestring $Import[$Zaehler].sAMAccountName -Asplaintext -force)
$Zaehler = $Zaehler + 1;
write-host "pip"
}
elseif ($Benutzername -eq $ADAbfrage)
{
write-host "nix da, gibts schon";
}
}while ($Reihenzaehler > $Zaehler )
Besten Dank für eure Antworten.
Gruss
gabeBu
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 230823
Url: https://administrator.de/forum/powershell-active-directory-nur-einen-benutzername-ausgeben-230823.html
Ausgedruckt am: 05.04.2025 um 12:04 Uhr
3 Kommentare
Neuester Kommentar
Hey schau hier mal rein vielleicht hilft dir das.
http://social.technet.microsoft.com/Forums/de-DE/73a58cfb-a60a-4cef-b59 ...
Ansonsten noch was:
Wenn du das Script später über deine AD laufen lässt wird er ja meckern das die User schon vorhanden sind. Wenn du dann was bearbeiten willst oder ändern macht sich ldif besser als csv.
LG
http://social.technet.microsoft.com/Forums/de-DE/73a58cfb-a60a-4cef-b59 ...
Ansonsten noch was:
Wenn du das Script später über deine AD laufen lässt wird er ja meckern das die User schon vorhanden sind. Wenn du dann was bearbeiten willst oder ändern macht sich ldif besser als csv.
LG
Wie kann in den Nutzernamen einfach nur als eine einzelne Textzeile ausgeben ohne irgendeine Formatierung?
get-aduser -Identity $Benutzername | select -ExpandProperty SamAccountName
By the way, die CSVDE-Zeile macht das ganze doch alles automatisch, d.h. mit der Option "-k" werden Import-Fehler ignoriert, d.h. wenn ein Benutzer schon existiert wird dieser auch nicht erneut angelegt, weil das ja ein Fehler auswirft. Also brauchst du deine Prüfung garnicht ...
Es reicht dein:
csvde -i -k -f "C:\users\Administrator\Desktop\test.csv"
wenn du es unbedingt wie oben machen willst, geht es auch cleaner so:
Import-Module ActiveDirectory
$import = Import-CSV "C:\users\administrator\desktop\test.csv"
foreach($line in $import){
$ADAbfrage = get-aduser -Identity $line.sAMAccountName -ErrorAction SilentlyContinue
if (!$ADAbfrage){
# Hier den Benutzer erstellen ...
# Passwort setzen
Set-AdAccountPassword -Identity $line.sAMAccountName -PassThru -Reset -Newpassword (ConvertTo-Securestring $line.sAMAccountName -Asplaintext -force)
}
}
Grüße Uwe