Kā vadīt datoru no mobilā tālruņa, izmantojot PowerShell attālo pārvaldību

Pēdējā atjaunošana: 15/10/2025

  • Attālā piekļuve izmanto WinRM/WS-Man (HTTP/HTTPS) un nodrošina 1 pret 1, 1 pret daudziem un pastāvīgas sesijas ar drošības kontrolēm.
  • Iespējot PSRemotingu konfigurē pakalpojumu, klausītājus un ugunsmūri; HTTPS ir nepieciešams derīgs sertifikāts un CN/SAN atbilstība.
  • Rezultāti tiek atgriezti deserializēti; metodes tiek izsauktas attālā skriptbloka ietvaros, un pielāgoti galapunkti tiek izmantoti detalizētai deleģēšanai.
PowerShell attālinātā piekļuve

Jūs, iespējams, jau lokāli automatizējat daudzus uzdevumus, izmantojot PowerShell, bet kur jūs to īsti darāt? PowerShell attālinātā piekļuve rada atšķirību Tas notiek, kad komandas tiek izpildītas attālos datoros, neatkarīgi no tā, vai to ir nedaudz vai simtiem, interaktīvi vai paralēli. Šī tehnoloģija, kas ir pieejama kopš Windows PowerShell 2.0 versijas un uzlabota kopš 3.0 versijas, ir balstīta uz WS-Management (WinRM) un konvertē PowerShell robustā, mērogojamā un drošā attālās pārvaldības kanālā.

Pirmkārt, ir svarīgi saprast divas galvenās idejas: cmdlets ar -DatoraNosaukums parametrs (piemēram, Get-Process vai Get-Service) nav Microsoft ieteiktais ilgtermiņa ceļš, un PowerShell attālā vadība nedarbojas kā "uzlaušanas rīks". Patiesībā, nodrošina savstarpēju autentifikāciju, audita žurnālus un ievēro jūsu ierastās atļaujas, neuzglabājot akreditācijas datus vai maģiski nepalaižot neko ar super privilēģijām.

Kas ir PowerShell attālinātā piekļuve un kāpēc to lietot?

ar PowerShell Remoting var attālināti izpildīt gandrīz jebkuru komandu ko varētu palaist lokālā sesijā, sākot no pakalpojumu vaicāšanas līdz konfigurāciju izvietošanai, un darīt to simtiem datoru vienlaikus. Atšķirībā no cmdlet, kas pieņem -ComputerName (daudzi izmanto DCOM/RPC), attālinātā piekļuve ceļo, izmantojot WS-Man (HTTP/HTTPS), kas ir ugunsmūrim draudzīgāks, nodrošina paralēlismu un novirza darbu uz attālo resursdatoru, nevis klientu.

Tas sniedz trīs praktiskas priekšrocības: labāku sniegumu masveida izpildēs, mazāka berze tīklos ar ierobežojošiem noteikumiem un drošības modeli, kas atbilst Kerberos/HTTPS. Turklāt, nepaļaujoties uz katru cmdlet savas tālvadības ieviešanai, attālinātā vadība Tas darbojas jebkuram scenārijam vai lomai kas ir pieejams galamērķī.

Pēc noklusējuma jaunākajiem Windows serveriem ir iespējota attālinātā piekļuve; operētājsistēmā Windows 10/11 jūs to aktivizējat ar vienu cmdlet. Un jā, jūs varat izmantot alternatīvus akreditācijas datus, pastāvīgas sesijas, pielāgotus galapunktus un citas lietas.

Piezīme. Attālinātā piekļuve nenozīmē visa atvēršanu. Pēc noklusējuma tikai administratori Tie var izveidot savienojumu, un darbības tiek izpildītas ar to identitāti. Ja nepieciešama detalizēta deleģēšana, pielāgoti galapunkti ļauj atklāt tikai svarīgākās komandas.

PowerShell attālinātās piekļuves arhitektūra

Kā tas darbojas iekšpusē: WinRM, WS-Man un porti

PowerShell attālinātā piekļuve darbojas klienta-servera modelī. Klients nosūta WS-Management pieprasījumus, izmantojot HTTP (5985/TCP) vai HTTPS (5986/TCP)Mērķī Windows attālās pārvaldības (WinRM) pakalpojums klausās, nosaka galapunktu (sesijas konfigurācija) un fonā vieso PowerShell sesiju (process wsmprovhost.exe). serializētu rezultātu atgriešana klientam XML formātā, izmantojot SOAP.

Pirmo reizi iespējojot attālo piekļuvi, tiek konfigurēti klausītāji, tiek atvērts atbilstošais ugunsmūra izņēmums un izveidotas sesijas konfigurācijas. Sākot ar PowerShell 6+, pastāv līdzās vairāki izdevumi, un Iespējot PSRemotingu Reģistrē galapunktus ar nosaukumiem, kas atspoguļo versiju (piemēram, PowerShell.7 un PowerShell.7.xy).

