- Koneksyon a distans itilize WinRM/WS-Man (HTTP/HTTPS) epi li pèmèt sesyon 1 a 1, 1 a plizyè, ak sesyon pèsistan avèk kontwòl sekirite.
- Enable-PSRemoting konfigire sèvis la, aparèy pou koute yo, ak pare-feu a; HTTPS mande yon sètifika valab ak yon koresponn CN/SAN.
- Rezilta yo retounen deseriyalize; metòd yo envoke nan blòk script aleka a epi pwen final koutim yo itilize pou yon delegasyon presi.
Ou ka deja otomatize anpil travay ak PowerShell lokalman, men ki kote ou reyèlman fè sa? Kontak a distans PowerShell fè diferans lan Se lè w ap egzekite kòmand sou machin aleka, kit se kèk oswa plizyè santèn, entèaktif oswa an paralèl. Teknoloji sa a, disponib depi Windows PowerShell 2.0 epi amelyore depi 3.0, baze sou WS-Management (WinRM) epi li konvèti poechèl nan yon kanal jesyon a distans ki solid, évolutif e an sekirite.
Premyeman, li enpòtan pou konprann de lide kle: cmdlets ak -Paramèt NonOdinatè (pa egzanp, Get-Process oubyen Get-Service) se pa chemen alontèm Microsoft rekòmande a, epi PowerShell Remoting pa fonksyone kòm yon "piratage". Anfèt, aplike otantifikasyon mityèl, jounal odit yo epi respekte pèmisyon abityèl ou yo, san ou pa estoke kalifikasyon oswa majikman egzekite anyen ak super privilèj.
Ki sa PowerShell Remoting ye e poukisa ou ta dwe itilize li?
ak Poechèl Remote ou ka egzekite prèske nenpòt kòmand a distans ke ou te ka lanse nan yon sesyon lokal, soti nan sèvis rechèch pou rive nan deplwaye konfigirasyon, epi fè sa sou plizyè santèn òdinatè alafwa. Kontrèman ak cmdlet ki aksepte -ComputerName (anpil itilize DCOM/RPC), Remoting vwayaje atravè WS-Man (HTTP/HTTPS), ki pi konpatib ak pare-feu, pèmèt paralelis epi li dechaje travay la sou lame adistans lan, pa sou kliyan an.
Sa tradui an twa avantaj pratik: pi bon pèfòmans nan ekzekisyon masiv, mwens friksyon nan rezo yo avèk règ restriksyon ak yon modèl sekirite ki konsistan avèk Kerberos/HTTPS. Anplis, lè yo pa depann sou chak cmdlet pou aplike pwòp kontwòl adistans li, Remoting Li fonksyone pou nenpòt senaryo oswa wòl ki disponib nan destinasyon an.
Pa default, dènye sèvè Windows yo vini ak Remoting aktive; nan Windows 10/11 ou aktive li avèk yon sèl cmdlet. Epi wi, ou ka itilize lòt kalifikasyon, sesyon pèsistan, pwen final pèsonalize, ak plis ankò.
Nòt: Aksè a distans pa vle di ouvè tout bagay. Pa default, sèlman administratè yo Yo ka konekte, epi aksyon yo egzekite anba idantite yo. Si ou bezwen yon delegasyon byen presi, pwen final pèsonalize yo pèmèt ou ekspoze sèlman kòmandman esansyèl yo.

