Powershell Remoting ja TrustedHosts

Powershelliga teises masinas toimetamine on süsteemiülema jaoks väga mugav.  Ent ilma erilise vaevata töötab see vaid domeeni keskkonnas.  Niipea, kui masin(ad) ei kuulu domeeni või kuuluvad domeenidesse, mis teineteist ei usalda, ei ole see enam nii lihtne.

Põhjus peitub selles, et kaugühenduse loomisel kontrollitakse nii kasutajat (et see tohib üldse kaugsessiooni luua) kui ka masinat (ühenduse looja kontrollib, et sihtmasin on ikka õige).  Ja kui masinad saavad autentimiseks oma domeenikontosid kasutada, ongi asi korras.

Kui aga domeenikontod ei sobi, siis saab asja siiski tööle.  Selleks tuleb ühendust loovas masinas kuidagi korraldada sihtmasina usaldusväärsus.  Üks võimalus oleks kasutada serte, aga see muudaks asja enamasti veelgi keerulisemaks.  Natuke lihtsam oleks sihtmasina lisamine usaldusväärsete masinate nimekirja.  Sinna nimekirja lisamine tähendab sisuliselt seda, et sihtmasina identiteeti enam ei kontrollita.

Nimetatud tegevust saab teostada ainult süsteemiülema õigustes kasutaja.  Ning teha saab seda näiteks järgnevalt:

#Requires -RunAsAdministrator
#Requires -Version 2

$NewList = "uusmasin, 192.168.2.3"

# salvestame praeguse listi
$OldHosts = (Get-Item WSMan:\localhost\Client\TrustedHosts).Value

# salvestame listi
Set-Item WSMan:\localhost\Client\TrustedHosts -Value $NewList -Concatenate

Viimases reas lisatud käsurea parameeter korraldab selle, et uus väärtus lisatakse olemasolevale, mitte ei kirjutata üle. Tänud Kaidole, kes sellele parameetrile peale sattus 🙂

Nüüd tasuks sihtmasinas üle vaadata, kas ja kes kaugsessioonide kaudu üldse sisse saavad.  Vaikimisi saavad kaugsessioone kasutada vaid süsteemiülemad.  Alates Windows 8/Server 2012 keskkonnast on ligipääs lubatud veel lokaalse grupi Remote Management Users liikmetele.  Varasemate OS-versioonide puhul sellist gruppi pole ning seetõttu tuleks ligipääsuõigusi täiendada.  Lihtsaim viis oleks vastava dialoogiakna avamine:

#Requires -RunAsAdministrator
#Requires -Version 2
Set-PSSessionConfiguration Microsoft.PowerShell –ShowSecurityDescriptorUI

#Requires -Version 3
Set-PSSessionConfiguration microsoft.powershell.workflow –ShowSecurityDescriptorUI

Kui sihtmasin on Windows Server 2012 või kui sihtvõrgus on selline OS kättesaadav, siis saab kaugsessiooni häälestust mõnevõrra lihtsustada.  Nimelt on Server 2012-s olemas komponent Windows PowerShell Web Access (PSWA).  Ja see on sisuliselt veebisait, mis vahendab Powershelli käsurida veebilehitsejasse.  Jääb muidugi veel probleem, et Server 2012 (PSWA) masinast tuleb edasi sihtmasinasse saada ikkagi WinRM sessiooni kaudu ning kogu ülaltoodud jutt võib olla oluline.

Advertisements