- Fjarstýring notar WinRM/WS-Man (HTTP/HTTPS) og gerir kleift að hafa 1-á-1, 1-á-marga og varanlegar lotur með öryggisstýringum.
- „Enable-PSRemoting“ stillir þjónustuna, hlustendur og eldvegg; HTTPS krefst gilts vottorðs og samsvörunar milli CN og SAN.
- Niðurstöðurnar eru skilað afraðaðri; aðferðir eru kallaðar fram innan fjarlægs handritsblokkar og sérsniðnir endapunktar eru notaðir fyrir fínkornaða úthlutun.
Þú gætir nú þegar sjálfvirknivætt mörg verkefni með PowerShell á staðnum, en hvar gerirðu það í raun og veru? PowerShell fjarstýring skiptir máli Það er þegar þú keyrir skipanir á fjarstýrðum vélum, hvort sem þær eru nokkrar eða hundruðir, gagnvirkt eða samhliða. Þessi tækni, sem hefur verið fáanleg frá Windows PowerShell 2.0 og hefur verið endurbætt frá 3.0, byggir á WS-Management (WinRM) og breytir... PowerShell í öflugri, stigstærðanlegri og öruggri fjarstjórnunarrás.
Fyrst af öllu er mikilvægt að skilja tvær lykilhugmyndir: cmdlets með -Tölvunafn breytu (t.d. Get-Process eða Get-Service) eru ekki langtímaleiðin sem Microsoft mælir með, og PowerShell Remoting virkar ekki sem „hakk“. Reyndar, framfylgir gagnkvæmri auðkenningu, endurskoðar skrár og virðir venjuleg leyfi þín, án þess að geyma innskráningarupplýsingar eða keyra neitt með töfrum með ofurréttindum.
Hvað er PowerShell Remoting og hvers vegna er það notað?
með PowerShell fjarstýring þú getur framkvæma nánast hvaða skipun sem er fjarlægt sem þú gætir ræst í staðbundinni lotu, allt frá því að senda fyrirspurnir um þjónustu til að dreifa stillingum, og gert það á hundruðum tölva í einu. Ólíkt cmdlet-um sem samþykkja -ComputerName (margar nota DCOM/RPC), Remoting ferðast með WS-Man (HTTP/HTTPS), sem er eldveggsvænna, gerir kleift að hafa samsíða tengingu og flytja vinnu yfir á fjarstýrðan hýsil, ekki biðlarann.
Þetta þýðir þrjá hagnýta kosti: betri afköst í stórum framkvæmdum, minni núningur í netkerfum með takmarkandi reglum og öryggislíkani sem er í samræmi við Kerberos/HTTPS. Ennfremur, með því að vera ekki háður hverjum cmdlet til að útfæra sína eigin fjarstýringu, Fjarstýring Þetta virkar fyrir hvaða handrit eða hlutverk sem er sem er í boði á áfangastaðnum.
Sjálfgefið er að nýrri Windows netþjónar séu með fjarstýringu virka; í Windows 10/11 þú virkjar það með einni cmdlet. Og já, þú getur notað aðrar innskráningarupplýsingar, varanlegar lotur, sérsniðnar endapunkta og fleira.
Athugið: Fjarstýring er ekki samheiti við að opna allt. Sjálfgefið er, aðeins stjórnendur Þau geta tengst og aðgerðir eru framkvæmdar undir þeirra auðkenni. Ef þú þarft nákvæma úthlutun leyfa sérsniðnir endapunktar þér að birta aðeins nauðsynlegustu skipanirnar.

