- Afstandsbediening gebruik WinRM/WS-Man (HTTP/HTTPS) en laat 1-tot-1, 1-tot-baie en aanhoudende sessies met sekuriteitskontroles toe.
- Aktiveer-PSRemoting konfigureer die diens, luisteraars en firewall; HTTPS vereis 'n geldige sertifikaat en CN/SAN-ooreenstemming.
- Die resultate word gedeserialiseer teruggegee; metodes word binne die afgeleë skripblok aangeroep en persoonlike eindpunte word gebruik vir fynkorrelige delegering.
Jy mag dalk reeds baie take met PowerShell plaaslik outomatiseer, maar waar doen jy dit regtig? PowerShell-afstandbeheer maak die verskil Dit is wanneer jy opdragte op afgeleë masjiene uitvoer, of dit nou 'n paar of honderde is, interaktief of parallel. Hierdie tegnologie, beskikbaar sedert Windows PowerShell 2.0 en verbeter sedert 3.0, is gebaseer op WS-Management (WinRM) en skakel om PowerShell in 'n robuuste, skaalbare en veilige afstandbeheerkanaal.
Eerstens is dit belangrik om twee sleutelidees te verstaan: cmdlets met -Rekenaarnaam parameter (bv. Get-Process of Get-Service) is nie die langtermynpad wat deur Microsoft aanbeveel word nie, en PowerShell Remoting werk nie as 'n "haak" nie. Trouens, dwing wedersydse verifikasie af, ouditlogboeke en respekteer jou gewone toestemmings, sonder om geloofsbriewe te stoor of enigiets met superregte magies uit te voer.
Wat is PowerShell Remoting en hoekom dit gebruik word?
met PowerShell Remoting jy kan voer byna enige opdrag op afstand uit wat jy in 'n plaaslike sessie kan begin, van die navraag van dienste tot die ontplooiing van konfigurasies, en dit op honderde rekenaars gelyktydig kan doen. Anders as cmdlets wat -ComputerName aanvaar (baie gebruik DCOM/RPC), is Remoting reis via WS-Man (HTTP/HTTPS), wat meer firewall-vriendelik is, laat parallelisme toe en verplaas werk na die afgeleë gasheer, nie die kliënt nie.
Dit vertaal in drie praktiese voordele: beter prestasie in massiewe uitvoerings, minder wrywing in netwerke met beperkende reëls en 'n sekuriteitsmodel wat ooreenstem met Kerberos/HTTPS. Verder, deur nie op elke cmdlet staat te maak om sy eie afstandbeheer te implementeer nie, Remoting Dit werk vir enige draaiboek of rol wat by die bestemming beskikbaar is.
Standaard word afstandbeheer geaktiveer op onlangse Windows-bedieners; in Windows 10/11 jy aktiveer dit met 'n enkele cmdlet. En ja, jy kan alternatiewe geloofsbriewe, volgehoue sessies, persoonlike eindpunte en meer gebruik.
Let wel: Afstandbeheer is nie sinoniem met die oopmaak van alles nie. Standaard, slegs administrateurs Hulle kan koppel, en aksies word onder hul identiteit uitgevoer. As jy fynkorrelige delegering benodig, laat persoonlike eindpunte jou toe om slegs die noodsaaklike bevele bloot te stel.

