Zdalny dostęp do WinRM bez uprawnień administratora

Domyślnie musisz mieć uprawnienia administratora, aby połączyć się zdalnie z komputerem za pomocą programu PowerShell (PowerShell Remoting). W tym artykule pokażemy, w jaki sposób, za pomocą grupy zabezpieczeń, zasad grupy i zmiany deskryptora sesji PoSh, w celu zapewnienia uprawnień do połączenia za pomocą programu PowerShell Remoting (WinRM) dla zwykłych użytkowników bez uprawnień administratora.

Podczas próby utworzenia sesji PowerShell na komputerze zdalnym z poziomu zwykłego użytkownika (Enter-PSSession msk-server1) pojawia się błąd dostępu:

Enter-PSSession: Połączenie ze zdalnym serwerem msk-server1 nie powiodło się z następującym komunikatem o błędzie: Odmowa dostępu.

Treść

  • Zdalny dostęp do WinRM i grupy Użytkownicy zdalnego zarządzania
  • Deskryptor bezpieczeństwa sesji PowerShell
  • Zdalne zarządzanie funkcją Hyper-V wymaga również uprawnień WinRM

Zdalny dostęp do WinRM i grupy Użytkownicy zdalnego zarządzania

Sprawdź standardowe uprawnienia dla sesji PoSh:

(Get-PSSessionConfiguration -Name Microsoft.PowerShell). Licencja

Jak widać, dostęp jest dozwolony dla następujących wbudowanych grup:

  • BUILTIN \ Administrators - AccessAllowed,
  • BUILTIN \ Użytkownicy zdalnego zarządzania - AccessAllowed

Tak więc, aby użytkownik mógł połączyć się zdalnie przez WinRM, wystarczy, aby był członkiem wbudowanej lokalnej grupy zabezpieczeń administratorów lub Zdalne Zarządzanie Użytkownicy (grupa jest tworzona w systemie począwszy od programu PowerShell 4.0, który jest domyślnie dostępny w systemie Windows 8 / Windows Server 2012 i nowszych). Ta grupa zapewnia również dostęp do zasobów WMI za pośrednictwem protokołów kontrolnych (na przykład WS-Management)

Koniecznego użytkownika można dołączyć do grupy za pomocą przystawki zarządzania komputerem:

lub za pomocą polecenia:

grupa lokalna netto „Użytkownicy zdalnego zarządzania” / dodaj aapetrov2

W przypadku, gdy taki dostęp musi zostać przyznany na wielu komputerach, możesz użyć zasad grupy. Aby to zrobić, przypisz obiekt zasad grupy do niezbędnych komputerów i zasad Konfiguracja komputera -> Ustawienia systemu Windows -> Ustawienia zabezpieczeń -> Grupy z ograniczeniami dodaj nowe grupyu użytkowników zdalnego zarządzania i dołącz do niego konta lub grupy, które muszą uzyskać dostęp do WinRM.

Po dołączeniu użytkownika do grupy Użytkownicy zdalnego zarządzania będzie mógł utworzyć zdalną sesję PowerShell za pomocą Enter-PSSession lub uruchomić polecenia za pomocą Invoke-Command. Prawa użytkownika w tej sesji będą ograniczone jego prawami do komputera.

Sprawdź, czy zdalne połączenie działa.

Deskryptor bezpieczeństwa sesji PowerShell

Innym sposobem na szybkie przyznanie użytkownikowi prawa do używania programu PowerShell Remoting bez włączania go do lokalnej grupy zabezpieczeń Użytkownicy zdalnego zarządzania jest modyfikacja deskryptora zabezpieczeń bieżącej sesji Microsoft.PowerShell na komputerze lokalnym. Ta metoda pozwoli ci szybko tymczasowo (do następnego uruchomienia) przyznać indywidualnym użytkownikom prawo do zdalnego połączenia za pomocą PowerShell.

Następujące polecenie otwiera listę bieżących uprawnień:

Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI

W tym oknie dialogowym musisz dodać użytkownika lub grupę i przyznać mu prawa Wykonaj (Invoke).

Po zapisaniu zmian system poprosi o potwierdzenie ponownego uruchomienia usługi WinRM.

W przypadku konieczności automatycznej zmiany deskryptora zabezpieczeń (bez GUI) najpierw trzeba wprowadzić zmiany ręcznie, a następnie uzyskać bieżący deskryptor dostępu w formacie SDDL.

(Get-PSSessionConfiguration -Name „Microsoft.PowerShell”). SecurityDescriptorSDDL

W naszym przykładzie polecenie zwróciło uchwyt

O: NSG: BAD: P (A ;; GA ;;; BA) (A ;; GXGR ;;; S-1-5-21-2373142251-3438396318-2932294317-23761992) (A ;; GA ;;; RM ) S: P (AU; FA; GA ;;; WD) (AU; SA; GXGW ;;; WD)

Następnie możesz użyć tej linii SDDL, aby zapewnić dostęp do PowerShell na dowolnym innym serwerze..

$ SDDL = „O: NSG: BAD: P (A ;; GA ;;; BA) (A ;; GXGR ;;; S-1-5-21-2373142251-3438396318-2932294317-23761992) (A ;; GA ; ;; RM) S: P (AU; FA; GA ;;; WD) (AU; SA; GXGW ;;; WD) ”
Set-PSSessionConfiguration -Name Microsoft.PowerShell -SecurityDescriptorSddl $ SDDL

Zdalne zarządzanie funkcją Hyper-V wymaga również uprawnień WinRM

W systemie Windows 10 / Windows Server 2016 do zdalnego łączenia się z serwerem Hyper-V za pomocą Menedżera funkcji Hyper-V używany był protokół PowerShell Remoting. Dlatego domyślnie zdalni użytkownicy niebędący administratorami nie będą mogli zarządzać serwerem Hyper-V, nawet jeśli mają uprawnienia w Hyper-V.

Podczas próby połączenia się z serwerem Hyper-V z komputera z systemem Windows 10 pod zwykłym użytkownikiem pojawia się błąd.

Wystąpił błąd podczas próby połączenia z serwerem „server1”. Sprawdź, czy usługa zarządzania maszyną wirtualną jest uruchomiona i czy masz uprawnienia do łączenia się z serwerem

Aby umożliwić zdalne połączenie z konsolą, po prostu dodaj użytkownika Hyper-V do lokalnej grupy użytkowników zdalnego zarządzania w ten sam sposób..