Ekskluzīvs saturs — noklikšķiniet šeit  Globāls brīdinājums par kritisku ievainojamību pārlūkprogrammā Google Chrome: kas jums jāzina un kā sevi pasargāt

Ja savā vidē atļaujat tikai HTTPS, varat izveidot drošs klausītājs ar uzticamas sertifikācijas iestādes izsniegtu sertifikātu (ieteicams). Cita alternatīva ir izmantot TrustedHosts ierobežotā, risku apzinošā veidā darba grupu scenārijos vai datoriem, kas nav domēni.

Ņemiet vērā, ka Powershell attālinātā izmantošana var pastāvēt līdzās cmdlet ar -ComputerName, bet Microsoft virza WS-Man kā standarta un nākotnes prasībām atbilstošu attālinātās administrēšanas veidu.

PowerShell attālinātās vadības iespējošana un noderīgi parametri

Operētājsistēmā Windows vienkārši atveriet PowerShell kā administrators un palaidiet Iespējot PSRemotinguSistēma startē WinRM, konfigurē automātisko startēšanu, iespējo klausītāju un izveido atbilstošus ugunsmūra noteikumus. Klientiem ar publisku tīkla profilu to var apzināti atļaut ar -SkipNetworkProfileCheck (un pēc tam nostipriniet ar īpašiem noteikumiem):

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

 

Sintakse arī atļauj, -Apstiprināt y -Kas būtu, ja izmaiņu kontrolei. Atcerieties: Tas ir pieejams tikai operētājsistēmā Windows, un jums ir jāpalaiž privilēģētā konsole. Izveidotie noteikumi atšķiras servera un klienta izdevumos, īpaši publiskajos tīklos, kur pēc noklusējuma tie ir ierobežoti ar lokālo apakštīklu, ja vien nepaplašināt darbības jomu (piemēram, ar Set-NetFirewallRule).

Lai uzskaitītu jau ierakstītās sesijas konfigurācijas un apstiprinātu, ka viss ir gatavs, izmantojiet Iegūt PSSessionConfigurationJa tiek parādīts PowerShell.x un, ja piemērojams, darbplūsmas galapunkti, attālinātās lietošanas ietvars darbojas.

Attālā sesija ar PowerShell

Lietošanas režīmi: 1 pret 1, 1 pret daudz un pastāvīgas sesijas

Ja jums ir nepieciešama interaktīva konsole vienā datorā, vērsieties pie Enter-PSSessionParādīsies uzvedne, un viss, ko izpildīsiet, nonāks attālajā resursdatorā. Lai izvairītos no pastāvīgas akreditācijas datu atkārtotas ievadīšanas, varat tos atkārtoti izmantot, izmantojot Get-Credential:

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

Ja vēlaties vienlaikus nosūtīt komandas vairākiem datoriem, šis rīks ir Atsauces vadība ar skriptbloku. Pēc noklusējuma tas palaiž līdz 32 vienlaicīgiem savienojumiem (regulējams ar -ThrottleLimit). Rezultāti tiek atgriezti kā deserializēti objekti (bez “tiešraides” metodēm):

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

Vai nepieciešams izsaukt tādu metodi kā .Stop() vai .Start()? Izpildiet to. skriptbloka iekšpusē attālajā kontekstā, nevis lokālajā deserializētajā objektā, un viss. Ja pastāv līdzvērtīga cmdlet (Stop-Service/Start-Service), parasti skaidrības labad ieteicams to izmantot.

Lai izvairītos no sesiju sākšanas un pārtraukšanas izmaksām katrā zvanā, izveidojiet Pastāvīga PSSession un atkārtoti izmantojiet to vairākos izsaukumos. Izmantojiet New-PSSession, lai izveidotu savienojumu, un izmantojiet Invoke-Command-Session, lai atkārtoti izmantotu tuneli. Neaizmirstiet to aizvērt ar Remove-PSSession, kad esat pabeidzis.

Serializācija, ierobežojumi un laba prakse

Svarīga detaļa: ceļojot objekti "+saplacinās" un ierodas kā deserializēti momentuzņēmumi, ar īpašībām, bet bez metodēm. Tas ir apzināti un ietaupa joslas platumu, taču tas nozīmē, ka nevar izmantot elementus, kas izpilda loģiku (piemēram, .Kill()) lokālajā kopijā. Risinājums ir acīmredzams: izsaukt šīs metodes. attālināti un, ja nepieciešami tikai noteikti lauki, filtrējiet ar Select-Object, lai nosūtītu mazāk datu.

