fabezz
Goto Top

Windows Powershell Remote Domain Controller

Guten Tag,
eine Gruppe soll via Powershell das Active Directory Modul zur Laufzeit des Programmes vom Domänen Controller laden.
Hierzu wird eine PSSession (Enter-Pssession) benutzt.
Nun ist die Sachlage so dass Nicht Administratoren keine PSSession aufbauen dürfen und somit das Modul auch nicht geladen werden kann.
Gibt es eine Möglichkeit eine Gruppe zu berechtigen dass diese somit das AD Modul vom DC laden kann? Ich möchte keine RSAT Tool auf den Terminal Server installieren da es dann sicherheitstechnisch wieder Probleme gibt.

Mit freundlichen Grüßen
Fabian

Content-ID: 302471

Url: https://administrator.de/contentid/302471

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

114757
114757 21.04.2016 aktualisiert um 14:19:42 Uhr
Goto Top
Moin,
das geht mit Powershell Session Configuration Files. Damit kannst du detailliert festlegen was und wer ein User in einer Session machen darf und was nicht.

Gruß jodel32
colinardo
colinardo 21.04.2016 aktualisiert um 17:00:11 Uhr
Goto Top
Hallo Fabian,
@114757 hat dir schon den richtigen Ansatz geliefert. Mit einem benutzerdefinierten Configurationfile das man sich mit New-PSSessionConfiguration erstellen und dann mit Register-PSSessionConfiguration registrieren kann, kann man eine ganz klar abgegrenzte Umgebung schaffen was die User machen dürfen und was nicht (z.B. nur bestimmte CMDLets ausführen, Module laden etc.).

Dies ist der erste Schritt. Der zweite besteht darin dieser Config Rechte zuzuweisen.

Die bestehenden Configuration-Files kannst du dir mit Get-PSSessionConfiguration anzeigen lassen. Die Default-Session die die Powershell benutzt wenn man sich per Remote auf einen Server schaltet ist Microsoft.Powershell. Diese wird immer dann benutzt wenn man keine Config per Parameter -ConfigurationName mit übergibt.

Hier die Beispielausgabe:
Name          : microsoft.powershell
PSVersion     : 4.0
StartupScript : 
RunAsUser     : 
Permission    : 

Name          : microsoft.powershell.workflow
PSVersion     : 4.0
StartupScript : 
RunAsUser     : 
Permission    : VORDEFINIERT\Administrators AccessAllowed, VORDEFINIERT\Remote Management Users AccessAllowed

Name          : microsoft.powershell32
PSVersion     : 4.0
StartupScript : 
RunAsUser     : 
Permission    : VORDEFINIERT\Administrators AccessAllowed, VORDEFINIERT\Remote Management Users AccessAllowed

Name          : microsoft.windows.servermanagerworkflows
PSVersion     : 3.0
StartupScript : 
RunAsUser     : 
Permission    : NT-AUTORITÄT\INTERAKTIV AccessAllowed, VORDEFINIERT\Administrators AccessAllowed
Um der Default-Config nun andere User/Gruppen den Zufgriff zu erlauben kann man die ACLs der Default-Config anpassen wenn man möchte. Hiermit ruft man den Security-Dialog für die Config auf:
Set-PSSessionConfiguration Microsoft.Powershell -ShowSecurityDescriptorUI -Force
Um einem User/Gruppe nun den Zugriff für Enter-PSSession zu gewähren muss dieser mindestens Ausführen(Invoke) Rechte bekommen.
Besser ist es allerdings auf Produktiv-Servern wie oben geschrieben eine separate Config zu erstellen und den Usern den Zugriff so weit wie möglich einzuschränken.

Wichtiger Hinweis: Hinzu kommt das der Gruppe für das Ausführen von bestimmten Funktionen natürlich auch das Recht dazu erteilt werden muss. Nur allein der Zugriff per Enter-PSSession gibt einem ja nicht gleichzeitig das Recht z.B. DNS-Server-Einstellungen etc. zu ändern.

Was für dich auch interessant sein könnte ist Powershell Web Access, mit dem man Benutzern die Powershell-Umgebung im Browser verfügbar machen kann. Hier lässt sich ebenso der Zugriff mit den oben beschriebenen Configurations so einschränken wie man es benötigt.

Noch mehr Infos dazu kannst du hier nachlesen:
http://powershell.com/cs/media/p/7257.aspx#interactive-remoting

Grüße Uwe
Fabezz
Fabezz 21.04.2016 um 20:40:11 Uhr
Goto Top
Hallo Colinardo,
danke für deine Antwort.
Mir ist nun nur nicht ganz klar wo und wie ich das erstelle.
Für mich hört sich das so an als müsste ich das Configfile auf dem Zielcomputer hinterlegen beziehungsweise erstellen.
Wie ich nun nur das Modul/CMDlet "ActiveDirectory" für einen Sideload freigebe verstehe ich schlicht weg noch nicht. Des Weiteren wie wird dann die Session vom Client aus aufgebaut?

Enter-PSSession -Computername DC -ConfigurationName AD.pss?

Wenn ich einmal so eine Configfile erstellt habe ist das dann Global oder bleibt die default bestehen und die neue liegt neben dran?

Der Benutzer bekommt natürlich per GPO die Rechte zum Ausführen von Powershell Befehlen.

Danke schon jetzt für deine Antwort

Gruß
Fabian
colinardo
Lösung colinardo 21.04.2016 aktualisiert um 23:16:19 Uhr
Goto Top
Zitat von @Fabezz:
Mir ist nun nur nicht ganz klar wo und wie ich das erstelle.
Die zwei nötigen CMDLets habe ich dir oben genannt und der erste Link gibt dir die Grundlagen dazu.
Für mich hört sich das so an als müsste ich das Configfile auf dem Zielcomputer hinterlegen beziehungsweise erstellen.
Auf dem Server auf dessen Powershell Session du zugreifen willst.
Wie ich nun nur das Modul/CMDlet "ActiveDirectory" für einen Sideload freigebe verstehe ich schlicht weg noch nicht.
Steht im Link von jodel, und wenn du mal in das generierte File rein schaust, sollten die kommentierten Abschnitte selbsterklärend sein. Etwa lesen musst du schon wenn du es komplett verstehen willst.
Des Weiteren wie wird dann die Session vom Client aus aufgebaut?

Enter-PSSession -Computername DC -ConfigurationName AD.pss?
Das ist eine von vielen möglichen Varianten.
Es geht z.B. auch
$s = New-PSSession -Computername DC -ConfigurationName MyPSC
Invoke-Command -Session $s {get-aduser maxmuster}
Weitere Varianten stehen in meinem oben geposteten letzten Link den du dir unbedingt mal komplett durchlesen solltest!
Wenn ich einmal so eine Configfile erstellt habe ist das dann Global oder bleibt die default bestehen und die neue liegt neben dran?
Die ist immer optional, es wird nichts überschrieben und die Default bleibt natürlich erhalten. Die zusätzlichen Configs kann man nutzen, muss man aber nicht. Also alles optional und ohne Gefahr durchführbar
Der Benutzer bekommt natürlich per GPO die Rechte zum Ausführen von Powershell Befehlen.
Gut.
Danke schon jetzt für deine Antwort
Bitte.

Grüße Uwe