Kako upravljati računalnik z mobilnega telefona z uporabo PowerShell Remoting

Zadnja posodobitev: 15/10/2025

  • Oddaljeno delovanje uporablja WinRM/WS-Man (HTTP/HTTPS) in omogoča seje 1-proti-1, 1-proti-mnogim in trajne seje z varnostnimi kontrolami.
  • Enable-PSRemoting konfigurira storitev, poslušalce in požarni zid; HTTPS zahteva veljavno potrdilo in ujemanje CN/SAN.
  • Rezultati se vrnejo deserializirani; metode se klicajo znotraj oddaljenega skriptnega bloka, za natančno delegiranje pa se uporabljajo končne točke po meri.
Oddaljeno delo s PowerShellom

Morda že lokalno avtomatizirate veliko nalog s PowerShellom, ampak kje jih v resnici Oddaljeno delovanje PowerShella naredi razliko Gre za interaktivno ali vzporedno izvajanje ukazov na oddaljenih računalnikih, pa naj jih je nekaj ali več sto. Ta tehnologija, ki je na voljo od različice Windows PowerShell 2.0 in izboljšana od različice 3.0, temelji na WS-Management (WinRM) in pretvarja PowerShell v robustnem, skalabilnem in varnem kanalu za oddaljeno upravljanje.

Najprej je pomembno razumeti dve ključni ideji: ukaze »cmdlet« z -Parameter ImeComputerName (npr. Get-Process ali Get-Service) niso dolgoročna pot, ki jo priporoča Microsoft, in PowerShell Remoting ne deluje kot »trik«. Pravzaprav, uveljavlja medsebojno overjanje, beleži dnevnike revizije in spoštuje vaša običajna dovoljenja, brez shranjevanja poverilnic ali čarobnega zagona česar koli s super privilegiji.

Kaj je PowerShell Remoting in zakaj ga uporabljati?

z PowerShell Remoting lahko izvesti skoraj vsak ukaz na daljavo ki bi jih lahko zagnali v lokalni seji, od poizvedovanja storitev do uvajanja konfiguracij, in to na stotinah računalnikov hkrati. Za razliko od ukazov »cmdlet«, ki sprejemajo -ComputerName (mnogi uporabljajo DCOM/RPC), oddaljeno delovanje potuje prek WS-Mana (HTTP/HTTPS), ki je bolj prijazen do požarnih zidov, omogoča vzporednost in delo prenese na oddaljeni gostitelj, ne na odjemalca.

To se odraža v treh praktičnih prednostih: boljša učinkovitost pri množičnih izvedbah, manj trenja v omrežjih z omejevalnimi pravili in varnostnim modelom, ki je skladen s Kerberos/HTTPS. Poleg tega, ker ni odvisno od vsakega ukaza »cmdlet« za implementacijo lastnega oddaljenega dostopa, je oddaljeno delovanje Deluje za kateri koli scenarij ali vlogo ki je na voljo na cilju.

Privzeto imajo novejši strežniki Windows omogočeno oddaljeno delo; v sistemih Windows 10/11 aktiviraš ga z enim samim ukazom »cmdlet«. In ja, lahko uporabite nadomestne poverilnice, trajne seje, končne točke po meri in drugo.

Opomba: Oddaljeno delo ni sinonim za odpiranje vsega. Privzeto samo administratorji Lahko se povežejo in dejanja se izvajajo pod njihovo identiteto. Če potrebujete podrobno delegiranje, vam končne točke po meri omogočajo, da izpostavite le bistvene ukaze.

Arhitektura oddaljenega delovanja PowerShell

Kako deluje znotraj: WinRM, WS-Man in vrata

Oddaljeno delovanje PowerShell deluje v modelu odjemalec-strežnik. Odjemalec pošilja zahteve WS-Management prek HTTP (5985/TCP) ali HTTPS (5986/TCP)Na cilju storitev Windows Remote Management (WinRM) posluša, razreši končno točko (konfiguracijo seje) in gosti sejo PowerShell v ozadju (proces wsmprovhost.exe). vračanje serializiranih rezultatov odjemalcu v XML prek SOAP-a.

Ko prvič omogočite oddaljeno delovanje, se konfigurirajo poslušalci, odpre se ustrezna izjema požarnega zidu in ustvarijo se konfiguracije sej. Od različice PowerShell 6+ naprej obstaja več izdaj hkrati in Omogoči PSRemoting Registrira končne točke z imeni, ki odražajo različico (na primer PowerShell.7 in PowerShell.7.xy).