Ekskluzīvs saturs — noklikšķiniet šeit  Kā novērst failu bojājumus?

Skriptos izvairieties no Enter-PSSession (paredzēts interaktīvai lietošanai) un izmantojiet Invoke-Command ar skriptu blokiem. Ja paredzat vairākus izsaukumus vai ir nepieciešams saglabāt stāvokli (mainīgos, importētos moduļus), izmantot pastāvīgas sesijas un, ja nepieciešams, atvienojiet/atkārtoti pievienojiet tos, izmantojot Disconnect-PSSession/Connect-PSSession pakalpojumā PowerShell 3.0+.

Autentifikācija, HTTPS un scenāriji ārpus domēna

Domēnā vietējā autentifikācija ir Kerberos Un viss plūst. Ja ierīce nevar pārbaudīt servera nosaukumu vai jūs izveidojat savienojumu ar CNAME IP adresi vai aizstājvārdu, jums ir nepieciešama viena no šīm divām iespējām: 1) Klausītājs HTTPS ar sertifikātu izdevusi uzticama sertifikācijas iestāde, vai 2) pievienojiet galamērķi (nosaukumu vai IP adresi) TrustedHosts un izmantot akreditācijas datusOtrā opcija atspējo savstarpējo autentifikāciju šim resursdatoram, tādējādi samazinot darbības jomu līdz nepieciešamajam minimumam.

HTTPS klausītāja iestatīšanai ir nepieciešams sertifikāts (ideālā gadījumā no jūsu PKI vai publiskas sertificēšanas iestādes), kas instalēts komandas krātuvē un saistīts ar WinRM. Pēc tam ugunsmūrī tiek atvērts ports 5986/TCP un klienta pusē tiek izmantots. -Izmantojiet SSL attālās cmdlet komandās. Klienta sertifikāta autentifikācijai varat piesaistīt sertifikātu lokālajam kontam un izveidot savienojumu ar -Sertifikāta īkšķa nospiedums (Enter-PSSession to tieši nepieņem; vispirms izveidojiet sesiju ar New-PSSession.)

Otrais lēciens un pilnvaru deleģēšana

Slavenais “dubultais lēciens” rodas, kad pēc savienojuma izveides ar serveri jums ir nepieciešams, lai šis serveris piekļūtu trešais resurss jūsu vārdā (piemēram, SMB koplietošanas resursu). To var atļaut divos veidos: CredSSP un uz resursiem balstīta ierobežota Kerberos deleģēšana.

ar CredSSP Jūs ļaujat klientam un starpniekam skaidri deleģēt akreditācijas datus un iestatāt politiku (GPO), lai atļautu deleģēšanu konkrētiem datoriem. To ir ātri konfigurēt, bet tas ir mazāk droši, jo akreditācijas dati šifrētajā tunelī tiek pārvietoti skaidrā tekstā. Vienmēr ierobežojiet avotus un galamērķus.

Vēlamā alternatīva domēnā ir ierobežota Kerberos deleģēšana (resursu bāzes ierobežota deleģēšana) mūsdienu AD. Tas ļauj galapunktam paļauties uz deleģēšanas saņemšanu no centrālā punkta konkrētiem pakalpojumiem, izvairoties no jūsu identitātes atklāšanas sākotnējā savienojuma laikā. Nepieciešami jaunākie domēna kontrolleri un atjaunināts RSAT.

Pielāgoti galapunkti (sesijas konfigurācijas)

Viens no attālinātās lietošanas dārgumiem ir spēja reģistrēt savienojuma punktus ar pielāgotas iespējas un ierobežojumiVispirms ģenerējiet failu ar New-PSSessionConfigurationFile (moduļi iepriekšējai ielādei, redzamās funkcijas, aizstājvārdi, ExecutionPolicy, LanguageMode utt.) un pēc tam reģistrējiet to ar Register-PSSessionConfiguration, kur varat iestatīt Palaist kā akreditācijas datus un atļaujas (SDDL vai GUI saskarne ar -ShowSecurityDescriptorUI).

Lai nodrošinātu drošu deleģēšanu, atklājiet tikai nepieciešamo, izmantojot -VisibleCmdlets/-VisibleFunctions, un, ja nepieciešams, atspējojiet bezmaksas skriptēšanu ar Ierobežotā valoda vai NoLanguage. Ja atstāsiet FullLanguage, kāds varētu izmantot skripta bloku, lai izsauktu neatklātas komandas, kas apvienojumā ar RunAs tas būtu caurumsIzveidojiet šos galapunktus ar smalkzobu ķemmi un dokumentējiet to darbības jomu.

Domēni, GPO un grupprogrammatūra