Hoe dit binne werk: WinRM, WS-Man en poorte
PowerShell Remoting werk in 'n kliënt-bediener-model. Die kliënt stuur WS-Management-versoeke via HTTP (5985/TCP) of HTTPS (5986/TCP)Op die teiken luister die Windows Remote Management (WinRM) diens, los die eindpunt op (sessiekonfigurasie) en huisves die PowerShell-sessie in die agtergrond (wsmprovhost.exe-proses), gee geserialiseerde resultate terug aan die kliënt in XML via SOAP.
Die eerste keer wat jy Remoting aktiveer, word luisteraars gekonfigureer, die toepaslike firewall-uitsondering word oopgemaak en sessiekonfigurasies word geskep. Vanaf PowerShell 6+ bestaan verskeie uitgawes saam, en In staat te stel-PSRemoting Registreer eindpunte met name wat die weergawe weerspieël (byvoorbeeld PowerShell.7 en PowerShell.7.xy).
As jy slegs HTTPS in jou omgewing toelaat, kan jy 'n veilige luisteraar met 'n sertifikaat uitgereik deur 'n vertroude CA (aanbeveel). Alternatiewelik is 'n ander alternatief om TrustedHosts op 'n beperkte, risikobewuste wyse te gebruik vir werkgroepscenario's of nie-domeinrekenaars.
Let daarop dat Powershell Remoting kan saambestaan met cmdlets met -ComputerName, maar Microsoft bevorder WS-Man as die standaard en toekomsbestande manier vir afstandadministrasie.
Aktiveer PowerShell Remoting en nuttige parameters
Op Windows, maak PowerShell net as administrateur oop en voer uit In staat te stel-PSRemotingDie stelsel begin WinRM, konfigureer outobegin, aktiveer die luisteraar en skep die toepaslike brandmuurreëls. Op kliënte met 'n publieke netwerkprofiel kan jy dit doelbewus toelaat met -SlaanNetwerkProfielKontrole Oor (en versterk dan met spesifieke reëls):
Enable-PSRemoting
Enable-PSRemoting -Force
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Die sintaksis laat ook toe, - Bevestig y -Wat as vir veranderingsbeheer. Onthou: Dit is slegs beskikbaar op Windows, en jy moet die verhoogde konsole laat loop. Die reëls wat geskep word, verskil tussen Bediener- en Kliënt-uitgawes, veral op openbare netwerke, waar hulle standaard beperk is tot die plaaslike subnet, tensy jy die omvang uitbrei (byvoorbeeld met Set-NetFirewallRule).
Om reeds opgeneemde sessiekonfigurasies te lys en te bevestig dat alles gereed is, gebruik Kry-PSSessionConfigurationAs die PowerShell.x- en Workflow-eindpunte verskyn, is die Remoting-raamwerk operasioneel.