Hvernig það virkar inni í því: WinRM, WS-Man og tengi
PowerShell Remoting virkar í biðlara-þjóns líkani. Biðlarinn sendir WS-Management beiðnir í gegnum HTTP (5985/TCP) eða HTTPS (5986/TCP)Á markinu hlustar Windows Remote Management (WinRM) þjónustan, leysir upp endapunktinn (lotustillingar) og hýsir PowerShell lotuna í bakgrunni (wsmprovhost.exe ferlið), skila raðgreindum niðurstöðum til viðskiptavinarins í XML í gegnum SOAP.
Í fyrsta skipti sem þú virkjar fjarstýringu eru hlustendur stilltir, viðeigandi eldveggsundantekning opnuð og lotustillingar búnar til. Frá PowerShell 6+ geta margar útgáfur verið til samtímis og Virkja-PSRemoting Skráir endapunkta með nöfnum sem endurspegla útgáfuna (til dæmis PowerShell.7 og PowerShell.7.xy).
Ef þú leyfir aðeins HTTPS í umhverfi þínu geturðu búið til öruggur hlustandi með vottorði gefið út af traustu vottunaraðila (mælt með). Annar valkostur er að nota TrustedHosts á takmarkaðan, áhættumeðvitaðan hátt, fyrir vinnuhópa eða tölvur utan léns.
Athugið að Powershell Remoting getur verið til samhliða cmdlets með -ComputerName, en Microsoft ýtir undir WS-Man sem staðlaða og framtíðarvæna leið til fjarstjórnunar.
Virkjun PowerShell fjarstýringar og gagnlegra færibreyta
Í Windows skaltu bara opna PowerShell sem stjórnandi og keyra Virkja-PSRemotingKerfið ræsir WinRM, stillir sjálfvirka ræsingu, virkjar hlustarann og býr til viðeigandi eldveggsreglur. Á viðskiptavinum með opinbert netsnið er hægt að leyfa þetta vísvitandi með... -Sleppa netprófílathugun (og síðan styrkja með sérstökum reglum):
Enable-PSRemoting
Enable-PSRemoting -Force
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Setningafræðin leyfir einnig, -Staðfesta y -Hvað ef til að stjórna breytingum. Mundu: Það er aðeins í boði á Windows, og þú verður að keyra upphækkaða stjórnborðið. Reglurnar sem eru búnar til eru mismunandi eftir Server- og Client-útgáfum, sérstaklega á opinberum netum, þar sem þær eru sjálfgefið takmarkaðar við staðbundið undirnet nema þú útvíkkar umfangið (til dæmis með Set-NetFirewallRule).
Til að lista upp þegar skráðar lotustillingar og staðfesta að allt sé tilbúið, notaðu Get-PSSessionConfigurationEf PowerShell.x og Workflow endapunktarnir birtast, þá er Remoting ramminn virkur.

