- Remoting brûkt WinRM/WS-Man (HTTP/HTTPS) en makket 1-op-1, 1-op-mear en oanhâldende sesjes mei befeiligingskontrôles mooglik.
- Enable-PSRemoting konfigurearret de tsjinst, harkers en firewall; HTTPS fereasket in jildich sertifikaat en CN/SAN-oerienkomst.
- De resultaten wurde deserialisearre weromjûn; metoaden wurde oanroppen binnen it eksterne skriptblok en oanpaste einpunten wurde brûkt foar fynkorrelige delegaasje.
Jo kinne al in protte taken automatisearje mei PowerShell lokaal, mar wêr dogge jo eins? PowerShell Remoting makket it ferskil It is as jo kommando's útfiere op masines op ôfstân, of it no in pear of hûnderten binne, ynteraktyf of parallel. Dizze technology, beskikber sûnt Windows PowerShell 2.0 en ferbettere sûnt 3.0, is basearre op WS-Management (WinRM) en konvertearret PowerShell yn in robuust, skalberber en feilich kanaal foar behear op ôfstân.
Earst fan alles is it wichtich om twa wichtige ideeën te begripen: cmdlets mei -Kompjûternamme parameter (bygelyks Get-Process of Get-Service) binne net it lange-termyn paad oanrikkemandearre troch Microsoft, en PowerShell Remoting wurket net as in "hack". Eins, hanthavenet ûnderlinge autentikaasje, auditlogs en respektearret jo gewoane tagongsrjochten, sûnder ynloggegevens op te slaan of magysk wat mei superprivileezjes út te fieren.
Wat is PowerShell Remoting en wêrom brûke jo it?
mei PowerShell Remoting do kinst hast elk kommando op ôfstân útfiere dat jo yn in lokale sesje starte koene, fan it opfreegjen fan tsjinsten oant it ynsetten fan konfiguraasjes, en dat dwaan op hûnderten kompjûters tagelyk. Oars as cmdlets dy't -ComputerName akseptearje (in protte brûke DCOM/RPC), Remoting reizget fia WS-Man (HTTP/HTTPS), dat firewall-freonliker is, makket parallelisme mooglik en ferpleatst wurk nei de host op ôfstân, net nei de kliïnt.
Dit oerset yn trije praktyske foardielen: bettere prestaasjes yn massale útfieringen, minder wriuwing yn netwurken mei beheinde regels en in feiligensmodel dat oerienkomt mei Kerberos/HTTPS. Fierder, troch net ôfhinklik te wêzen fan elke cmdlet om syn eigen ôfstânsbetsjinning te ymplementearjen, Remoting It wurket foar elk skript of rol dat beskikber is op it bestimmingsplak.
Standert komme resinte Windows-tsjinners mei Remoting ynskeakele; yn Windows 10/11 jo aktivearje it mei ien cmdlet. En ja, jo kinne alternative ynloggegevens, oanhâldende sesjes, oanpaste einpunten en mear brûke.
Opmerking: Op ôfstân wurkje is net synonym foar it iepenjen fan alles. Standert, allinnich behearders Se kinne ferbine, en aksjes wurde útfierd ûnder harren identiteit. As jo fynkorrelige delegaasje nedich binne, kinne jo mei oanpaste einpunten allinich de essensjele kommando's bleatstelle.

