[HowTo] WinRM - Remote-Zugriff als Benutzer

Hallo,

heute möchte ich über ein Szenario schreiben, welches in letzter Zeit des Öfteren von Kunden angefragt wurde -WinRM Remote-Zugriff für Benutzer-Konten.

[Szenario]
In vielen Unternehmen wird inzwischen WinRM verwendet, um Remote-Abfragen durchzuführen. Im Normalfall (out of the box) klappt das aber nur, wenn der Benutzer auf dem Zielsystem über Admin-Berechtigungen verfügt.

Nun gehen nach und nach viele Unternehmen dazu über, die Verwendung von Admin-Berechtigungen einzuschränken und stattdessen mit Delegierungen zu arbeiten (zum Glück).

Nachfolgend eine Anleitung, wie Sie den Remote-Zugriff auf WinRM delegieren können.

Hinweis:

Es gibt zwar eine Gruppe „WinRMRemoteWMIUsers__“ - diese ist jedoch aus WinRM-Sicht legacy und kann out-of-the-box nicht für den Remote-WinRM-Zugriff verwendet werden.

[Lösung]

Hinweis: Für den Zugriff über PowerShell - Siehe unten ( [Update 28.03.2016] Zugriff via Remote PowerShell)

WinRM verfügt über eine eigene ACL, welche über das Kommando „winrm g winrm/config/service“ ausgelesen werden kann.

 

Die ACL wird wie üblich via SDDL abgebildet.
Um die Berechtigungen nun besser darzustellen, kann das Kommando „winrm configSDDL default“ verwendet werden.

 

Hier können Sie nun Benutzer oder besser, eine Gruppe, für den Zugriff berechtigen.
In meinem Fall habe ich eine neue Gruppe angelegt (SG-WinRM-Basic), meinen Testbenutzer (Testuser) entsprechend hinzugefügt und die Gruppe berechtigt.

Nach dem Schließen des Fensters wird die neue ACL angezeigt:

   

Die Abfrage läuft nun auch unter Verwendung des Benutzer-Kontos:

   

Tipp:
Wenn Sie die gleichen Berechtigungen auch auf anderen Systemen setzen möchten, können Sie den SDDL-String kopieren und via „winrm s winrm/config/service @{RootSDDL="<SDDL>"}“ auf anderen Systemen setzen (funktioniert aufgrund der Verwendung von SIDs natürlich nur in Verbindung mit AD-Benutzern bzw. Gruppen).

In meinem Fall wäre das:

   

[Update 28.03.2016] Zugriff via Remote PowerShell

Die Anleitung bezieht sich ausschließlich auf den Zugriff via WinRM.
Möchten Sie ausschließlich via Remote PowerShell auf das Zielsystem zugreifen (z.B. Enter-PSSession or invoke), muss die ACL auf PowerShell-Ebene angepasst werden.

Die Anpassung ist via folgendem Kommando möglich:
Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI

Ich hoffe, dass Ihnen die bereitgestellten Informationen weiterhelfen und wünsche einen schönen Tag.

Viele Grüße
Matthias Meiling
Premier Platforms Core Team | Microsoft

Getestet unter Windows Server 2012 R2 / 8.1.

 

This posting is provided "AS IS" with no warranties, and confers no rights.
The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages.