Slik styrer du PC-en fra mobiltelefonen din ved hjelp av PowerShell Remoting

Siste oppdatering: 15/10/2025
Forfatter: Daniel Terrasa

  • Fjernstyring bruker WinRM/WS-Man (HTTP/HTTPS) og tillater 1-til-1-, 1-til-mange- og vedvarende økter med sikkerhetskontroller.
  • Enable-PSRemoting konfigurerer tjenesten, lyttere og brannmur; HTTPS krever et gyldig sertifikat og CN/SAN-samsvar.
  • Resultatene returneres deserialisert; metoder kalles i den eksterne skriptblokken og tilpassede endepunkter brukes for finjustert delegering.
PowerShell-fjernstyring

Du automatiserer kanskje allerede mange oppgaver med PowerShell lokalt, men hvor gjør du egentlig det? PowerShell-fjernstyring utgjør forskjellen Det er når du kjører kommandoer på eksterne maskiner, enten noen få eller hundrevis, interaktivt eller parallelt. Denne teknologien, som er tilgjengelig siden Windows PowerShell 2.0 og forbedret siden 3.0, er basert på WS-Management (WinRM) og konverterer PowerShell i en robust, skalerbar og sikker fjernadministrasjonskanal.

Først av alt er det viktig å forstå to hovedideer: cmdleter med -ComputerName-parameter (f.eks. Get-Process eller Get-Service) er ikke den langsiktige løsningen som anbefales av Microsoft, og PowerShell Remoting fungerer ikke som et «hack». Faktisk, håndhever gjensidig autentisering, revisjonslogger og respekterer dine vanlige tillatelser, uten å lagre påloggingsinformasjon eller magisk kjøre noe med superrettigheter.

Hva er PowerShell Remoting, og hvorfor bruke det?

med Fjernstyring av PowerShell du kan utfør nesten hvilken som helst kommando eksternt som du kan starte i en lokal økt, fra å spørre tjenester til å distribuere konfigurasjoner, og gjøre det på hundrevis av datamaskiner samtidig. I motsetning til cmdleter som godtar -ComputerName (mange bruker DCOM/RPC), kan Remoting reiser via WS-Man (HTTP/HTTPS), som er mer brannmurvennlig, tillater parallellisme og avlaster arbeid til den eksterne verten, ikke klienten.

Dette gir tre praktiske fordeler: bedre ytelse i massive henrettelser, mindre friksjon i nettverk med restriktive regler og en sikkerhetsmodell som er konsistent med Kerberos/HTTPS. Videre, ved å ikke være avhengig av hver cmdlet for å implementere sin egen fjernstyring, Remoting Det fungerer for alle manus eller roller som er tilgjengelig på destinasjonen.

Som standard leveres nyere Windows-servere med fjernstyring aktivert; i Windows 10/11 du aktiverer den med en enkelt cmdlet. Og ja, du kan bruke alternative legitimasjonsdetaljer, vedvarende økter, tilpassede endepunkter og mer.

Merk: Fjernstyring er ikke synonymt med å åpne alt. Som standard, bare administratorer De kan koble til, og handlinger utføres under deres identitet. Hvis du trenger finjustert delegering, lar tilpassede endepunkter deg eksponere bare de viktigste kommandoene.

PowerShell-fjernstyringsarkitektur

Slik fungerer det inni: WinRM, WS-Man og porter

PowerShell Remoting fungerer i en klient-server-modell. Klienten sender WS-Management-forespørsler via HTTP (5985/TCP) eller HTTPS (5986/TCP)På målet lytter Windows Remote Management (WinRM)-tjenesten, løser endepunktet (øktkonfigurasjon) og er vert for PowerShell-økten i bakgrunnen (wsmprovhost.exe-prosessen), returnere serialiserte resultater til klienten i XML via SOAP.