Ekskluzivna vsebina - Kliknite tukaj  Globalno opozorilo o kritični ranljivosti v brskalniku Google Chrome: kaj morate vedeti in kako se zaščititi

Če v svojem okolju dovolite samo HTTPS, lahko ustvarite varen poslušalec s potrdilom, ki ga izda zaupanja vreden overitelj potrdil (priporočeno). Druga možnost je uporaba TrustedHosts v omejenem obsegu, pri čemer se zavedate tveganja, za scenarije delovnih skupin ali računalnike brez domene.

Upoštevajte, da lahko Powershell Remoting sobiva z ukazi »cmdlet« z -ComputerName, vendar Microsoft spodbuja WS-Mana kot standarden in prihodnostno pripravljen način za oddaljeno upravljanje.

Omogočanje oddaljenega delovanja PowerShell in uporabnih parametrov

V sistemu Windows preprosto odprite PowerShell kot skrbnik in zaženite Omogoči PSRemotingSistem zažene WinRM, konfigurira samodejni zagon, omogoči poslušalnik in ustvari ustrezna pravila požarnega zidu. Pri odjemalcih z javnim omrežnim profilom lahko to namerno dovolite z -PreskočiPreverjanjeOmrežnegaProfila (in nato okrepite s posebnimi pravili):

Enable-PSRemoting
Enable-PSRemoting -Force
Enable-PSRemoting -SkipNetworkProfileCheck -Force

 

Sintaksa omogoča tudi, -Potrdi y -Kajče za nadzor sprememb. Ne pozabite: Na voljo je samo v sistemu Windowsin zagnati morate konzolo s povišanimi privilegiji. Ustvarjena pravila se razlikujejo med strežniško in odjemalsko izdajo, zlasti v javnih omrežjih, kjer so privzeto omejena na lokalno podomrežje, razen če razširite obseg (na primer z Set-NetFirewallRule).

Za seznam že posnetih konfiguracij sej in potrditev, da je vse pripravljeno, uporabite Get-PSSessionConfigurationČe se prikažeta končni točki PowerShell.x in Workflow, ogrodje za oddaljeno delovanje deluje.

Oddaljena seja s PowerShellom

Načini uporabe: 1 proti 1, 1 proti mnogim in trajne seje

Ko potrebujete interaktivno konzolo na enem računalniku, se obrnite na Enter-PSSessionPrikazal se bo poziv in vse, kar izvedete, bo poslano oddaljenemu gostitelju. Poverilnice lahko ponovno uporabite z ukazom Get-Credential, da se izognete nenehnemu ponovnemu vnašanju:

$cred = Get-Credential
Enter-PSSession -ComputerName dc01 -Credential $cred
Exit-PSSession

Če iščete pošiljanje ukazov več računalnikom hkrati, je orodje Invoke-Command s skriptnim blokom. Privzeto zažene do 32 sočasnih povezav (nastavljivo z -ThrottleLimit). Rezultati so vrnjeni kot deserializirani objekti (brez "živih" metod):

Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service -Name W32Time } -Credential $cred

Ali morate poklicati metodo, kot je .Stop() ali .Start()? Naredite to. znotraj skriptnega bloka v oddaljenem kontekstu, ne v lokalnem deserializiranem objektu, in to je to. Če obstaja enakovreden ukaz »cmdlet« (Stop-Service/Start-Service), ga je zaradi jasnosti običajno bolje uporabiti.

Da se izognete stroškom začetka in konca sej pri vsakem klicu, ustvarite Trajna seja PSS in ga ponovno uporabite pri več klicih. Za ustvarjanje povezave uporabite New-PSSession, za ponovno uporabo tunela pa Invoke-Command-Session. Ko končate, ga ne pozabite zapreti z Remove-PSSession.

Serializacija, omejitve in dobre prakse

Pomembna podrobnost: med potovanjem se predmeti "+sploščijo" in prispejo kot deserializirani posnetki, z lastnostmi, vendar brez metod. To je namerno in prihrani pasovno širino, vendar pomeni, da ne morete uporabljati članov, ki izvajajo logiko (kot je .Kill()) na lokalni kopiji. Rešitev je očitna: pokličite te metode. na daljavo in če potrebujete le določena polja, filtrirajte z Select-Object, da pošljete manj podatkov.

