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, 1822 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
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 ...

LAN, WAN, Wireless
gelöst SFP+ direkt mit anderem Server verbinden? (2)

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

Batch & Shell
gelöst Powershell Access Abfrage auslesen? (2)

Frage von Druide83 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...