Første gang du aktiverer Remoting, konfigureres lyttere, det aktuelle brannmurunntaket åpnes, og øktkonfigurasjoner opprettes. Fra PowerShell 6+ kan flere utgaver eksistere samtidig, og Aktiver PSRemoting Registrerer endepunkter med navn som gjenspeiler versjonen (for eksempel PowerShell.7 og PowerShell.7.xy).

Eksklusivt innhold - Klikk her  Hvordan fikser jeg ytelsesproblemer med Intego Mac Internet Security?

Hvis du bare tillater HTTPS i miljøet ditt, kan du opprette en trygg lytter med et sertifikat utstedt av en klarert CA (anbefales). Alternativt er det å bruke TrustedHosts på en begrenset, risikobevisst måte, for arbeidsgruppescenarier eller datamaskiner utenfor domenet.

Merk at Powershell Remoting kan sameksistere med cmdleter med -ComputerName, men Microsoft fremmer WS-Man som standard og fremtidssikret måte for fjernadministrasjon.

Aktivering av PowerShell-fjernstyring og nyttige parametere

På Windows åpner du bare PowerShell som administrator og kjører Aktiver PSRemotingSystemet starter WinRM, konfigurerer autostart, aktiverer lytteren og oppretter de riktige brannmurreglene. På klienter med en offentlig nettverksprofil kan du bevisst tillate dette med -Hopp over nettverksprofilsjekk (og deretter forsterke med spesifikke regler):

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

 

Syntaksen tillater også, -Bekrefte y -Hva om for endringskontroll. Husk: Den er bare tilgjengelig på Windows, og du må kjøre den forhøyede konsollen. Reglene som opprettes varierer mellom Server- og Client-utgaver, spesielt på offentlige nettverk, der de som standard er begrenset til det lokale delnettet med mindre du utvider omfanget (for eksempel med Set-NetFirewallRule).

For å liste opp allerede innspilte øktkonfigurasjoner og bekrefte at alt er klart, bruk Get-PSSessionConfigurationHvis PowerShell.x- og, hvis aktuelt, arbeidsflytendepunktene vises, er Remoting-rammeverket operativt.

Ekstern økt med PowerShell

Bruksmoduser: 1 til 1, 1 til mange og vedvarende økter

Når du trenger en interaktiv konsoll på én datamaskin, kan du henvende deg til Enter-PSSessionLedeteksten vil vises, og alt du utfører vil gå til den eksterne verten. Du kan bruke påloggingsinformasjonen din på nytt med Get-Credential for å unngå å måtte skrive den inn på nytt hele tiden:

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

Hvis det du ønsker er å sende kommandoer til flere datamaskiner samtidig, er verktøyet det Påkall-Kommando med en scriptblock. Som standard starter den opptil 32 samtidige tilkoblinger (kan justeres med -ThrottleLimit). Resultatene returneres som deserialiserte objekter (uten «live»-metoder):

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

Trenger du å kalle en metode som .Stop() eller .Start()? Gjør det. inne i skriptblokken i den eksterne konteksten, ikke det lokale deserialiserte objektet, og det er det. Hvis det finnes en tilsvarende cmdlet (Stop-Service/Start-Service), er det vanligvis å foretrekke å bruke den for klarhetens skyld.

For å unngå kostnadene ved å starte og avslutte økter på hver samtale, opprett en Vedvarende PSSession og bruk den på nytt på tvers av flere kall. Bruk New-PSSession til å opprette tilkoblingen, og bruk Invoke-Command-Session til å bruke tunnelen på nytt. Ikke glem å lukke den med Remove-PSSession når du er ferdig.

Serialisering, grenser og god praksis

En viktig detalj: når du reiser, blir objekter "+flate" og ankommer som deserialiserte øyeblikksbilder, med egenskaper, men ingen metoder. Dette er bevisst og sparer båndbredde, men det betyr at du ikke kan bruke medlemmer som utfører logikk (som .Kill()) på den lokale kopien. Løsningen er åpenbar: kall på disse metodene. eksternt og hvis du bare trenger bestemte felt, filtrer med Select-Object for å sende mindre data.