Notkunarstillingar: 1 á móti 1, 1 á móti mörgum og viðvarandi lotur
Þegar þú þarft gagnvirka leikjatölvu á einni tölvu skaltu leita til Sláðu inn PSSessionFyrirspurnin birtist og allt sem þú keyrir fer til fjarstýringarinnar. Þú getur endurnýtt innskráningarupplýsingar með Get-Credential til að forðast að þurfa að slá þær inn aftur og aftur:
$cred = Get-Credential
Enter-PSSession -ComputerName dc01 -Credential $cred
Exit-PSSession
Ef þú vilt senda skipanir til nokkurra tölva í einu, þá er tólið það Invoke-Command með scriptblokk. Sjálfgefið er að það ræsi allt að 32 samtímis tengingar (hægt að stilla með -ThrottleLimit). Niðurstöðurnar eru skilaðar sem afraðaðir hlutir (án „lifandi“ aðferða):
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service -Name W32Time } -Credential $cred
Þarftu að kalla fram aðferð eins og .Stop() eða .Start()? Gerðu það. inni í handritsblokkinni í fjartengdu samhengi, ekki í staðbundnum afraðaðri hlut, og þar með er það búið. Ef það er til samsvarandi cmdlet (Stop-Service/Start-Service) er yfirleitt betra að nota það til glöggvunar.
Til að forðast kostnað við að hefja og ljúka fundum í hverju símtali skaltu búa til Varanleg PSSession og endurnýttu það í mörgum köllum. Notaðu New-PSSession til að búa til tenginguna og notaðu Invoke-Command-Session til að endurnýta göngin. Ekki gleyma að loka henni með Remove-PSSession þegar þú ert búinn.
Raðgreining, takmörk og góðar starfsvenjur
Mikilvæg smáatriði: þegar ferðast er „fletjast“ hlutir út og koma sem afraðaðar skyndimyndir, með eiginleikum en engum aðferðum. Þetta er vísvitandi og sparar bandvídd, en það þýðir að þú getur ekki notað meðlimi sem framkvæma rökfræði (eins og .Kill()) á staðbundnu eintakinu. Lausnin er augljós: að kalla fram þessar aðferðir. lítillega og ef þú þarft aðeins ákveðna reiti, síaðu með Select-Object til að senda minni gögn.
Í forskriftum skal forðast Enter-PSSession (ætlað til gagnvirkrar notkunar) og nota Invoke-Command með forskriftarblokkum. Ef þú býst við mörgum köllum eða þarft að varðveita stöðu (breytur, innfluttar einingar), nota viðvarandi lotur og, ef við á, aftengja/tengja þau aftur með Disconnect-PSSession/Connect-PSSession í PowerShell 3.0+.
Auðkenning, HTTPS og aðstæður utan léns
Í léni er innfædd auðkenning Kerberos Og allt rennur. Þegar tækið getur ekki staðfest nafn netþjónsins, eða þú tengist við CNAME IP eða dulnefni, þarftu einn af þessum tveimur valkostum: 1) Hlustandi HTTPS með vottorði gefið út af CA sem þú treystir, eða 2) bæta áfangastaðnum (nafni eða IP-tölu) við TrustedHosts og nota skilríkiSeinni valkosturinn gerir gagnkvæma auðkenningu óvirka fyrir þann hýsil, þannig að hann dregur úr umfanginu í lágmark.
Til að setja upp HTTPS-hlustanda þarf vottorð (helst frá PKI-kerfinu þínu eða opinberri vottunarstöð), sem er sett upp í teymisgeymslunni og tengt við WinRM. Tengi 5986/TCP er síðan opnað í eldveggnum og notað frá viðskiptavininum. -Nota SSL í fjarlægum cmdlet-um. Til að auðkenna skírteini viðskiptavinar er hægt að tengja skírteini við staðbundinn reikning og tengjast við -Vottorðsþumalfingurs (Enter-PSSession tekur ekki við þessu beint; búðu fyrst til lotuna með New-PSSession.)
Annað hopp og úthlutun skilríkja
Hið fræga „tvöfalt hopp“ birtist þegar þú, eftir að hafa tengst við netþjón, þarft að sá netþjónn fái aðgang að þriðja úrræðið fyrir þína hönd (t.d. SMB-deilingu). Það eru tvær leiðir til að leyfa þetta: CredSSP og auðlindabundin takmörkuð Kerberos-umboð.
með CredSSP Þú gerir viðskiptavininum og milliliðnum kleift að úthluta skilríkjum með beinum hætti og þú stillir stefnu (GPO) til að leyfa úthlutun til ákveðinna tölva. Það er fljótlegt að stilla það en óöruggara þar sem innskráningarupplýsingarnar berast í óskýrum texta innan dulkóðaða göngsins. Taktu alltaf takmarkanir á uppruna og áfangastöðum.
Æskilegur valkostur í léni er takmarkað Kerberos-umboð (auðlindabundin takmörkuð úthlutun) í nútíma AD. Þetta gerir endapunktinum kleift að reiða sig á að taka við úthlutun frá miðpunktinum fyrir tilteknar þjónustur, og forðast að afhjúpa auðkenni þitt við upphaflega tengingu. Krefst nýlegra lénsstjóra og uppfærðs RSAT.
Sérsniðnir endapunktar (lotustillingar)
Einn af gimsteinum Remoting er að geta skráð tengipunkta með sérsniðnar aðgerðir og takmarkanirFyrst býrðu til skrá með New-PSSessionConfigurationFile (einingar til að forhlaða, sýnileg föll, dulnefni, ExecutionPolicy, LanguageMode, o.s.frv.) og síðan skráirðu hana með Register-PSSessionConfiguration, þar sem þú getur stillt Keyra sem skilríki og heimildir (SDDL eða GUI viðmót með -ShowSecurityDescriptorUI).
Til að tryggja örugga úthlutun skal aðeins birta það sem nauðsynlegt er með -VisibleCmdlets/-VisibleFunctions og slökkva á frjálsum forskriftum ef við á með TungumálTakmarkað tungumál eða Ekkert tungumál. Ef þú sleppir FullLanguage gæti einhver notað handritsblokk til að kalla fram ósýndar skipanir, sem, ásamt RunAs, það væri gatHönnið þessa endapunkta vandlega og skráið umfang þeirra.
Lén, GPO og hóphugbúnaður
Í AD er hægt að dreifa Powershell Remoting í stórum stíl með GPO: leyfa sjálfvirka stillingu WinRM hlustenda, stilla þjónustuna á Sjálfvirktog búa til undantekninguna fyrir eldvegginn. Mundu að GPO breyta stillingum, en þau virkja ekki alltaf þjónustuna samstundis; stundum þarftu að endurræsa eða þvinga fram gpupdate.
Í vinnuhópum (ekki léni), stilltu fjarstýringu með Virkja-PSRemoting, stilltu TrustedHosts á biðlaranum (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) og notaðu staðbundnar innskráningarupplýsingar. Fyrir HTTPS er hægt að tengja sjálfritað vottorð, þó er mælt með því að nota traust vottorðskerfi og staðfesta nafnið sem þú munt nota í -ComputerName í skírteininu (CN/SAN samsvörun).
Lykil cmdlets og setningafræði
Handfylli af hersveitum gæta 90% af daglegum atburðarásumTil að virkja/slökkva á:
Enable-PSRemoting
Disable-PSRemoting
Gagnvirkur fundur 1 á móti 1 og útgönguleið:
Enter-PSSession -ComputerName SEC504STUDENT
Exit-PSSession
1 til margra, með samsvörun og heimildum:
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service W32Time } -Credential $cred
Viðvarandi lotur og endurnýta:
$s = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7
Invoke-Command -Session $s -ScriptBlock { $PSVersionTable }
Remove-PSSession $s
Prófanir og WinRM nothæft:
Test-WSMan -ComputerName host
winrm get winrm/config
winrm enumerate winrm/config/listener
winrm quickconfig -transport:https
Hagnýtar athugasemdir um eldvegg, net og tengi
Opnaðu 5985/TCP fyrir HTTP og 5986/TCP fyrir HTTPS á marktölvunni og á einhver milliveggurÍ Windows-biðlurum býr Enable-PSRemoting til reglur fyrir léns- og einkasnið; fyrir opinber snið er það takmarkað við staðbundið undirnet nema þú breytir umfanginu með Set-NetFirewallRule -RemoteAddress Any (gildi sem þú getur metið út frá áhættu þinni).
Ef þú notar SOAR/SIEM samþættingar sem keyra fjarstýrðar skipanir (t.d. frá XSOAR), vertu viss um að netþjónninn hafi DNS-upplausn við vélina, tengingu við 5985/5986 og innskráningarupplýsingar með nægilegum staðbundnum heimildum. Í sumum tilfellum gæti þurft aðlögun á NTLM/Basic auðkenningu (t.d. að nota staðbundinn notanda í Basic með SSL).
Virkja PSRemoting breytur (Yfirlit yfir notkun)
-Staðfesta biður um staðfestingu áður en framkvæmd er framkvæmd; -Þvinga fram hunsar viðvaranirnar og gera nauðsynlegar breytingar; -SkipNetworkProfileCheck virkjar fjarstýringu á opinberum netkerfum viðskiptavina (sjálfgefið takmarkað við staðbundið undirnet); -WhatIf sýnir þér hvað myndi gerast án þess að breytingar væru virkjaðar. Að auki, eins og með allar venjulegar cmdlet, styður það algengar breytur (-Ítarlegt, -Villuaðgerð, o.s.frv.).
Mundu að „Virkja“ býr ekki til HTTPS hlustendur eða vottorð fyrir þig; ef þú þarft dulkóðun frá upphafi til enda og auðkenningu byggða á vottorð, stilltu HTTPS hlustarann og staðfestu CN/SAN á móti nafninu sem þú munt nota í -ComputerName.
Gagnlegar WinRM og PowerShell fjarstýringarskipanir
Sumir nauðsynlegir hlutir fyrir náttborðið fyrir daglegt líf:
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
Þegar Windows er stjórnað í stórum stíl gerir fjarstýring þér kleift að færa þig frá „tölvu-til-tölvu“ yfir í yfirlýsingarbundna og örugga nálgun. Með því að sameina varanlegar lotur, sterka auðkenningu (Kerberos/HTTPS), takmarkaða endapunkta og skýrar rakningar fyrir greiningar, þú öðlast hraða og stjórn án þess að fórna öryggi eða endurskoðun. Ef þú staðlar einnig virkjun GPO og nærð tökum á sérstökum tilfellum (TrustedHosts, tvöfaldur hopp, vottorð), þá munt þú hafa traustan fjarstýrðan vettvang fyrir daglegan rekstur og viðbrögð við atvikum.
Ritstjóri sérhæfður í tækni- og netmálum með meira en tíu ára reynslu í mismunandi stafrænum miðlum. Ég hef starfað sem ritstjóri og efnishöfundur fyrir rafræn viðskipti, samskipti, markaðssetningu á netinu og auglýsingafyrirtæki. Ég hef einnig skrifað á vefsíður hagfræði, fjármála og annarra geira. Vinnan mín er líka ástríða mín. Nú, í gegnum greinar mínar í Tecnobits, Ég reyni að kanna allar fréttir og ný tækifæri sem tækniheimurinn býður okkur á hverjum degi til að bæta líf okkar.