AD Gruppenmitglieder via Powershell von anderem Server auslesen..
Hallo zusammen,
ich möchte gerne automatisiert auf Active Directory Server via Powershell zugreifen und Mitglieder einer entsprechenden Gruppe auslesen.
Ich habe nun folgendes:
Nun MUSS ich allerdings bei jedem auslesen das Passwort von dem Benutzer via Eingabemaske manuell eingeben. Das soll aber bereits im Skript passieren. Des Weiteren wäre es interessant, wenn das Passwort irgendwo verschlüsselt liegt, Powershell sich dieses zieht und entschlüsselt, sodass dieses nicht unbedingt im Klartext dort drin steht. Aber wie gehe ich nun vor? Ideen? Vorschläge?
Vielen Dank schon einmal
ich möchte gerne automatisiert auf Active Directory Server via Powershell zugreifen und Mitglieder einer entsprechenden Gruppe auslesen.
Ich habe nun folgendes:
### --- Globale Variablen ---
$Server = "Server"
$AD_Group = "Group"
$AD_User = "Server\Benutzer"
$Output_File = "Pfad"
Get-ADGroupMember -Recursive "$AD_Group" -Server "$Server" -Credential "$AD_User" |ft name | Out-File "Output_File"
Write-Host -foregroundColor yellow "Alle User aus der Gruppe ""Gruppe"" erfolgreich ausgelesen!"
Vielen Dank schon einmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 258682
Url: https://administrator.de/contentid/258682
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
12 Kommentare
Neuester Kommentar
Moin Makaroni,
machst du so:
Die erste Zeile benötigst du nur einmalig um das Textfile mit dem verschlüsselten Passwort zu erstellen. Die nächste Zeile holt sich das Passwort wieder aus der Textdatei und erstellt daraus das Credential-Object was du an deinen Aufruf übergeben kannst.
WICHTIG: Die Passwortdatei kann nur auf dem gleichen System und mit dem gleichen Benutzeraccount verwendet werden womit das Passwortfile erstellt wurde !!! D.h. das Script muss später mit dem gleichen Benutzeraccount ausgeführt werden, welcher das Passwortfile erstellt hat !!
Grüße Uwe
machst du so:
# password als Secure-String in Texdatei speichern(nur einmalig machen)
convertfrom-securestring -secureString (read-host -assecurestring) | set-content "D:\password.txt"
# Erstellen des Credential-Objects in deinem Script mit dem Passwort aus der Textdatei
$cred = New-Object PSCredential "user@domain.com", (gc "D:\password.txt" | convertto-SecureString)
WICHTIG: Die Passwortdatei kann nur auf dem gleichen System und mit dem gleichen Benutzeraccount verwendet werden womit das Passwortfile erstellt wurde !!! D.h. das Script muss später mit dem gleichen Benutzeraccount ausgeführt werden, welcher das Passwortfile erstellt hat !!
Grüße Uwe
Zitat von @makaroni:
das bedeutet. Ich MUSS das SKRIPT immer auf der jeweiligen Maschine ausführen, von der ich das entsprechende auslesen
möchte? Oder kann ich mit dem identischen Benutzer auch über Remote die Sachen auslesen lassen?
Die Generierung des Passwortfiles wird anhand von einmaligen Sicherheitsmerkmalen des Rechners und des Users generiert, die beim Auslesen bzw Rückwandeln entsprechend gleich sein müssen !!das bedeutet. Ich MUSS das SKRIPT immer auf der jeweiligen Maschine ausführen, von der ich das entsprechende auslesen
möchte? Oder kann ich mit dem identischen Benutzer auch über Remote die Sachen auslesen lassen?
D.h. also das du das File immer dort und mit dem User generieren musst mit dem das Script später ausgeführt werden soll. Anders wäre es ja sinnlos solch ein File zu generieren, wenn es mit jedem Account wieder zurück gewandelt werden könnte
Beim Ausführung von der ersten Zeile kommt folgendes:
Sorry, da ist mir auf meinem Smartphone noch ein kleiner Fehler reingerutscht, ist oben korrigiert.Grüße Uwe
Hatte ich zwar oben schon geschrieben, aber egal dann eben nochmal
$Server = "Server"
$AD_Group = "Group"
$AD_User = "Server\Benutzer"
$Output_File = "Pfad"
$securepass = gc "D:\password.txt" | convertto-SecureString
$cred = New-Object System.Management.Automation.PSCredential($AD_User, $securepass)
Get-ADGroupMember -Recursive $AD_Group -Server $Server -Credential $cred | ft name | Out-File $Output_File
Zitat von @makaroni:
Einmal muss ich nun allerdings noch nerven. Folgender Fehler kommt:
New-Object : Cannot find type [PSCredential]: make sure the assembly containing this type is loaded.
wieder die PS 2.0 hatte es oben bereits korrigiertEinmal muss ich nun allerdings noch nerven. Folgender Fehler kommt:
New-Object : Cannot find type [PSCredential]: make sure the assembly containing this type is loaded.
$cred = New-Object System.Management.Automation.PSCredential($AD_User, $securepass)
p.s. an die Abkürzungen gewöhnt man sich leider sehr schnell