Kijan li fonksyone anndan: WinRM, WS-Man ak pò yo
Koneksyon a distans PowerShell la fonksyone nan yon modèl kliyan-sèvè. Kliyan an voye demann Jesyon WS atravè HTTP (5985/TCP) oubyen HTTPS (5986/TCP)Sou sib la, sèvis Jesyon Windows a Distans (WinRM) la ap koute, rezoud pwen final la (konfigirasyon sesyon), epi òganize sesyon PowerShell la nan background nan (pwosesis wsmprovhost.exe). retounen rezilta seri yo bay kliyan an nan XML atravè SOAP.
Premye fwa ou aktive Remoting, kouteur yo konfigire, eksepsyon pare-feu ki apwopriye a louvri, epi konfigirasyon sesyon yo kreye. Apati PowerShell 6+, plizyè edisyon koegziste, epi Pèmèt-PSRemoting Anrejistre pwen final yo ak non ki reflete vèsyon an (pa egzanp, PowerShell.7 ak PowerShell.7.xy).
Si ou sèlman pèmèt HTTPS nan anviwònman ou an, ou ka kreye yon kouteur ki an sekirite avèk yon sètifika ki soti nan yon CA ou fè konfyans (rekòmande). Yon lòt altènatif se sèvi ak TrustedHosts nan yon fason limite, ki pran an konsiderasyon risk, pou senaryo gwoup travay oswa òdinatè ki pa nan domèn.
Remake byen ke Powershell Remoting ka koegziste avèk cmdlet ki gen -ComputerName, men Microsoft pouse WS-Man kòm metòd estanda ak ki pare pou lavni pou administrasyon a distans.
Aktive Kontak PowerShell a Distans ak Paramèt Itil yo
Sou Windows, jis ouvri PowerShell kòm administratè epi egzekite Pèmèt-PSRemotingSistèm nan kòmanse WinRM, li konfigire demaraj otomatik la, li aktive kouteur a, epi li kreye règ pare-feu ki apwopriye yo. Sou kliyan ki gen yon pwofil rezo piblik, ou ka pèmèt sa volontèman avèk -SkipNetworkProfileCheck (epi ranfòse ak règ espesifik):
Enable-PSRemoting
Enable-PSRemoting -Force
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Sintaks la pèmèt tou, -Konfime y -E si pou kontwòl chanjman. Sonje byen: Li disponib sèlman sou Windows, epi ou dwe egzekite konsole ki gen plis pouvwa a. Règ yo kreye yo diferan ant edisyon Sèvè ak Kliyan, sitou sou rezo piblik yo, kote pa default yo limite a sou-rezo lokal la sof si ou elaji dimansyon an (pa egzanp, ak Set-NetFirewallRule).
Pou lis konfigirasyon sesyon ki deja anrejistre yo epi konfime ke tout bagay pare, itilize Get-PSSessionConfigurationSi pwen final PowerShell.x ak Workflow yo parèt, kad travay a distans lan ap fonksyone.