Eksklusivt innhold - Klikk her  Hvordan unngå blokkeringer og sanksjoner på TikTok?

I skript, unngå Enter-PSSession (beregnet for interaktiv bruk) og bruk Invoke-Command med skriptblokker. Hvis du forventer flere kall eller trenger å bevare tilstand (variabler, importerte moduler), bruk vedvarende økter og, hvis aktuelt, koble dem fra/til igjen med Disconnect-PSSession/Connect-PSSession i PowerShell 3.0+.

Autentisering, HTTPS og scenarier utenfor domenet

I et domene er innebygd autentisering Kerberos Og alt flyter. Når enheten ikke kan bekrefte servernavnet, eller du kobler til en CNAME-IP eller et alias, trenger du ett av disse to alternativene: 1) Lytter HTTPS med sertifikat utstedt av en CA du stoler på, eller 2) legg til destinasjonen (navn eller IP) i TrustedHosts og bruk legitimasjonDet andre alternativet deaktiverer gjensidig autentisering for den verten, slik at omfanget reduseres til et minimum som er nødvendig.

Å sette opp en HTTPS-lytter krever et sertifikat (ideelt sett fra din PKI eller en offentlig CA), installert i teamlageret og bundet til WinRM. Port 5986/TCP åpnes deretter i brannmuren og brukes fra klienten. -Bruk SSL i eksterne cmdleter. For autentisering av klientsertifikater kan du tilordne et sertifikat til en lokal konto og koble til -SertifikatTommelavtrykk (Enter-PSSession godtar ikke dette direkte; opprett økten først med New-PSSession.)

Det andre hoppet og delegering av legitimasjon

Det berømte «dobbelthoppet» oppstår når du, etter å ha koblet til en server, trenger at serveren skal få tilgang til en tredje ressurs på dine vegne (f.eks. en SMB-deling). Det finnes to måter å tillate dette på: CredSSP og ressursbasert, begrenset Kerberos-delegering.

med CredSSP Du lar klienten og mellomleddet eksplisitt delegere legitimasjon, og du angir en policy (GPO) for å tillate delegering til bestemte datamaskiner. Det er raskt å konfigurere, men mindre sikkert fordi legitimasjonen sendes i klartekst i den krypterte tunnelen. Begrens alltid kilder og destinasjoner.

Det foretrukne alternativet innen domenet er begrenset Kerberos-delegering (ressursbasert begrenset delegering) i moderne AD. Dette lar endepunktet stole på å motta delegering fra mellompunktet for spesifikke tjenester, og unngår å eksponere identiteten din ved den første tilkoblingen. Krever nyere domenekontrollere og en oppdatert RSAT.

Tilpassede endepunkter (øktkonfigurasjoner)

En av fordelene med Remoting er å kunne registrere tilkoblingspunkter med skreddersydde funksjoner og grenserFørst genererer du en fil med New-PSSessionConfigurationFile (moduler som skal forhåndslastes, synlige funksjoner, aliaser, ExecutionPolicy, LanguageMode osv.), og deretter registrerer du den med Register-PSSessionConfiguration, hvor du kan angi Kjør som legitimasjon og tillatelser (SDDL eller GUI-grensesnitt med -ShowSecurityDescriptorUI).

For sikker delegering, eksponer bare det som er nødvendig med -VisibleCmdlets/-VisibleFunctions og deaktiver fri skripting hvis det er aktuelt med SpråkmodusBegrenset språk eller NoLanguage. Hvis du lar FullLanguage stå, kan noen bruke en skriptblokk til å aktivere ueksponerte kommandoer, som, kombinert med RunAs, det ville være et hullDesign disse endepunktene med en fintannet kam og dokumenter omfanget deres.

Domener, gruppepolicyobjekter og gruppeprogrammer