Ekskluzivna vsebina - Kliknite tukaj  Kako preprečiti poškodbe datotek?

V skriptih se izogibajte Enter-PSSession (namenjeno interaktivni uporabi) in uporabite Invoke-Command z bloki skriptov. Če pričakujete več klicev ali morate ohraniti stanje (spremenljivke, uvoženi moduli), uporabite trajne seje in jih po potrebi prekinite/ponovno povežite z ukazom Disconnect-PSSession/Connect-PSSession v PowerShellu 3.0+.

Preverjanje pristnosti, HTTPS in scenariji zunaj domene

V domeni je izvorna avtentikacija Kerberos In vse teče gladko. Ko naprava ne more preveriti imena strežnika ali se povežete z IP-naslovom ali vzdevkom CNAME, potrebujete eno od teh dveh možnosti: 1) Poslušalec HTTPS s certifikatom izdal overitelj, ki mu zaupate, ali 2) dodajte cilj (ime ali IP) v TrustedHosts in uporabite poverilniceDruga možnost onemogoči medsebojno preverjanje pristnosti za tega gostitelja, s čimer zmanjša obseg na potreben minimum.

Za nastavitev poslušalnika HTTPS je potrebno potrdilo (idealno iz vaše PKI ali javnega overitelja potrdil), nameščeno v shrambi ekipe in povezano z WinRM. Vrata 5986/TCP se nato odprejo v požarnem zidu in se uporabijo iz odjemalca. -Uporabi SSL v oddaljenih ukazih »cmdlet«. Za preverjanje pristnosti odjemalskega potrdila lahko potrdilo preslikate v lokalni račun in se povežete z njim -Odtis palca s potrdilom (Enter-PSSession tega ne sprejme neposredno; najprej ustvarite sejo z New-PSSession.)

Drugi skok in prenos poverilnic

Znani »dvojni skok« se pojavi, ko po povezavi s strežnikom potrebujete, da ta strežnik dostopa do tretji vir v vašem imenu (npr. delnica SMB). Za to obstajata dva pristopa: CredSSP in delegiranje Kerberos z omejenimi viri.

z CredSSP Odjemalcu in posredniku omogočite eksplicitno delegiranje poverilnic in nastavite pravilnik (GPO), ki dovoljuje delegiranje na določene računalnike. Konfiguracija je hitra, vendar manj varna, ker poverilnice potujejo v obliki odprtega besedila znotraj šifriranega tunela. Vedno omejite vire in cilje.

Prednostna alternativa v domeni je omejena delegacija Kerberos (omejena delegacija na podlagi virov) v sodobnem AD. To končni točki omogoča, da se za določene storitve zanaša na prejemanje delegacije od srednje točke, s čimer se izogne ​​razkritju vaše identitete ob začetni povezavi. Zahteva novejše krmilnike domen in posodobljen RSAT.

Končne točke po meri (konfiguracije sej)

Eden od biserov oddaljenega dela je možnost registracije povezovalnih točk z prilagojene zmogljivosti in omejitveNajprej ustvarite datoteko z New-PSSessionConfigurationFile (moduli za prednalaganje, vidne funkcije, vzdevki, ExecutionPolicy, LanguageMode itd.) in jo nato registrirate z Register-PSSessionConfiguration, kjer lahko nastavite Zaženi kot poverilnico in dovoljenja (vmesnik SDDL ali GUI z -ShowSecurityDescriptorUI).

Za varno delegiranje izpostavite le tisto, kar je potrebno, z -VisibleCmdlets/-VisibleFunctions in po potrebi onemogočite prosto skriptanje z JezikNačinOmejeni jezik ali BrezJezika. Če zapustite FullLanguage, bi lahko nekdo uporabil blok skripte za klic neizpostavljenih ukazov, ki v kombinaciji z RunAs, bila bi luknjaTe končne točke oblikujte z drobnim glavnikom in dokumentirajte njihov obseg.

Domene, GPO-ji in skupinska programska oprema

V Active Directoryju lahko z GPO-jem uvedete Powershell Remoting v velikem obsegu: omogočite samodejno konfiguracijo poslušalcev WinRM, nastavite storitev na Samodejnoin ustvarite izjemo požarnega zidu. Ne pozabite, da GPO-ji spreminjajo nastavitve, vendar storitve ne vklopijo vedno takoj; včasih morate znova zagnati ali vsiliti posodobitev gp.

