Hoe om jou rekenaar vanaf jou selfoon te beheer met behulp van PowerShell Remoting

Laaste opdatering: 15/10/2025

  • 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.
PowerShell-afstandbeheer

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.

PowerShell-afstandsargitektuur

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).

Eksklusiewe inhoud - Klik hier  Wêreldwye waarskuwing vir 'n kritieke kwesbaarheid in Google Chrome: wat jy moet weet en hoe om jouself te beskerm

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.

Afstandsessie met PowerShell

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.

Eksklusiewe inhoud - Klik hier  Hoe om skade aan jou lêers te voorkom?

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.

Eksklusiewe inhoud - Klik hier  Hoe om Norton Mobile Security te gebruik?

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.

onsigbare wanware
Verwante artikel:
Hoe om jou rekenaar te beskerm teen onsigbare wanware soos XWorm en NotDoor