Mòd itilizasyon: 1 a 1, 1 a plizyè, ak sesyon pèsistan
Lè ou bezwen yon konsole entèaktif sou yon sèl òdinatè, ale nan Antre-PSSessionEnvit la ap parèt, epi tout sa ou egzekite ap ale nan òdinatè adistans lan. Ou ka itilize kalifikasyon yo ankò avèk Get-Credential pou evite antre yo tout tan:
$cred = Get-Credential
Enter-PSSession -ComputerName dc01 -Credential $cred
Exit-PSSession
Si sa w ap chèche a se voye kòmand bay plizyè òdinatè an menm tan, zouti a se Envoke-Kòmandman avèk yon blòk script. Pa default, li lanse jiska 32 koneksyon similtane (ou ka ajiste yo avèk -ThrottleLimit). Rezilta yo retounen kòm objè deseriyalize yo (san metòd "an dirèk")
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service -Name W32Time } -Credential $cred
Bezwen envoke yon metòd tankou .Stop() oubyen .Start()? Fè li. andedan blòk script la Nan kontèks aleka a, pa objè deseriyalize lokal la, e se sa. Si gen yon cmdlet ekivalan (Stop-Service/Start-Service), li anjeneral pi preferab pou itilize li pou plis klarite.
Pou evite depans pou kòmanse ak fini sesyon sou chak apèl, kreye yon Sesyon PS Pèsistan epi reitilize li nan plizyè envokasyon. Sèvi ak New-PSSession pou kreye koneksyon an, epi sèvi ak Invoke-Command-Session pou reitilize tinèl la. Pa bliye fèmen li ak Remove-PSSession lè w fini.
Serializasyon, limit ak bon pratik
Yon detay enpòtan: lè w ap vwayaje, objè yo "aplati" epi yo rive jan yo ye a snapshots deseriyalize yo, ak pwopriyete men san metòd. Sa a se espre epi li ekonomize Pleasant, men sa vle di ou pa ka itilize manm ki egzekite lojik (tankou .Kill()) sou kopi lokal la. Solisyon an evidan: envoke metòd sa yo. adistans Epi si ou sèlman bezwen sèten chan, filtre ak Select-Object pou voye mwens done.
Nan script yo, evite Enter-PSSession (ki fèt pou itilizasyon entèaktif) epi sèvi ak Invoke-Command ak blòk script yo. Si ou prevwa plizyè apèl oswa ou bezwen prezève eta a (varyab, modil enpòte), sèvi ak sesyon pèsistan epi, si sa aplikab, dekonekte/rekonekte yo ak Disconnect-PSSession/Connect-PSSession nan PowerShell 3.0+.
Otantifikasyon, HTTPS, ak Senaryo ki pa nan domèn nan
Nan yon domèn, otantifikasyon natif natal la se Kerberos Epi tout bagay ap mache byen. Lè aparèy la pa ka verifye non sèvè a, oubyen ou konekte ak yon IP CNAME oubyen yon alyas, ou bezwen youn nan de opsyon sa yo: 1) Listener HTTPS ak sètifika ki soti nan yon CA ou fè konfyans, oubyen 2) ajoute destinasyon an (non oswa IP) nan TrustedHosts epi itilize kalifikasyonDezyèm opsyon an enfim otantifikasyon mityèl pou lame sa a, kidonk li diminye dimansyon an nan minimòm nesesè a.
Pou mete yon aparèy pou koute HTTPS an plas, ou bezwen yon sètifika (idealman soti nan PKI ou a oswa yon CA piblik), enstale nan magazen ekip la epi lye ak WinRM. Apre sa, yo louvri pò 5986/TCP a nan pare-feu a epi, kliyan an itilize li. -Sèvi ak SSL nan cmdlet aleka. Pou otantifikasyon sètifika kliyan, ou ka trase yon sètifika nan yon kont lokal epi konekte avèk Anprent pou sètifika (Enter-PSSession pa aksepte sa dirèkteman; kreye sesyon an anvan ak New-PSSession.)
Dezyèm so a ak delegasyon kalifikasyon yo
Pi popilè "doub so" a parèt lè, apre ou fin konekte ak yon sèvè, ou bezwen sèvè sa a jwenn aksè a yon twazyèm resous sou non ou (pa egzanp, yon pataj SMB). Gen de apwòch pou pèmèt sa: CredSSP ak delegasyon Kerberos ki baze sou resous.
ak CredSSP Ou pèmèt kliyan an ak entèmedyè a delege kalifikasyon yo eksplisitman, epi ou mete yon règleman (GPO) pou pèmèt delegasyon bay òdinatè espesifik. Li rapid pou konfigire, men li mwens an sekirite paske kalifikasyon yo vwayaje an tèks klè nan tinèl chiffres la. Toujou limite sous ak destinasyon yo.
Altènatif ki pi pito nan domèn nan se la delegasyon Kerberos limite (delegasyon ki baze sou resous ak kontrent) nan AD modèn. Sa pèmèt pwen final la konte sou resevwa delegasyon nan men pwen entèmedyè a pou sèvis espesifik, pou evite ekspoze idantite w sou koneksyon inisyal la. Li mande kontwolè domèn ki resan ak yon RSAT ki ajou.
Pwen Final Pèsonalize (Konfigirasyon Sesyon)
Youn nan avantaj Remoting lan se kapasite pou anrejistre pwen koneksyon avèk kapasite ak limit pèsonalizePremyèman, ou jenere yon fichye avèk New-PSSessionConfigurationFile (modil pou prechaje, fonksyon vizib, alyas, ExecutionPolicy, LanguageMode, elatriye), epi answit ou anrejistre li avèk Register-PSSessionConfiguration, kote ou ka mete EgzekiteAsKredansyèl ak pèmisyon (SDDL oswa koòdone GUI ak -ShowSecurityDescriptorUI).
Pou yon delegasyon an sekirite, ekspoze sèlman sa ki nesesè avèk -VisibleCmdlets/-VisibleFunctions epi dezaktive script gratis la si sa apwopriye avèk Mòd Langaj Lang Restriksyon oubyen NoLanguage. Si ou kite FullLanguage, yon moun ka itilize yon blòk script pou envoke kòmand ki pa ekspoze, ki, ansanm ak RunAs, li ta yon twouDesine pwen final sa yo ak anpil atansyon epi dokimante dimansyon yo.
Domèn, GPO, ak Groupware
Nan AD ou ka deplwaye Powershell Remoting nan yon gwo echèl ak GPO: pèmèt konfigirasyon otomatik pou koute WinRM yo, mete sèvis la sou Otomatik, epi kreye eksepsyon pare-feu a. Sonje byen ke GPO yo chanje paramèt yo, men yo pa toujou aktive sèvis la imedyatman; pafwa ou bezwen rekòmanse oswa fòse yon gpupdate.
Nan gwoup travay (ki pa nan domèn), konfigire Remoting ak Pèmèt-PSRemoting, mete TrustedHosts sou kliyan an (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) epi sèvi ak kalifikasyon lokal yo. Pou HTTPS, ou ka monte sètifika oto-siyen, byenke li rekòmande pou itilize yon CA ou fè konfyans epi valide non an ke ou pral itilize nan -ComputerName nan sètifika a (matche CN/SAN).
Kmdlet kle ak sentaks
Yon ti ponyen komando kouvri 90% nan senaryo chak jou yoPou aktive/dezaktive:
Enable-PSRemoting
Disable-PSRemoting
Sesyon entèaktif 1 a 1 epi sòti:
Enter-PSSession -ComputerName SEC504STUDENT
Exit-PSSession
1 pou plizyè, avèk paralelis ak kalifikasyon:
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service W32Time } -Credential $cred
Sesyon pèsistan epi reitilize:
$s = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7
Invoke-Command -Session $s -ScriptBlock { $PSVersionTable }
Remove-PSSession $s
Tès ak WinRM Itil:
Test-WSMan -ComputerName host
winrm get winrm/config
winrm enumerate winrm/config/listener
winrm quickconfig -transport:https
Nòt pratik sou pare-feu, rezo ak pò
Louvri 5985/TCP pou HTTP ak 5986/TCP pou HTTPS sou òdinatè sib la epi sou nenpòt pare-feu entèmedyèSou kliyan Windows yo, Enable-PSRemoting kreye règ pou pwofil domèn ak pwofil prive; pou pwofil piblik yo, li limite a sou-rezo lokal la sof si ou modifye dimansyon an ak Set-NetFirewallRule -RemoteAddress Any (yon valè ou ka evalye selon risk ou).
Si w ap itilize entegrasyon SOAR/SIEM ki egzekite kòmand a distans (pa egzanp, soti nan XSOAR), asire w ke sèvè a genyen Rezolisyon DNS ak òdinatè prensipal yo, koneksyon ak 5985/5986, ak kalifikasyon ak otorizasyon lokal ase. Nan kèk ka, otantifikasyon NTLM/Basic la ka mande ajisteman (pa egzanp, itilize yon itilizatè lokal nan Basic ak SSL).
Paramèt Enable-PSRemoting (Rezime Operasyonèl)
-Konfime mande konfimasyon anvan egzekisyon; -Fòse inyore avètisman yo epi fè chanjman ki nesesè yo; -SkipNetworkProfileCheck pèmèt koneksyon a distans sou rezo kliyan piblik yo (limite pa default a sou-rezo lokal la); -WhatIf montre w sa ki ta rive san w pa aplike chanjman yo. Anplis de sa, tankou nenpòt cmdlet estanda, li sipòte paramèt komen yo (-Vèboz, -AksyonErè, elatriye).
Sonje byen ke "Aktive" pa kreye kouteur oswa sètifika HTTPS pou ou; si ou bezwen chifreman bout-a-bout depi nan kòmansman an ak otantifikasyon ki baze sou sètifika, konfigire kouteur HTTPS la epi valide CN/SAN an parapò ak non ou pral itilize nan -ComputerName.
Kòmand itil pou koneksyon a distans WinRM ak PowerShell
kèk atik esansyèl bò kabann pou lavi chak jou:
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
Lè w ap jere Windows sou yon gwo echèl, koneksyon a distans pèmèt ou chanje soti nan yon apwòch "òdinatè a òdinatè" pou ale nan yon apwòch deklaratif ak an sekirite. Lè w konbine sesyon pèsistan, otantifikasyon solid (Kerberos/HTTPS), pwen final restriksyon, ak tras klè pou dyagnostik, ou pran vitès ak kontwòl san sakrifye sekirite oswa odit. Si ou estandadize tou aktivasyon GPO epi metrize ka espesyal yo (TrustedHosts, doub so, sètifika), ou pral gen yon platfòm solid a distans pou operasyon chak jou ak repons a ensidan.
Editè espesyalize nan pwoblèm teknoloji ak entènèt ak plis pase dis ane eksperyans nan diferan medya dijital. Mwen te travay kòm yon editè ak kreyatè kontni pou e-commerce, kominikasyon, maketing sou entènèt ak konpayi piblisite. Mwen te ekri tou sou sit entènèt ekonomi, finans ak lòt sektè. Travay mwen se pasyon mwen tou. Koulye a, atravè atik mwen yo nan Tecnobits, Mwen eseye eksplore tout nouvèl ak nouvo opòtinite ke mond lan nan teknoloji ofri nou chak jou amelyore lavi nou.