Ekskluzivna vsebina - Kliknite tukaj  Kako uporabljati Norton Mobile Security?

V delovnih skupinah (brez domene) konfigurirajte oddaljeno delo z Omogoči PSRemoting, na odjemalcu nastavite zaupanja vredne gostitelje (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) in uporabite lokalne poverilnice. Za HTTPS lahko priklopite samopodpisana potrdila, čeprav je priporočljivo uporabiti zaupanja vrednega overitelja potrdil in potrdi ime ki ga boste uporabili v -ComputerName v potrdilu (ujemanje CN/SAN).

Ključni ukazi »cmdlet« in sintaksa

Peščica komandosov pokriva 90 % dnevnih scenarijevZa aktivacijo/deaktivacijo:

Enable-PSRemoting    
Disable-PSRemoting

Interaktivna seja 1 proti 1 in izhod:

Enter-PSSession -ComputerName SEC504STUDENT 
Exit-PSSession

1 proti mnogim, z vzporednostjo in poverilnicami:

Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service W32Time } -Credential $cred

Vztrajne seje in ponovno uporabo:

$s = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7
Invoke-Command -Session $s -ScriptBlock { $PSVersionTable }
Remove-PSSession $s

Testiranje in WinRM uporabno:

Test-WSMan -ComputerName host
winrm get winrm/config
winrm enumerate winrm/config/listener
winrm quickconfig -transport:https

Praktična navodila o požarnem zidu, omrežju in vratih

Odprite 5985/TCP za HTTP in 5986/TCP za HTTPS na ciljnem računalniku in na kateri koli vmesni požarni zidV odjemalcih sistema Windows Enable-PSRemoting ustvari pravila za domeno in zasebne profile; za javne profile je omejeno na lokalno podomrežje, razen če spremenite obseg z Set-NetFirewallRule -RemoteAddress Any (vrednost, ki jo lahko ocenite glede na tveganje).

Če uporabljate integracije SOAR/SIEM, ki izvajajo oddaljene ukaze (npr. iz XSOAR), se prepričajte, da ima strežnik Razreševanje DNS-a do gostiteljev, povezljivost s 5985/5986 in poverilnice z zadostnimi lokalnimi dovoljenji. V nekaterih primerih bo morda treba prilagoditi preverjanje pristnosti NTLM/Basic (npr. uporaba lokalnega uporabnika v Basic s SSL).

Parametri Enable-PSRemoting (povzetek delovanja)

-Potrdi vpraša za potrditev pred izvedbo; -Vsili ignorira opozorila in naredite potrebne spremembe; -SkipNetworkProfileCheck omogoča oddaljeno delo v javnih odjemalskih omrežjih (privzeto omejeno na lokalno podomrežje); -WhatIf vam pokaže, kaj bi se zgodilo brez uporabe sprememb. Poleg tega, tako kot vsak standardni ukaz »cmdlet«, podpira skupni parametri (-Verbose, -ErrorAction itd.).

Ne pozabite, da možnost »Omogoči« ne ustvari poslušalcev HTTPS ali potrdil; če potrebujete šifriranje od začetka do konca in preverjanje pristnosti na podlagi potrdila, konfigurirajte poslušalnik HTTPS in preverite CN/SAN glede na ime, ki ga boste uporabili v -ComputerName.

Uporabni ukazi za oddaljeno delo z WinRM in PowerShell

nekaj bistveni predmeti za nočno omaro za dan na dan:

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

Pri upravljanju sistema Windows v velikem obsegu vam oddaljeno delovanje omogoča prehod z »med računalniki« na deklarativni in varen pristop. Z združevanjem trajnih sej, močnega preverjanja pristnosti (Kerberos/HTTPS), omejenih končnih točk in jasnih sledi za diagnostiko, pridobiš hitrost in nadzor brez žrtvovanja varnosti ali revizije. Če standardizirate tudi aktivacijo GPO in obvladate posebne primere (TrustedHosts, dvojni skok, potrdila), boste imeli trdno oddaljeno platformo za vsakodnevno delovanje in odzivanje na incidente.

nevidna zlonamerna programska oprema
Povezani članek:
Kako zaščititi svoj računalnik pred nevidno zlonamerno programsko opremo, kot sta XWorm in NotDoor