- Udaljeno upravljanje koristi WinRM/WS-Man (HTTP/HTTPS) i omogućava sesije tipa 1-na-1, 1-na-više i trajne sesije sa sigurnosnim kontrolama.
- Enable-PSRemoting konfiguriše uslugu, slušače i zaštitni zid; HTTPS zahteva važeći certifikat i podudaranje CN/SAN.
- Rezultati se vraćaju deserializirani; metode se pozivaju unutar udaljenog skriptnog bloka, a prilagođene krajnje tačke se koriste za precizno delegiranje.
Možda već lokalno automatizirate mnoge zadatke pomoću PowerShella, ali gdje ih zapravo trebate automatizirati? PowerShell daljinsko upravljanje čini razliku To je kada izvršavate naredbe na udaljenim mašinama, bilo da ih je nekoliko ili stotine, interaktivno ili paralelno. Ova tehnologija, dostupna od verzije Windows PowerShell 2.0 i poboljšana od verzije 3.0, zasnovana je na WS-Managementu (WinRM) i pretvara PowerShell u robusnom, skalabilnom i sigurnom kanalu za daljinsko upravljanje.
Prije svega, važno je razumjeti dvije ključne ideje: cmdlets sa -Parametar NazivRačunara (npr. Get-Process ili Get-Service) nisu dugoročni put koji preporučuje Microsoft, a PowerShell Remoting ne funkcioniše kao "hak". U stvari, provodi međusobnu autentifikaciju, evidentira reviziju i poštuje vaše uobičajene dozvole, bez pohranjivanja vjerodajnica ili magičnog pokretanja bilo čega sa super privilegijama.
Šta je PowerShell Remoting i zašto ga koristiti?
con PowerShell Remoting možete izvršiti gotovo svaku komandu na daljinu koje biste mogli pokrenuti u lokalnoj sesiji, od ispitivanja servisa do implementacije konfiguracija, i to na stotinama računara odjednom. Za razliku od cmdleta koji prihvataju -ComputerName (mnogi koriste DCOM/RPC), Remoting putuje putem WS-Mana (HTTP/HTTPS), koji je prilagođeniji zaštitnom zidu (firewall-u), omogućava paralelizam i prebacuje posao na udaljeni host, a ne na klijenta.
To se prevodi u tri praktične prednosti: bolje performanse u masovnim izvršenjima, manje trenja u mrežama s restriktivnim pravilima i sigurnosnim modelom koji je u skladu s Kerberos/HTTPS-om. Nadalje, time što se ne oslanja na svaki cmdlet za implementaciju vlastitog daljinskog upravljanja, Remoting Radi za bilo koji skript ili ulogu koji je dostupan na odredištu.
Podrazumevano, noviji Windows serveri dolaze sa omogućenim daljinskim upravljanjem; u Windowsu 10/11 aktiviraš ga s jednom cmdletom. I da, možete koristiti alternativne vjerodajnice, trajne sesije, prilagođene krajnje tačke i još mnogo toga.
Napomena: Udaljeno upravljanje nije sinonim za otvaranje svega. Podrazumevano, samo administratori Mogu se povezati, a radnje se izvršavaju pod njihovim identitetom. Ako vam je potrebna precizna delegacija, prilagođene krajnje tačke vam omogućavaju da otkrijete samo bitne komande.