AD vidē varat izvietot Powershell attālināto izmantošanu plašā mērogā, izmantojot GPO: atļaut WinRM klausītāju automātisku konfigurēšanu, iestatiet pakalpojumu uz Automātiskiun izveidojiet ugunsmūra izņēmumu. Atcerieties, ka GPO maina iestatījumus, taču tie ne vienmēr ieslēdz pakalpojumu uzreiz; dažreiz ir nepieciešams restartēt vai piespiedu kārtā veikt gpupdate.

Ekskluzīvs saturs — noklikšķiniet šeit  Kā izmantot Norton Mobile Security?

Darba grupās (nevis domēnā) konfigurējiet attālināto piekļuvi ar Iespējot PSRemotingu, iestatiet TrustedHosts klientam (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) un izmantojiet lokālos akreditācijas datus. HTTPS gadījumā varat pievienot pašparakstītus sertifikātus, lai gan ieteicams izmantot uzticamu sertifikācijas iestādi un apstiprināt nosaukumu ko izmantosiet sertifikātā sadaļā -ComputerName (CN/SAN atbilstība).

Galvenie cmdlet un sintakse

Saujiņa desantnieku sedz 90% ikdienas scenārijuLai aktivizētu/deaktivizētu:

Enable-PSRemoting    
Disable-PSRemoting

Interaktīva sesija 1 pret 1 un izeja:

Enter-PSSession -ComputerName SEC504STUDENT 
Exit-PSSession

1 līdz daudz, ar paralēlismu un akreditācijām:

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

Pastāvīgas sesijas un atkārtota izmantošana:

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

Testēšana un WinRM Noderīgi:

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

Praktiskas piezīmes par ugunsmūri, tīklu un portiem

Atveriet 5985/TCP HTTP protokolam un 5986/TCP HTTPS protokolam mērķa datorā un jebkura starpposma ugunsmūraWindows klientos Enable-PSRemoting izveido noteikumus domēna un privātajiem profiliem; publiskajiem profiliem tas ir ierobežots līdz lokālajam apakštīklam, ja vien nemaināt tvērumu ar Set-NetFirewallRule -RemoteAddress Any (vērtību varat novērtēt, pamatojoties uz savu risku).

Ja izmantojat SOAR/SIEM integrācijas, kas palaiž attālinātas komandas (piemēram, no XSOAR), pārliecinieties, vai serverim ir DNS izšķirtspēja ar resursdatoriem, savienojamību ar 5985/5986 un akreditācijas datus ar pietiekamām lokālām atļaujām. Dažos gadījumos NTLM/Basic autentifikācijai var būt nepieciešama pielāgošana (piemēram, lokāla lietotāja izmantošana Basic režīmā ar SSL).

Iespējot PSRemoting parametrus (darbības kopsavilkums)

-Apstiprināt pirms izpildes pieprasa apstiprinājumu; -Piespiest ignorē brīdinājumus un veiciet nepieciešamās izmaiņas; - SkipNetworkProfileCheck iespējo attālinātu piekļuvi publiskajiem klientu tīkliem (pēc noklusējuma ierobežots līdz lokālajam apakštīklam); - WhatIf parāda, kas notiktu, nelietojot izmaiņas. Turklāt, tāpat kā jebkura standarta cmdlet, tā atbalsta kopīgi parametri (-Dienvidu, -KļūdasAction utt.).

Atcerieties, ka opcija “Iespējot” neizveido HTTPS klausītājus vai sertifikātus; ja jums ir nepieciešama pilnīga šifrēšana no paša sākuma un autentifikācija, kuras pamatā ir sertifikāti, konfigurējiet HTTPS klausītāju un pārbaudiet CN/SAN attiecībā pret nosaukumu, ko izmantosiet -ComputerName.

Noderīgas WinRM un PowerShell attālās piekļuves komandas

daži svarīgākie naktsgaldiņa piederumi ikdienai:

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

Pārvaldot Windows plašā mērogā, attālinātā pārvaldība ļauj pāriet no “dators-dators” uz deklaratīvu un drošu pieeju. Apvienojot pastāvīgas sesijas, spēcīgu autentifikāciju (Kerberos/HTTPS), ierobežotus galapunktus un skaidras izsekošanas datus diagnostikai, jūs iegūstat ātrumu un kontroli neupurējot drošību vai auditēšanu. Ja jūs arī standartizējat GPO aktivizāciju un apgūstat īpašus gadījumus (TrustedHosts, dubultā pāreja, sertifikāti), jums būs stabila attālināta platforma ikdienas darbībām un incidentu reaģēšanai.

neredzama ļaunprogrammatūra
saistīto rakstu:
Kā aizsargāt datoru no neredzamas ļaunprogrammatūras, piemēram, XWorm un NotDoor