Hoe't it binnen wurket: WinRM, WS-Man en poarten
PowerShell Remoting wurket yn in kliïnt-tsjinnermodel. De kliïnt stjoert WS-Management-oanfragen fia HTTP (5985/TCP) of HTTPS (5986/TCP)Op it doel lústeret de Windows Remote Management (WinRM)-tsjinst, lost it einpunt op (sesjekonfiguraasje) en host de PowerShell-sesje op 'e eftergrûn (wsmprovhost.exe-proses), serialisearre resultaten weromjaan oan de kliïnt yn XML fia SOAP.
De earste kear dat jo Remoting ynskeakelje, wurde listeners konfigurearre, wurdt de passende firewall-útsûndering iepene en wurde sesjekonfiguraasjes oanmakke. Fan PowerShell 6+ besteane meardere edysjes neist elkoar, en Selektearje PSRemoting Registrearret einpunten mei nammen dy't de ferzje reflektearje (bygelyks PowerShell.7 en PowerShell.7.xy).
As jo allinich HTTPS tastean yn jo omjouwing, kinne jo in feilige harker mei in sertifikaat útjûn troch in fertroude CA (oanrikkemandearre). As alternatyf is in oar alternatyf om TrustedHosts op in beheinde, risikobewuste manier te brûken, foar wurkgroepscenario's of net-domeinkompjûters.
Tink derom dat Powershell Remoting tegearre kin bestean mei cmdlets mei -ComputerName, mar Microsoft stimulearret WS-Man as de standert en takomstbestindige manier foar behear op ôfstân.
PowerShell Remoting en nuttige parameters ynskeakelje
Iepenje PowerShell gewoan as behearder op Windows en fier it út Selektearje PSRemotingIt systeem start WinRM, konfigurearret automatysk starten, aktivearret de harker en makket de passende firewallregels. Op kliïnten mei in iepenbier netwurkprofyl kinne jo dit bewust tastean mei -Netwurkprofylkontrôle oerslaan (en dan fersterkje mei spesifike regels):
Enable-PSRemoting
Enable-PSRemoting -Force
Enable-PSRemoting -SkipNetworkProfileCheck -Force
De syntaksis lit ek ta, - Befêstigje y - Wat As foar feroaringskontrôle. Tink derom: It is allinnich beskikber op Windows, en jo moatte de ferhege konsole útfiere. De regels dy't makke wurde ferskille tusken Server- en Client-edysjes, foaral op iepenbiere netwurken, wêr't se standert beheind binne ta it lokale subnet, útsein as jo it berik útwreidzje (bygelyks mei Set-NetFirewallRule).
Om al opnommen sesjekonfiguraasjes te listjen en te befestigjen dat alles klear is, brûk Get-PSSessionConfigurationAs de PowerShell.x- en Workflow-eindpunten ferskine, is it Remoting-raamwurk operasjoneel.