Kako funkcioniše unutra: WinRM, WS-Man i portovi
PowerShell Remoting radi po modelu klijent-server. Klijent šalje WS-Management zahtjeve putem HTTP (5985/TCP) ili HTTPS (5986/TCP)Na ciljnom serveru, servis Windows Remote Management (WinRM) sluša, razrješava krajnju tačku (konfiguraciju sesije) i hostira PowerShell sesiju u pozadini (proces wsmprovhost.exe). vraćanje serijaliziranih rezultata klijentu u XML-u putem SOAP-a.
Prvi put kada omogućite Remoting, konfigurišu se slušači, otvara se odgovarajući izuzetak zaštitnog zida i kreiraju se konfiguracije sesije. Od PowerShella 6+, više izdanja koegzistira i Enable-PSRemoting Registruje krajnje tačke sa nazivima koji odražavaju verziju (na primjer, PowerShell.7 i PowerShell.7.xy).
Ako u svom okruženju dozvoljavate samo HTTPS, možete kreirati siguran slušalac s certifikatom koji je izdao pouzdani CA (preporučeno). Alternativno, druga alternativa je korištenje TrustedHosts-a na ograničen način, svjestan rizika, za scenarije radne grupe ili računare koji nisu domene.
Imajte na umu da Powershell Remoting može koegzistirati s cmdletsima s -ComputerName, ali Microsoft gura WS-Mana kao standardni i budući način za udaljenu administraciju.
Omogućavanje PowerShell Remoting-a i korisnih parametara
Na Windowsu, samo otvorite PowerShell kao administrator i pokrenite Enable-PSRemotingSistem pokreće WinRM, konfiguriše automatsko pokretanje, omogućava slušač i kreira odgovarajuća pravila zaštitnog zida. Na klijentima sa javnim mrežnim profilom, ovo možete namjerno dozvoliti pomoću -PreskočiProvjeruMrežnogProfila (a zatim pojačajte određenim pravilima):
Enable-PSRemoting
Enable-PSRemoting -Force
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Sintaksa takođe omogućava, -Potvrdi y -Šta ako za kontrolu promjena. Zapamtite: Dostupno je samo na Windowsu, i morate pokrenuti konzolu s povišenim ovlastima. Kreirana pravila se razlikuju između serverskih i klijentskih izdanja, posebno na javnim mrežama, gdje su prema zadanim postavkama ograničena na lokalnu podmrežu, osim ako ne proširite opseg (na primjer, pomoću Set-NetFirewallRule).
Da biste prikazali već snimljene konfiguracije sesije i potvrdili da je sve spremno, koristite Get-PSSessionConfigurationAko se pojave krajnje tačke PowerShell.x i Workflow, okvir za udaljeno upravljanje (Remoting framework) je operativan.