I AD kan du distribuere Powershell Remoting i stor skala med GPO: tillat automatisk konfigurasjon av WinRM-lyttere, sett tjenesten til Automatisk, og opprett brannmurunntaket. Husk at GPO-er endrer innstillinger, men de slår ikke alltid på tjenesten umiddelbart; noen ganger må du starte på nytt eller tvinge frem en gpupdate.

Eksklusivt innhold - Klikk her  Slik kjenner du Gmail-passordet ditt

I arbeidsgrupper (ikke-domener), konfigurer Remoting med Aktiver PSRemoting, sett TrustedHosts på klienten (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) og bruk lokale påloggingsinformasjoner. For HTTPS kan du montere selvsignerte sertifikater, men det anbefales å bruke en klarert CA og validere navnet som du vil bruke i -ComputerName i sertifikatet (CN/SAN-samsvar).

Viktige cmdleter og syntaks

En håndfull kommandosoldater dekker 90 % av daglige scenarierFor å aktivere/deaktivere:

Enable-PSRemoting    
Disable-PSRemoting

Interaktiv økt 1 til 1 og utgang:

Enter-PSSession -ComputerName SEC504STUDENT 
Exit-PSSession

1 til mange, med parallellisme og legitimasjon:

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

Vedvarende økter og gjenbruk:

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

Testing og WinRM Nyttig:

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

Praktiske notater om brannmur, nettverk og porter

Åpne 5985/TCP for HTTP og 5986/TCP for HTTPS på måldatamaskinen og på enhver mellomliggende brannmurPå Windows-klienter oppretter Enable-PSRemoting regler for domene- og private profiler. For offentlige profiler er det begrenset til det lokale delnettet med mindre du endrer omfanget med Set-NetFirewallRule -RemoteAddress Any (en verdi du kan vurdere basert på risikoen).

Hvis du bruker SOAR/SIEM-integrasjoner som kjører eksterne kommandoer (f.eks. fra XSOAR), må du sørge for at serveren har DNS-oppløsning til vertene, tilkobling til 5985/5986 og påloggingsinformasjon med tilstrekkelige lokale tillatelser. I noen tilfeller kan NTLM/Basic-autentisering kreve justering (f.eks. bruk av en lokal bruker i Basic med SSL).

Aktiver-PSRemoting-parametere (driftssammendrag)

-Bekreft ber om bekreftelse før utførelse; -Tving ignorerer advarslene og gjør de nødvendige endringene; -SkipNetworkProfileCheck aktiverer fjernstyring på offentlige klientnettverk (begrenset som standard til det lokale delnettet); -WhatIf viser deg hva som ville skjedd uten å bruke endringer. I tillegg, som alle standard cmdlet, støtter den vanlige parametere (-Verbose, -ErrorAction, osv.).

Husk at «Aktiver» ikke oppretter HTTPS-lyttere eller -sertifikater for deg. Hvis du trenger ende-til-ende-kryptering fra starten av og autentisering basert på sertifisert, konfigurer HTTPS-lytteren og valider CN/SAN mot navnet du skal bruke i -ComputerName.

Nyttige WinRM- og PowerShell-fjernstyringskommandoer

Noen viktige sengetøy for dag til dag:

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

Når du administrerer Windows i stor skala, lar Remoting deg gå fra "datamaskin-til-datamaskin" til en deklarativ og sikker tilnærming. Ved å kombinere vedvarende økter, sterk autentisering (Kerberos/HTTPS), begrensede endepunkter og tydelige spor for diagnostikk, du får fart og kontroll uten å ofre sikkerhet eller revisjon. Hvis du også standardiserer GPO-aktivering og mestrer spesialtilfeller (TrustedHosts, double hop, sertifikater), vil du ha en solid ekstern plattform for daglig drift og hendelsesrespons.

usynlig skadelig programvare
Relatert artikkel:
Slik beskytter du PC-en din mot usynlig skadelig programvare som XWorm og NotDoor