Gebrûksmodi: 1 oant 1, 1 oant in protte, en oanhâldende sesjes
As jo in ynteraktive konsole nedich binne op ien kompjûter, gean dan nei Enter-PSSessionDe prompt sil ferskine, en alles wat jo útfiere sil nei de host op ôfstân gean. Jo kinne ynloggegevens opnij brûke mei Get-Credential om te foarkommen dat jo se hieltyd wer ynfiere moatte:
$cred = Get-Credential
Enter-PSSession -ComputerName dc01 -Credential $cred
Exit-PSSession
As jo op syk binne nei it stjoeren fan kommando's nei ferskate kompjûters tagelyk, dan is de ark dat Befêstigje-kommando mei in skriptblok. Standert lansearret it maksimaal 32 tagelyk ferbiningen (oanpasber mei -ThrottleLimit). De resultaten wurde weromjûn as deserialisearre objekten (sûnder "live" metoaden):
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service -Name W32Time } -Credential $cred
Moatte jo in metoade lykas .Stop() of .Start() oanroppe? Doch it. binnen it skriptblok yn 'e eksterne kontekst, net it lokale deserialisearre objekt, en dat is it. As der in lykweardige cmdlet is (Stop-Service/Start-Service), is it meastentiids de foarkar om dy te brûken foar dúdlikens.
Om de kosten fan it begjinnen en einigjen fan sesjes by elke oprop te foarkommen, meitsje in Oanhâldende PSSesje en brûk it opnij oer meardere oanroppen. Brûk New-PSSession om de ferbining te meitsjen, en brûk Invoke-Command-Session om de tunnel opnij te brûken. Ferjit net om it te sluten mei Remove-PSSession as jo klear binne.
Serialisearring, limiten en goede praktiken
In wichtich detail: by it reizgjen "+flat" objekten en komme se oan as deserialisearre snapshots, mei eigenskippen mar gjin metoaden. Dit is mei opsetsin en besparret bânbreedte, mar it betsjut dat jo gjin leden brûke kinne dy't logika útfiere (lykas .Kill()) op 'e lokale kopy. De oplossing is fanselssprekkend: rop dy metoaden op. op ôfstân en as jo allinich bepaalde fjilden nedich binne, filterje dan mei Select-Object om minder gegevens te ferstjoeren.
Yn skripts, foarkom Enter-PSSession (bedoeld foar ynteraktyf gebrûk) en brûk Invoke-Command mei skriptblokken. As jo meardere oanroppen ferwachtsje of de steat moatte behâlde (fariabelen, ymportearre modules), brûk oanhâldende sesjes en, as fan tapassing, ferbine se los/wer mei Disconnect-PSSession/Connect-PSSession yn PowerShell 3.0+.
Autentikaasje, HTTPS, en Off-Domain Senario's
Yn in domein is native autentikaasje Kerberos En alles streamt. As it apparaat de servernamme net ferifiearje kin, of jo ferbine mei in CNAME IP of alias, hawwe jo ien fan dizze twa opsjes nedich: 1) Listener HTTPS mei sertifikaat útjûn troch in CA dy't jo fertrouwe, of 2) foegje de bestimming (namme of IP) ta oan TrustedHosts en brûk ynloggegevensDe twadde opsje útskeakelt ûnderlinge autentikaasje foar dy host, sadat it de omfang werombringt ta it minimum dat nedich is.
It ynstellen fan in HTTPS-listener fereasket in sertifikaat (ideaal fan jo PKI of in iepenbiere CA), ynstalleare yn 'e teamwinkel en keppele oan WinRM. Poarte 5986/TCP wurdt dan iepene yn 'e firewall en, fan 'e kliïnt, brûkt. -Brûk SSL yn eksterne cmdlets. Foar autentikaasje fan kliïntsertifikaten kinne jo in sertifikaat oan in lokaal akkount tawize en ferbine mei -SertifikaatTumfprint (Enter-PSSession akseptearret dit net direkt; meitsje de sesje earst oan mei New-PSSession.)
De twadde hop en delegaasje fan ynloggegevens
De ferneamde "dûbele hop" ferskynt as jo, nei it ferbinen mei in server, dy server nedich hawwe om tagong te krijen ta in tredde boarne namens jo (bygelyks in SMB-share). Der binne twa oanpakken om dit mooglik te meitsjen: CredSSP en beheinde Kerberos-delegaasje basearre op boarnen.
mei CredSSP Jo stelle de kliïnt en tuskenpersoan yn steat om ynloggegevens eksplisyt te delegearjen, en jo stelle in belied (GPO) yn om delegaasje nei spesifike kompjûters ta te stean. It is fluch te konfigurearjen, mar minder feilich, om't de ynloggegevens yn dúdlike tekst binnen de fersifere tunnel reizgje. Beheine altyd boarnen en bestimmingen.
It foarkommende alternatyf yn domein is de beheinde Kerberos-delegaasje (boarne-basearre beheinde delegaasje) yn moderne AD. Dit makket it mooglik foar it einpunt om te fertrouwen op it ûntfangen fan delegaasje fan it middelpunt foar spesifike tsjinsten, wêrtroch jo identiteit by de earste ferbining net bleatsteld wurdt. Fereasket resinte domeincontrollers en in bywurke RSAT.
Oanpaste einpunten (sesjekonfiguraasjes)
Ien fan 'e juwielen fan Remoting is it registrearjen fan ferbiningspunten mei oanpaste mooglikheden en limitenEarst generearje jo in bestân mei New-PSSessionConfigurationFile (modules om foar te laden, sichtbere funksjes, aliassen, ExecutionPolicy, LanguageMode, ensfh.), en dan registrearje jo it mei Register-PSSessionConfiguration, wêr't jo ynstelle kinne RunAsCredential en tagongsrjochten (SDDL- of GUI-ynterface mei -ShowSecurityDescriptorUI).
Foar feilige delegaasje, bleatstelle allinich wat nedich is mei -VisibleCmdlets/-VisibleFunctions en útskeakelje frije skripting as it passend is mei Taalmodus Beheinde taal of Gjin Taal. As jo Folsleine Taal ferlitte, kin immen in skriptblok brûke om net-eksponearre kommando's op te roppen, dy't, yn kombinaasje mei RunAs, it soe in gat wêzeUntwerp dizze einpunten mei in fynkam en dokumintearje har omfang.
Domeinen, GPO's en Groupware
Yn AD kinne jo Powershell Remoting op skaal ynsette mei GPO: automatyske konfiguraasje fan WinRM-listeners tastean, set de tsjinst op Automatysk, en meitsje de firewall-útsûndering. Tink derom dat GPO's ynstellings feroarje, mar se skeakelje de tsjinst net altyd direkt yn; soms moatte jo opnij starte of in gpupdate forsearje.
Yn wurkgroepen (net-domein), konfigurearje Remoting mei Selektearje PSRemoting, stel TrustedHosts yn op 'e kliïnt (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) en brûk lokale ynloggegevens. Foar HTTPS kinne jo selsûndertekene sertifikaten oanmeitsje, hoewol it oan te rieden is om in fertroude CA te brûken en validearje de namme dat jo brûke sille yn -ComputerName yn it sertifikaat (CN/SAN-oerienkomst).
Wichtige cmdlets en syntaksis
In hantsjefol kommando's dekke de 90% fan deistige senario'sOm te aktivearjen/deaktivearjen:
Enable-PSRemoting
Disable-PSRemoting
Ynteraktive sesje 1 nei 1 en útgong:
Enter-PSSession -ComputerName SEC504STUDENT
Exit-PSSession
1 oant in protte, mei parallelisme en kwalifikaasjes:
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service W32Time } -Credential $cred
Oanhâldende sesjes en werbrûke:
$s = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7
Invoke-Command -Session $s -ScriptBlock { $PSVersionTable }
Remove-PSSession $s
Testen en WinRM Brûkber:
Test-WSMan -ComputerName host
winrm get winrm/config
winrm enumerate winrm/config/listener
winrm quickconfig -transport:https
Praktyske notysjes oer firewall, netwurk en poarten
Iepenje 5985/TCP foar HTTP en 5986/TCP foar HTTPS op 'e doelkompjûter en op elke tuskenlizzende firewallOp Windows-kliïnten makket Enable-PSRemoting regels foar domein- en priveeprofilen; foar iepenbiere profilen is it beheind ta it lokale subnet, útsein as jo it berik oanpasse mei Set-NetFirewallRule -RemoteAddress Any (in wearde dy't jo kinne beoardielje op basis fan jo risiko).
As jo SOAR/SIEM-yntegraasjes brûke dy't kommando's op ôfstân útfiere (bygelyks fan XSOAR), soargje derfoar dat de server hat DNS-resolúsje nei de hosts, ferbining mei 5985/5986, en ynloggegevens mei foldwaande lokale tagongsrjochten. Yn guon gefallen kin NTLM/Basic-autentikaasje oanpassing fereaskje (bygelyks, it brûken fan in lokale brûker yn Basic mei SSL).
Parameters foar PSRemoting ynskeakelje (Operasjonele gearfetting)
-Befêstigje freget om befêstiging foardat útfierd wurdt; -Forsearje negeart de warskôgings en meitsje de nedige feroarings; -SkipNetworkProfileCheck aktivearret Remoting op iepenbiere kliïntnetwurken (standert beheind ta it lokale subnet); -WhatIf lit jo sjen wat der barre soe sûnder feroarings ta te passen. Derneist, lykas elke standert cmdlet, stipet it mienskiplike parameters (-Útwreide taal, -Foutaksje, ensfh.).
Tink derom dat "Ynskeakelje" gjin HTTPS-listeners of sertifikaten foar jo oanmakket; as jo fanôf it begjin end-to-end fersifering nedich binne en autentikaasje basearre op sertifikaten, konfigurearje de HTTPS-listener en falidearje CN/SAN tsjin de namme dy't jo brûke sille yn -ComputerName.
Nuttige WinRM- en PowerShell-op ôfstânsbetsjinningskommando's
Guon essensjele items foar it bêd foar it deistich libben:
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
By it behearen fan Windows op skaal, kinne jo mei Remoting oerskeakelje fan "kompjûter-nei-kompjûter" nei in ferklearjende en feilige oanpak. Troch it kombinearjen fan oanhâldende sesjes, sterke autentikaasje (Kerberos/HTTPS), beheinde einpunten en dúdlike spoaren foar diagnostyk, jo krije snelheid en kontrôle sûnder feiligens of kontrôle op te offerjen. As jo ek GPO-aktivaasje standardisearje en spesjale gefallen behearskje (TrustedHosts, dûbele hop, sertifikaten), sille jo in solide platfoarm op ôfstân hawwe foar deistige operaasjes en ynsidintreaksje.
Redakteur spesjalisearre yn technology en ynternetproblemen mei mear as tsien jier ûnderfining yn ferskate digitale media. Ik haw wurke as redakteur en ynhâldmakker foar e-commerce, kommunikaasje, online marketing en reklamebedriuwen. Ik haw ek skreaun op ekonomy, finânsjes en oare sektoaren websiden. Myn wurk is ek myn passy. No, troch myn artikels yn Tecnobits, Ik besykje alle nijs en nije kânsen te ferkennen dy't de wrâld fan technology ús elke dei biedt om ús libben te ferbetterjen.