Načini korištenja: 1 na 1, 1 na više i trajne sesije
Kada vam je potrebna interaktivna konzola na jednom računaru, obratite se Enter-PSSessionPojavit će se upit i sve što izvršite bit će poslano udaljenom hostu. Možete ponovo koristiti vjerodajnice pomoću Get-Credential kako biste izbjegli stalno ponovno unošenje:
$cred = Get-Credential
Enter-PSSession -ComputerName dc01 -Credential $cred
Exit-PSSession
Ako tražite slanje komandi na nekoliko računara odjednom, alat je Invoke-Command sa skriptnim blokom. Podrazumevano, pokreće do 32 istovremene veze (podesivo sa -ThrottleLimit). Rezultati se vraćaju kao deserijalizovani objekti (bez "živih" metoda):
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service -Name W32Time } -Credential $cred
Trebate pozvati metodu poput .Stop() ili .Start()? Uradite to. unutar skriptnog bloka u udaljenom kontekstu, a ne lokalno deserializirani objekt, i to je to. Ako postoji ekvivalentna cmdlet naredba (Stop-Service/Start-Service), obično je poželjnije koristiti je radi jasnoće.
Da biste izbjegli troškove započinjanja i završavanja sesija u svakom pozivu, kreirajte Trajna PSS sesija i ponovo ga koristite u više poziva. Koristite New-PSSession za kreiranje veze i koristite Invoke-Command-Session za ponovnu upotrebu tunela. Ne zaboravite da ga zatvorite sa Remove-PSSession kada završite.
Serijalizacija, ograničenja i dobre prakse
Važan detalj: prilikom putovanja, objekti se "+splješte" i stižu kao deserijalizovani snimci, sa svojstvima, ali bez metoda. Ovo je namjerno i štedi propusni opseg, ali znači da ne možete koristiti članove koji izvršavaju logiku (kao što je .Kill()) na lokalnoj kopiji. Rješenje je očigledno: pozvati te metode. u daljinskom a ako su vam potrebna samo određena polja, filtrirajte pomoću Select-Object da biste poslali manje podataka.
U skriptama izbjegavajte Enter-PSSession (namijenjeno za interaktivnu upotrebu) i koristite Invoke-Command sa blokovima skripti. Ako očekujete više poziva ili trebate sačuvati stanje (varijable, uvezeni moduli), koristiti trajne sesije i, ako je primjenjivo, odspojite ih/ponovo ih povežite pomoću Disconnect-PSSession/Connect-PSSession u PowerShellu 3.0+.
Autentifikacija, HTTPS i scenariji izvan domene
U domenu, izvorna autentifikacija je Kerberos I sve teče kako treba. Kada uređaj ne može provjeriti naziv servera ili se povežete na CNAME IP adresu ili alias, potrebna vam je jedna od ove dvije opcije: 1) Listener HTTPS sa certifikatom izdao CA kojem vjerujete, ili 2) dodajte odredište (ime ili IP adresu) u TrustedHosts i koristiti vjerodajniceDruga opcija onemogućava međusobnu autentifikaciju za taj host, tako da smanjuje opseg na neophodni minimum.
Postavljanje HTTPS slušača zahtijeva certifikat (idealno od vašeg PKI-a ili javnog CA-a), instaliran u timskom skladištu i povezan s WinRM-om. Port 5986/TCP se zatim otvara u zaštitnom zidu i, od strane klijenta, koristi. -KoristiteSSL u udaljenim cmdletima. Za autentifikaciju klijentskog certifikata, možete mapirati certifikat na lokalni račun i povezati se s -Otisak palca certifikata (Enter-PSSession ovo ne prihvata direktno; prvo kreirajte sesiju pomoću New-PSSession.)
Drugi skok i delegiranje akreditiva
Čuveni "dvostruki skok" se pojavljuje kada, nakon povezivanja sa serverom, trebate da taj server pristupi... treći resurs u vaše ime (npr. SMB dijeljenje). Postoje dva pristupa za omogućavanje ovoga: CredSSP i delegiranje Kerberos protokola s ograničenim resursima.
con CredSSP Omogućavate klijentu i posredniku da eksplicitno delegiraju akreditive i postavljate politiku (GPO) koja dozvoljava delegiranje određenim računarima. Brzo se konfiguriše, ali je manje sigurno jer se akreditivi prenose u obliku čistog teksta unutar šifriranog tunela. Uvijek ograničite izvore i odredišta.
Poželjna alternativa u domenu je ograničena Kerberos delegacija (ograničena delegacija na osnovu resursa) u modernom AD-u. Ovo omogućava krajnjoj tački da se osloni na primanje delegacije od srednje tačke za određene usluge, izbjegavajući otkrivanje vašeg identiteta prilikom početne veze. Zahtijeva nedavne kontrolere domena i ažurirani RSAT.
Prilagođene krajnje tačke (konfiguracije sesije)
Jedan od dragulja Remotinga je mogućnost registracije tačaka povezivanja sa prilagođene mogućnosti i ograničenjaPrvo generirate datoteku pomoću New-PSSessionConfigurationFile (moduli za prethodno učitavanje, vidljive funkcije, aliasi, ExecutionPolicy, LanguageMode, itd.), a zatim je registrirate pomoću Register-PSSessionConfiguration, gdje možete postaviti RunAsCredential i dozvole (SDDL ili GUI interfejs sa -ShowSecurityDescriptorUI).
Za sigurno delegiranje, otkrijte samo ono što je neophodno pomoću -VisibleCmdlets/-VisibleFunctions i onemogućite slobodno skriptiranje ako je potrebno pomoću Jezički način rada Ograničeni jezik ili NoLanguage. Ako napustite FullLanguage, neko bi mogao koristiti blok skripte za pozivanje neizloženih naredbi, koje, u kombinaciji sa RunAs, bila bi to rupaDizajnirajte ove krajnje tačke precizno i dokumentujte njihov opseg.
Domene, GPO-i i grupni softver
U AD-u možete implementirati Powershell Remoting u velikim razmjerima pomoću GPO-a: omogućiti automatsku konfiguraciju WinRM slušača, postavite uslugu na Automatskii kreirajte izuzetak za zaštitni zid. Imajte na umu da GPO-i mijenjaju postavke, ali ne uključuju uvijek uslugu odmah; ponekad je potrebno ponovo pokrenuti ili prisilno izvršiti ažuriranje za gp.
U radnim grupama (koje nisu domene), konfigurirajte udaljeni rad sa Enable-PSRemoting, postavite TrustedHosts na klijentu (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) i koristite lokalne akreditive. Za HTTPS možete montirati samopotpisane certifikate, iako se preporučuje korištenje pouzdanog CA i potvrdi ime koji ćete koristiti u -ComputerName u certifikatu (CN/SAN podudaranje).
Ključne cmdlets i sintaksa
Šačica komandosa pokriva 90% dnevnih scenarijaZa aktiviranje/deaktiviranje:
Enable-PSRemoting
Disable-PSRemoting
Interaktivna sesija 1 na 1 i izlaz:
Enter-PSSession -ComputerName SEC504STUDENT
Exit-PSSession
1 prema mnogima, sa paralelizmom i akreditacijama:
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service W32Time } -Credential $cred
Trajne sesije i ponovnu upotrebu:
$s = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7
Invoke-Command -Session $s -ScriptBlock { $PSVersionTable }
Remove-PSSession $s
Testiranje i WinRM Korisno:
Test-WSMan -ComputerName host
winrm get winrm/config
winrm enumerate winrm/config/listener
winrm quickconfig -transport:https
Praktične napomene o zaštitnom zidu (firewallu), mreži i portovima
Otvorite 5985/TCP za HTTP i 5986/TCP za HTTPS na ciljnom računaru i na bilo koji posrednički zaštitni zidNa Windows klijentima, Enable-PSRemoting kreira pravila za domen i privatne profile; za javne profile, ograničeno je na lokalnu podmrežu osim ako ne izmijenite opseg pomoću Set-NetFirewallRule -RemoteAddress Any (vrijednost koju možete procijeniti na osnovu vašeg rizika).
Ako koristite SOAR/SIEM integracije koje pokreću udaljene naredbe (npr. iz XSOAR-a), provjerite da server ima DNS rezolucija do hostova, povezivanje na 5985/5986 i akreditacije s dovoljnim lokalnim dozvolama. U nekim slučajevima, NTLM/Basic autentifikacija može zahtijevati prilagođavanje (npr. korištenje lokalnog korisnika u Basicu s SSL-om).
Parametri Enable-PSRemoting (Operativni sažetak)
-Confirm traži potvrdu prije izvršenja; -Force ignoriše upozorenja i izvršite potrebne promjene; -SkipNetworkProfileCheck omogućava Remoting na javnim klijentskim mrežama (podrazumevano ograničeno na lokalnu podmrežu); -WhatIf vam pokazuje šta bi se dogodilo bez primjene promjena. Dodatno, kao i svaki standardni cmdlet, podržava uobičajeni parametri (-Verbose, -ErrorAction, itd.).
Imajte na umu da "Omogući" ne kreira HTTPS slušače ili certifikate za vas; ako vam je potrebna end-to-end enkripcija od početka i autentifikacija zasnovana na certifikate, konfigurirajte HTTPS slušač i provjerite CN/SAN u odnosu na ime koje ćete koristiti u -NazivRačunara.
Korisne WinRM i PowerShell komande za udaljeno upravljanje
Neke osnovne stvari za noćni krevet iz dana u dan:
winrm get winrm/config
winrm enumerate winrm/config/listener
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any
Test-WSMan -ComputerName host -Authentication Default -Credential (Get-Credential)
New-PSSession -ComputerName host
Enter-PSSession -ComputerName host
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Prilikom upravljanja Windowsom u velikim razmjerima, Remoting vam omogućava prelazak sa pristupa "od računara do računara" na deklarativni i sigurni pristup. Kombiniranjem trajnih sesija, snažne autentifikacije (Kerberos/HTTPS), ograničenih krajnjih tačaka i jasnih tragova za dijagnostiku, dobijate brzinu i kontrolu bez žrtvovanja sigurnosti ili revizije. Ako također standardizirate aktivaciju GPO-a i savladate posebne slučajeve (TrustedHosts, double hop, certifikati), imat ćete solidnu udaljenu platformu za svakodnevno poslovanje i odgovor na incidente.
Urednik specijaliziran za tehnologiju i internet pitanja s više od deset godina iskustva u različitim digitalnim medijima. Radio sam kao urednik i kreator sadržaja za kompanije za e-trgovinu, komunikaciju, online marketing i oglašavanje. Također sam pisao na web stranicama ekonomije, finansija i drugih sektora. Moj posao je i moja strast. Sada, kroz moje članke u Tecnobits, pokušavam istražiti sve novosti i nove mogućnosti koje nam svijet tehnologije nudi svaki dan da poboljšamo svoje živote.