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

AD Gruppenmitglieder via Powershell von anderem Server auslesen..

Frage Microsoft Windows Server

Mitglied: makaroni

makaroni (Level 1) - Jetzt verbinden

30.12.2014, aktualisiert 13:21 Uhr, 1924 Aufrufe, 12 Kommentare, 2 Danke

Hallo zusammen,

ich möchte gerne automatisiert auf Active Directory Server via Powershell zugreifen und Mitglieder einer entsprechenden Gruppe auslesen.

Ich habe nun folgendes:

01.
### --- Globale Variablen --- 
02.
 
03.
$Server = "Server" 
04.
$AD_Group = "Group" 
05.
$AD_User = "Server\Benutzer" 
06.
$Output_File = "Pfad" 
07.
 
08.
 
09.
 
10.
Get-ADGroupMember -Recursive "$AD_Group" -Server "$Server" -Credential "$AD_User" |ft name | Out-File "Output_File" 
11.
 
12.
Write-Host -foregroundColor yellow "Alle User aus der Gruppe ""Gruppe"" erfolgreich ausgelesen!"  
13.
 
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
Mitglied: jsysde
30.12.2014 um 08:54 Uhr
Moin.

Warum übergibst du Username/Passwort?
Jeder Domain User hat lesenden Zugriff auf das AD...

Cheers,
jsysde
Bitte warten ..
Mitglied: makaroni
30.12.2014 um 08:56 Uhr
Ja das stimmt soweit.

Ich möchte allerdings auf einen anderen Server zugreifen, wo der Domain User dann keinen lesenden Zugriff hat. z.B. unterschiedliche Domains...
Bitte warten ..
Mitglied: colinardo
LÖSUNG 30.12.2014, aktualisiert um 13:21 Uhr
Moin Makaroni,
machst du so:
01.
# password als Secure-String in Texdatei speichern(nur einmalig machen) 
02.
convertfrom-securestring -secureString (read-host -assecurestring) | set-content "D:\password.txt" 
03.
 
04.
# Erstellen des Credential-Objects in deinem Script mit dem Passwort aus der Textdatei 
05.
$cred = New-Object PSCredential "user@domain.com", (gc "D:\password.txt" | convertto-SecureString)
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
Bitte warten ..
Mitglied: makaroni
30.12.2014 um 09:34 Uhr
Vielen Dank schon einmal,

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?

Beim Ausführung von der ersten Zeile kommt folgendes:

ConvertFrom-SecureString : Cannot process argument because the value of argumen
t "SecureString" is invalid. Change the value of the "SecureString" argument an
d run the operation again.
Bitte warten ..
Mitglied: colinardo
30.12.2014, aktualisiert um 11:26 Uhr
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 !!
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
Bitte warten ..
Mitglied: makaroni
30.12.2014, aktualisiert um 11:51 Uhr
Ok verstanden und es ergibt Sinn

Aber der Fehler kommt immernoch:

Ich habe mir nun zwei .ps1 dateien angelegt, die erste mit folgendem Inhalt:
01.
convertfrom-securestring -secureString (read-host -assecurestring) | set-content "C:\Users\test\Documents\test\password.txt" 
ConvertFrom-SecureString : Cannot process argument because the value of argumen
t "SecureString" is invalid. Change the value of the "SecureString" argument an
d run the operation again.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 30.12.2014, aktualisiert um 13:21 Uhr
verwendest du noch die PS Version 2.0 ?

dann schreibe es so:
01.
$securestring = read-host -assecurestring -Prompt "Bitte Passwort eingeben" 
02.
convertfrom-securestring -secureString $securestring | set-content "D:\password.txt"
Bitte warten ..
Mitglied: makaroni
30.12.2014, aktualisiert um 13:20 Uhr
Ja, ist die noch vom alten 08 Server... Aber das klappt nun besten Dank

Nun fehlt mir allerdings noch die Verbindung zum anderen Server, ohne dass ich Benutzername und Passwort eingeben muss...

Mein Ansatz war wie folgt:


01.
### --- Globale Variablen --- 
02.
 
03.
$Server = "Server" 
04.
$AD_Group = "Group" 
05.
$AD_User = "Server\Benutzer" 
06.
$Output_File = "Pfad" 
07.
 
08.
 
09.
 
10.
Get-ADGroupMember -Recursive "$AD_Group" -Server "$Server" -Credential "$AD_User" |ft name | Out-File "Output_File" 
11.
 
12.
Write-Host -foregroundColor yellow "Alle User aus der Gruppe ""Gruppe"" erfolgreich ausgelesen!" 

EDIT:

Die Frage ist noch die, wie ich das Objekt jetzt übergebe, bis jetzt übergebe ich lediglich den Benutzernamen, allerdings muss ja das Passwort $cred noch hinterlegt werden...
Bitte warten ..
Mitglied: colinardo
LÖSUNG 30.12.2014, aktualisiert um 13:29 Uhr
Hatte ich zwar oben schon geschrieben, aber egal dann eben nochmal
01.
$Server = "Server" 
02.
$AD_Group = "Group" 
03.
$AD_User = "Server\Benutzer" 
04.
$Output_File = "Pfad" 
05.
 
06.
$securepass = gc "D:\password.txt" | convertto-SecureString 
07.
$cred = New-Object System.Management.Automation.PSCredential($AD_User, $securepass) 
08.
Get-ADGroupMember -Recursive $AD_Group -Server $Server -Credential $cred | ft name | Out-File $Output_File
Bitte warten ..
Mitglied: makaroni
30.12.2014 um 13:32 Uhr
Oh Du hast Recht, hatte ich wohl überlesen...

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.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 30.12.2014, aktualisiert um 13:42 Uhr
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 korrigiert
$cred = New-Object System.Management.Automation.PSCredential($AD_User, $securepass) 
p.s. an die Abkürzungen gewöhnt man sich leider sehr schnell
Bitte warten ..
Mitglied: makaroni
30.12.2014 um 13:42 Uhr
Vielen Dank So viel Ahnung möchte ich auch gerne haben ;)
Bitte warten ..
Ähnliche Inhalte
Windows Netzwerk
gelöst Powershell skript zum Auslesen der im AD angemeldeten User (2)

Frage von jan.kleinel zum Thema Windows Netzwerk ...

Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell INI Tags auslesen (2)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Windows Server
Exchange 2010 auf Windows Server 2016 und AD (2)

Tipp von Herbrich19 zum Thema Windows Server ...

Neue Wissensbeiträge
Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
VPN Tunnel aufbauen (16)

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

Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (13)

Frage von marshall75000 zum Thema Router & Routing ...

Microsoft Office
Saubere HTML aus Word-Dokument (13)

Frage von peterpa zum Thema Microsoft Office ...

E-Mail
gelöst Probleme beim E-Mail Empfang (12)

Frage von TommyB83 zum Thema E-Mail ...