Gebruiksmodusse: 1 tot 1, 1 tot baie, en aanhoudende sessies
Wanneer jy 'n interaktiewe konsole op 'n enkele rekenaar benodig, wend jou tot Tik-PSSessionDie aanwysingsboodskap sal verskyn, en alles wat jy uitvoer, sal na die afgeleë gasheer gaan. Jy kan geloofsbriewe met Get-Credential hergebruik om te verhoed dat jy dit voortdurend weer moet invoer:
$cred = Get-Credential
Enter-PSSession -ComputerName dc01 -Credential $cred
Exit-PSSession
As jy opdragte na verskeie rekenaars gelyktydig wil stuur, is die instrument Roep-Command met 'n skripblok. Standaard begin dit tot 32 gelyktydige verbindings (aanpasbaar met -ThrottleLimit). Die resultate word teruggegee as gedeserialiseerde voorwerpe (sonder "lewendige" metodes):
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service -Name W32Time } -Credential $cred
Moet jy 'n metode soos .Stop() of .Start() aanroep? Doen dit. binne die skripblok in die afgeleë konteks, nie die plaaslike gedeserialiseerde voorwerp nie, en dis dit. As daar 'n ekwivalente cmdlet (Stop-Service/Start-Service) is, is dit gewoonlik verkieslik om dit vir duidelikheid te gebruik.
Om die koste van die begin en einde van sessies op elke oproep te vermy, skep 'n Aanhoudende PSSessie en hergebruik dit oor verskeie aanroepings. Gebruik New-PSSession om die verbinding te skep, en gebruik Invoke-Command-Session om die tonnel te hergebruik. Moenie vergeet om dit met Remove-PSSession te sluit wanneer jy klaar is nie.
Serialisering, beperkings en goeie praktyke
'n Belangrike detail: wanneer jy reis, "+plat" voorwerpe en arriveer as gedeserialiseerde kiekies, met eienskappe maar geen metodes nie. Dit is doelbewus en bespaar bandwydte, maar dit beteken dat jy nie lede kan gebruik wat logika (soos .Kill()) op die plaaslike kopie uitvoer nie. Die oplossing is voor die hand liggend: roep daardie metodes aan. afstand en as jy slegs sekere velde benodig, filter met Select-Object om minder data te stuur.
In skripte, vermy Enter-PSSession (bedoel vir interaktiewe gebruik) en gebruik Invoke-Command met skriptblokke. Indien jy veelvuldige oproepe verwag of die status (veranderlikes, ingevoerde modules) moet behou, gebruik aanhoudende sessies en, indien van toepassing, ontkoppel/herkoppel hulle met Disconnect-PSSession/Connect-PSSession in PowerShell 3.0+.
Verifikasie, HTTPS en scenario's buite die domein
In 'n domein is inheemse verifikasie Kerberos En alles vloei. Wanneer die toestel nie die bedienernaam kan verifieer nie, of jy koppel aan 'n CNAME IP of alias, benodig jy een van hierdie twee opsies: 1) Luisteraar HTTPS met sertifikaat uitgereik deur 'n CA wat jy vertrou, of 2) voeg die bestemming (naam of IP) by TrustedHosts en gebruik geloofsbrieweDie tweede opsie deaktiveer wedersydse verifikasie vir daardie gasheer, dus verminder dit die omvang tot die minimum wat nodig is.
Die opstel van 'n HTTPS-luisteraar vereis 'n sertifikaat (ideaal van jou PKI of 'n publieke CA), geïnstalleer in die spanstoor en gekoppel aan WinRM. Poort 5986/TCP word dan in die firewall oopgemaak en, vanaf die kliënt, gebruik. -Gebruik SSL in afgeleë cmdlets. Vir kliëntsertifikaatverifikasie kan jy 'n sertifikaat aan 'n plaaslike rekening koppel en koppel met -SertifikaatDuimafdruk (Enter-PSSession aanvaar dit nie direk nie; skep eers die sessie met New-PSSession.)
Die tweede hop en delegering van geloofsbriewe
Die bekende "dubbele hop" verskyn wanneer jy, nadat jy aan 'n bediener gekoppel is, daardie bediener nodig het om toegang te verkry tot 'n derde hulpbron namens jou (bv. 'n SMB-deel). Daar is twee benaderings om dit toe te laat: CredSSP en hulpbrongebaseerde beperkte Kerberos-delegering.
met CredSSP Jy stel die kliënt en tussenganger in staat om geloofsbriewe eksplisiet te delegeer, en jy stel 'n beleid (GPO) om delegering na spesifieke rekenaars toe te laat. Dit is vinnig om te konfigureer, maar minder veilig omdat die geloofsbriewe in duidelike teks binne die geïnkripteerde tonnel beweeg. Beperk altyd bronne en bestemmings.
Die voorkeuralternatief in domein is die beperkte Kerberos-delegering (hulpbrongebaseerde beperkte delegering) in moderne AD. Dit laat die eindpunt toe om staat te maak op die ontvangs van delegering vanaf die middelpunt vir spesifieke dienste, wat vermy dat jou identiteit tydens die aanvanklike verbinding blootgestel word. Vereis onlangse domeinbeheerders en 'n opgedateerde RSAT.
Pasgemaakte eindpunte (sessiekonfigurasies)
Een van die juwele van Remoting is die vermoë om verbindingspunte te registreer met aangepaste vermoëns en limieteEers genereer jy 'n lêer met New-PSSessionConfigurationFile (modules om vooraf te laai, sigbare funksies, aliasse, ExecutionPolicy, LanguageMode, ens.), en dan registreer jy dit met Register-PSSessionConfiguration, waar jy kan instel BeginAsGeloofsbrief en toestemmings (SDDL of GUI-koppelvlak met -ShowSecurityDescriptorUI).
Vir veilige delegering, stel slegs bloot wat nodig is met -VisibleCmdlets/-VisibleFunctions en deaktiveer vrye skripsie indien toepaslik met Taalmodus Beperkte Taal of GeenTaal. As jy VolleTaal verlaat, kan iemand 'n skripblok gebruik om onopenbare bevele aan te roep, wat, gekombineer met RunAs, dit sou 'n gat weesOntwerp hierdie eindpunte met 'n fynkam en dokumenteer hul omvang.
Domeine, GPO's en Groepware
In AD kan jy Powershell Remoting op skaal met GPO ontplooi: laat outomatiese konfigurasie van WinRM-luisteraars toe, stel die diens op Outomaties, en skep die brandmuur-uitsondering. Onthou dat GPO's instellings verander, maar hulle skakel nie altyd die diens onmiddellik aan nie; soms moet jy herbegin of 'n gpupdate afdwing.
In werkgroepe (nie-domein), konfigureer Afstandbeheer met In staat te stel-PSRemoting, stel TrustedHosts op die kliënt (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) en gebruik plaaslike geloofsbriewe. Vir HTTPS kan jy selfgetekende sertifikate koppel, alhoewel dit aanbeveel word om 'n vertroude CA te gebruik en bevestig die naam wat jy in -Rekenaarnaam in die sertifikaat sal gebruik (CN/SAN-ooreenstemming).
Sleutel-cmdlets en sintaksis
'n Handjievol kommando's dek die 90% van daaglikse scenario'sOm te aktiveer/deaktiveer:
Enable-PSRemoting
Disable-PSRemoting
Interaktiewe sessie 1 tot 1 en uitgang:
Enter-PSSession -ComputerName SEC504STUDENT
Exit-PSSession
1 tot baie, met parallelisme en geloofsbriewe:
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service W32Time } -Credential $cred
Aanhoudende sessies en hergebruik:
$s = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7
Invoke-Command -Session $s -ScriptBlock { $PSVersionTable }
Remove-PSSession $s
Toetsing en WinRM Nuttig:
Test-WSMan -ComputerName host
winrm get winrm/config
winrm enumerate winrm/config/listener
winrm quickconfig -transport:https
Praktiese notas oor firewall, netwerk en poorte
Maak 5985/TCP vir HTTP en 5986/TCP vir HTTPS oop op die teikenrekenaar en op enige intermediêre firewallOp Windows-kliënte skep Enable-PSRemoting reëls vir domein- en privaatprofiele; vir publieke profiele is dit beperk tot die plaaslike subnet, tensy jy die omvang verander met Set-NetFirewallRule -RemoteAddress Any (’n waarde wat jy kan bepaal op grond van jou risiko).
As jy SOAR/SIEM-integrasies gebruik wat afstandbevele uitvoer (bv. vanaf XSOAR), maak seker dat die bediener het DNS-resolusie aan die gashere, konnektiwiteit na 5985/5986, en geloofsbriewe met voldoende plaaslike toestemmings. In sommige gevalle mag NTLM/Basiese verifikasie aanpassing vereis (bv. die gebruik van 'n plaaslike gebruiker in Basies met SSL).
Aktiveer-PSRemoting Parameters (Operasionele Opsomming)
-Bevestig vra vir bevestiging voor uitvoering; -Forseer ignoreer die waarskuwings en maak die nodige veranderinge; -SkipNetworkProfileCheck aktiveer Afstandbeheer op openbare kliëntnetwerke (standaard beperk tot die plaaslike subnet); -WhatIf wys jou wat sou gebeur sonder om veranderinge toe te pas. Daarbenewens, soos enige standaard cmdlet, ondersteun dit algemene parameters (-Verbose, -Foutaksie, ens.).
Onthou dat "Aktiveer" nie HTTPS-luisteraars of -sertifikate vir jou skep nie; as jy van die begin af end-tot-end-enkripsie benodig en verifikasie gebaseer op gesertifiseerde, konfigureer die HTTPS-luisteraar en valideer CN/SAN teen die naam wat jy in -ComputerName sal gebruik.
Nuttige WinRM- en PowerShell-afstandsbevele
sommige noodsaaklike beddegoed vir die alledaagse lewe:
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
Wanneer jy Windows op skaal bestuur, laat Remoting jou toe om van "rekenaar-tot-rekenaar" na 'n verklarende en veilige benadering oor te skakel. Deur volgehoue sessies, sterk verifikasie (Kerberos/HTTPS), beperkte eindpunte en duidelike spore vir diagnostiek te kombineer, jy kry spoed en beheer sonder om sekuriteit of ouditering in te boet. As jy ook GPO-aktivering standaardiseer en spesiale gevalle (TrustedHosts, dubbelhop, sertifikate) bemeester, sal jy 'n soliede afstandplatform hê vir daaglikse bedrywighede en voorvalreaksie.
Redakteur spesialiseer in tegnologie en internetkwessies met meer as tien jaar ondervinding in verskillende digitale media. Ek het gewerk as 'n redakteur en inhoudskepper vir e-handel, kommunikasie, aanlyn bemarking en advertensiemaatskappye. Ek het ook op ekonomie, finansies en ander sektore se webwerwe geskryf. My werk is ook my passie. Nou, deur my artikels in Tecnobits, Ek probeer om al die nuus en nuwe geleenthede te verken wat die wêreld van tegnologie ons elke dag bied om ons lewens te verbeter.