Як кіраваць ПК з мабільнага тэлефона з дапамогай PowerShell Remoting

Апошняе абнаўленне: 15/10/2025

  • Аддаленая сувязь выкарыстоўвае WinRM/WS-Man (HTTP/HTTPS) і дазваляе сеансы "1 да 1", "1 да многіх" і пастаянныя сеансы з элементамі кіравання бяспекай.
  • Enable-PSRemoting наладжвае службу, слухачы і брандмаўэр; HTTPS патрабуе дзеючага сертыфіката і супадзення CN/SAN.
  • Вынікі вяртаюцца дэсерыялізаванымі; метады выклікаюцца ўнутры аддаленага блока сцэнарыяў, а для дэталёвага дэлегавання выкарыстоўваюцца карыстальніцкія канчатковыя кропкі.
Аддаленае кіраванне PowerShell

Магчыма, вы ўжо аўтаматызуеце многія задачы лакальна з дапамогай PowerShell, але дзе вы сапраўды... PowerShell Remoting мае значэнне Гэта адбываецца, калі вы выконваеце каманды на аддаленых машынах, некалькіх ці сотнях, інтэрактыўна або паралельна. Гэтая тэхналогія, даступная з версіі Windows PowerShell 2.0 і палепшаная з версіі 3.0, заснавана на WS-Management (WinRM) і пераўтварае PowerShell у надзейным, маштабуемым і бяспечным канале дыстанцыйнага кіравання.

Перш за ўсё, важна зразумець дзве ключавыя ідэі: камандлеты з -Параметр ComputerName (напрыклад, Get-Process або Get-Service) не з'яўляюцца доўгатэрміновым шляхам, рэкамендаваным Microsoft, і PowerShell Remoting не працуе як «ўзлом». Фактычна, забяспечвае ўзаемную аўтэнтыфікацыю, вядзе журналы аўдыту і паважае вашы звычайныя дазволы, не захоўваючы ўліковыя дадзеныя і не запускаючы чароўным чынам што-небудзь з суперпрывілеямі.

Што такое PowerShell Remoting і навошта яго выкарыстоўваць?

з PowerShell Remoting вы можаце выконваць практычна любую каманду дыстанцыйна якія можна было б запусціць у лакальным сеансе, ад запыту службаў да разгортвання канфігурацый, і рабіць гэта на сотнях кампутараў адначасова. У адрозненне ад камандлетаў, якія прымаюць -ComputerName (многія выкарыстоўваюць DCOM/RPC), дыстанцыйнае кіраванне перамяшчаецца праз WS-Man (HTTP/HTTPS), які больш зручны для брандмаўэра, дазваляе паралелізм і перакладае працу на аддалены хост, а не на кліента.

Гэта прыводзіць да трох практычных пераваг: лепшай прадукцыйнасці пры масавых пакараннях смерцю, меншае трэнне ў сетках з абмежавальнымі правіламі і мадэллю бяспекі, якая адпавядае Kerberos/HTTPS. Акрамя таго, не залежачы ад кожнага камандлета для рэалізацыі ўласнага аддаленага доступу, дыстанцыйнае кіраванне Гэта працуе для любога сцэнарыя або ролі які даступны ў пункце прызначэння.

Па змаўчанні ў апошніх версіях сервераў Windows уключана функцыя аддаленага кіравання; у Windows 10/11 вы актывуеце яго з дапамогай аднаго камандлета. І так, вы можаце выкарыстоўваць альтэрнатыўныя ўліковыя дадзеныя, пастаянныя сесіі, карыстальніцкія канчатковыя кропкі і многае іншае.

Заўвага: Аддаленае кіраванне не з'яўляецца сінонімам адкрыцця ўсяго. Па змаўчанні толькі адміністратары Яны могуць падключацца, і дзеянні выконваюцца ад імя іх асобы. Калі вам патрэбна дэталёвая дэлегацыя, карыстальніцкія канчатковыя кропкі дазваляюць выдаваць толькі неабходныя каманды.

Архітэктура аддаленага доступу PowerShell

Як гэта працуе ўнутры: WinRM, WS-Man і парты

PowerShell Remoting працуе па мадэлі кліент-сервер. Кліент адпраўляе запыты WS-Management праз HTTP (5985/TCP) або HTTPS (5986/TCP)На мэтавым серверы служба выдаленага кіравання Windows (WinRM) праслухоўвае, вызначае канчатковую кропку (канфігурацыю сеансу) і размяшчае сеанс PowerShell у фонавым рэжыме (працэс wsmprovhost.exe). вяртанне серыялізаваных вынікаў кліенту у XML праз SOAP.

Пры першым уключэнні аддаленай працы наладжваюцца слухачы, адкрываецца адпаведнае выключэнне брандмаўэра і ствараюцца канфігурацыі сеансаў. Пачынаючы з PowerShell 6+, суіснуюць некалькі рэдакцый, і Уключыць PSRemoting Рэгіструе канчатковыя кропкі з імёнамі, якія адлюстроўваюць версію (напрыклад, PowerShell.7 і PowerShell.7.xy).

Эксклюзіўны кантэнт - націсніце тут  Як мне выправіць праблемы з прадукцыйнасцю Intego Mac Internet Security?

Калі ў вашым асяроддзі дазволены толькі HTTPS, вы можаце стварыць бяспечны слухач з сертыфікатам, выдадзеным давераным цэнтрам сертыфікацыі (рэкамендуецца). Акрамя таго, ёсць і альтэрнатыва — выкарыстоўваць TrustedHosts абмежаваным чынам з улікам рызыкі для сцэнарыяў рабочых груп або камп'ютараў, якія не адносяцца да дамена.

Звярніце ўвагу, што Powershell Remoting можа суіснаваць з камандлетамі з -ComputerName, але Microsoft прасоўвае WS-Man як стандартны і надзейны спосаб дыстанцыйнага адміністравання.

Уключэнне PowerShell Remoting і карысныя параметры

У Windows проста адкрыйце PowerShell ад імя адміністратара і запусціце Уключыць PSRemotingСістэма запускае WinRM, наладжвае аўтазапуск, уключае слухач і стварае адпаведныя правілы брандмаўэра. На кліентах з профілем публічнай сеткі вы можаце наўмысна дазволіць гэта з дапамогай -ПраверкаПрофіляСеткіПраверка (а затым падмацаваць пэўнымі правіламі):

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

 

Сінтаксіс таксама дазваляе, -Пацвердзіць y -Што, калі для кантролю змяненняў. Памятайце: Даступна толькі ў Windows, і вы павінны запусціць кансоль з павышанымі правамі. Створаныя правілы адрозніваюцца ў сервернай і кліенцкай версіях, асабліва ў публічных сетках, дзе па змаўчанні яны абмежаваныя лакальнай падсеткай, калі вы не пашырыце вобласць дзеяння (напрыклад, з дапамогай Set-NetFirewallRule).

Каб праглядзець ужо запісаныя канфігурацыі сеансу і пацвердзіць, што ўсё гатова, выкарыстоўвайце Get-PSSessionConfigurationКалі з'яўляюцца канчатковыя кропкі PowerShell.x і Workflow, гэта азначае, што платформа аддаленага доступу працуе.

Аддалены сеанс з PowerShell

Рэжымы выкарыстання: 1 да 1, 1 да многіх і пастаянныя сесіі

Калі вам патрэбна інтэрактыўная кансоль на адным кампутары, звярніцеся да Enter-PSSessionЗ'явіцца запыт, і ўсё, што вы выканаеце, будзе адпраўляцца на аддалены хост. Вы можаце паўторна выкарыстоўваць уліковыя дадзеныя з дапамогай Get-Credential, каб пазбегнуць пастаяннага паўторнага ўводу:

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

Калі вы шукаеце магчымасць адпраўляць каманды некалькім кампутарам адначасова, гэты інструмент... Invoke-Command з дапамогай скрыптблока. Па змаўчанні запускаецца да 32 адначасовых злучэнняў (можна наладзіць з дапамогай -ThrottleLimit). Вынікі вяртаюцца ў выглядзе дэсерыялізаваныя аб'екты (без «жывых» метадаў):

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

Патрэбна выклікаць метад накшталт .Stop() або .Start()? Зрабіце гэта. унутры блока сцэнарыя у аддаленым кантэксце, а не лакальны дэсерыялізаваны аб'ект, і ўсё. Калі ёсць эквівалентны камандлет (Stop-Service/Start-Service), звычайна пераважней выкарыстоўваць яго для яснасці.

Каб пазбегнуць выдаткаў на пачатак і завяршэнне сеансаў падчас кожнага званка, стварыце Пастаянны PSSession і паўторна выкарыстоўваць яго падчас некалькіх выклікаў. Выкарыстоўвайце New-PSSession для стварэння злучэння і Invoke-Command-Session для паўторнага выкарыстання тунэля. Не забудзьцеся закрыць яго з дапамогай Remove-PSSession пасля завяршэння.

Серыялізацыя, абмежаванні і добрыя практыкі

Важная дэталь: падчас падарожжа аб'екты "+сплюшчваюцца" і прыбываюць як дэсерыялізаваныя здымкі, з уласцівасцямі, але без метадаў. Гэта зроблена наўмысна і эканоміць прапускную здольнасць, але гэта азначае, што вы не можаце выкарыстоўваць члены, якія выконваюць логіку (напрыклад, .Kill()) на лакальнай копіі. Рашэнне відавочнае: выклікаць гэтыя метады. дыстанцыйна а калі вам патрэбныя толькі пэўныя палі, фільтруйце з дапамогай Select-Object, каб адпраўляць менш дадзеных.

Эксклюзіўны кантэнт - націсніце тут  Як пазбегнуць блакіровак і санкцый на TikTok?

У скрыптах пазбягайце Enter-PSSession (прызначана для інтэрактыўнага выкарыстання) і выкарыстоўвайце Invoke-Command з блокамі скрыптоў. Калі вы чакаеце некалькі выклікаў або вам трэба захаваць стан (зменныя, імпартаваныя модулі), выкарыстоўваць пастаянныя сесіі і, пры неабходнасці, адключыць/зноў падключыць іх з дапамогай Disconnect-PSSession/Connect-PSSession у PowerShell 3.0+.

Аўтэнтыфікацыя, HTTPS і пазадаменныя сцэнарыі

У дамене ўбудаваная аўтэнтыфікацыя Kerberos І ўсё працуе. Калі прылада не можа праверыць імя сервера, або вы падключаецеся да IP-адраса або псеўданіма CNAME, вам патрэбен адзін з гэтых двух варыянтаў: 1) Слухач HTTPS з сертыфікатам выдадзены цэнтрам сертыфікацыі, якому вы давяраеце, або 2) дадайце пункт прызначэння (імя або IP-адрас) у TrustedHosts і выкарыстоўваць уліковыя дадзеныяДругі варыянт адключае ўзаемную аўтэнтыфікацыю для гэтага хаста, таму ён звужае вобласць дзеяння да неабходнага мінімуму.

Для налады HTTPS-праслухоўшчыка патрабуецца сертыфікат (у ідэале ад вашай PKI або публічнага цэнтра сертыфікацыі), усталяваны ў сховішчы каманд і прывязаны да WinRM. Затым у брандмаўэры адкрываецца порт 5986/TCP, які выкарыстоўваецца з боку кліента. -Выкарыстоўвайце SSL у аддаленых камандлетах. Для аўтэнтыфікацыі кліенцкага сертыфіката вы можаце прывязаць сертыфікат да лакальнага ўліковага запісу і падключыцца да яго. -Адбітак вялікага пальца сертыфіката (Enter-PSSession не прымае гэта напрамую; спачатку стварыце сесію з дапамогай New-PSSession.)

Другі скачок і дэлегаванне паўнамоцтваў

Знакаміты «падвойны скачок» з'яўляецца, калі пасля падключэння да сервера вам патрэбен доступ гэтага сервера да трэці рэсурс ад вашага імя (напрыклад, агульны рэсурс SMB). Існуе два падыходы да гэтага: CredSSP і дэлегаванне Kerberos з абмежаваннямі на аснове рэсурсаў.

з CredSSP Вы дазваляеце кліенту і пасярэдніку відавочна дэлегаваць уліковыя дадзеныя і ўстанаўліваеце палітыку (GPO), якая дазваляе дэлегаванне пэўным кампутарам. Гэта хутка наладзіць, але менш бяспечна, бо ўліковыя дадзеныя перадаюцца ў выглядзе адкрытага тэксту ў зашыфраваным тунэлі. Заўсёды абмяжоўвайце крыніцы і прызначэнні.

Пераважнай альтэрнатывай у дамене з'яўляецца абмежаванае дэлегаванне Kerberos (дэлегаванне на аснове рэсурсаў з абмежаваннямі) у сучаснай Active Directory. Гэта дазваляе канцавой кропцы спадзявацца на атрыманне дэлегавання ад прамежкавай кропкі для пэўных службаў, пазбягаючы раскрыцця вашай асобы пры першапачатковым падключэнні. Патрабуюцца апошнія кантролеры дамена і абноўлены RSAT.

Карыстальніцкія канчатковыя кропкі (канфігурацыі сеансаў)

Адной з перлін дыстанцыйнага кіравання з'яўляецца магчымасць рэгістрацыі кропак падключэння з індывідуальныя магчымасці і абмежаванніСпачатку вы ствараеце файл з дапамогай New-PSSessionConfigurationFile (модулі для папярэдняй загрузкі, бачныя функцыі, псеўданімы, ExecutionPolicy, LanguageMode і г.д.), а затым рэгіструеце яго з дапамогай Register-PSSessionConfiguration, дзе вы можаце задаць RunAsCredential і дазволы (інтэрфейс SDDL або графічнага інтэрфейсу з -ShowSecurityDescriptorUI).

Для бяспечнага дэлегавання адкрывайце толькі неабходнае з дапамогай -VisibleCmdlets/-VisibleFunctions і адключайце бясплатныя скрыпты, калі гэта неабходна, з дапамогай Рэжым мовы — абмежаваная мова або NoLanguage. Калі пакінуць FullLanguage, хтосьці можа выкарыстаць блок скрыпта для выкліку неадкрытых каманд, якія ў спалучэнні з RunAs, гэта была б дзіркаРаспрацуйце гэтыя канчатковыя кропкі з дапамогай дробнага грэбня і задакументуйце іх аб'ём.

Дамены, аб'екты групавой палітыкі і групавое праграмнае забеспячэнне

У AD вы можаце разгарнуць Powershell Remoting у вялікіх маштабах з дапамогай GPO: дазволіць аўтаматычную канфігурацыю праслухоўшчыкаў WinRM, усталяваць службу на аўтаматычны рэжымі стварыце выключэнне брандмаўэра. Памятайце, што аб'екты групавой палітыкі змяняюць налады, але яны не заўсёды ўключаюць службу імгненна; часам вам трэба перазапусціць або прымусова выканаць абнаўленне gpupdate.

Эксклюзіўны кантэнт - націсніце тут  Як даведацца свой пароль Gmail

У рабочых групах (не даменных) наладзьце дыстанцыйнае кіраванне з дапамогай Уключыць PSRemoting, усталюйце TrustedHosts на кліенце (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) і выкарыстоўвайце лакальныя ўліковыя дадзеныя. Для HTTPS можна падключыць самападпісаныя сертыфікаты, хоць рэкамендуецца выкарыстоўваць давераны ЦС і пацвердзіць назву які вы будзеце выкарыстоўваць у -ComputerName у сертыфікаце (супадзенне CN/SAN).

Ключавыя камандлеты і сінтаксіс

Некалькі камандас прыкрываюць 90% штодзённых сцэнарыяўКаб актываваць/дэактываваць:

Enable-PSRemoting    
Disable-PSRemoting

Інтэрактыўная сесія 1 да 1 і выхад:

Enter-PSSession -ComputerName SEC504STUDENT 
Exit-PSSession

1 да многіх, з паралелізмам і паўнамоцтвамі:

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

Пастаянныя сесіі і паўторна выкарыстоўваць:

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

Тэставанне і WinRM карысна:

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

Практычныя заўвагі па брандмаўэры, сетцы і партах

Адкрыйце 5985/TCP для HTTP і 5986/TCP для HTTPS на мэтавым кампутары і на любы прамежкавы брандмаўэрНа кліентах Windows Enable-PSRemoting стварае правілы для даменных і прыватных профіляў; для публічных профіляў правілы абмежаваныя лакальнай падсеткай, калі вы не зменіце вобласць дзеяння з дапамогай Set-NetFirewallRule -RemoteAddress Any (значэнне, якое вы можаце ацаніць у залежнасці ад рызыкі).

Калі вы выкарыстоўваеце інтэграцыі SOAR/SIEM, якія запускаюць дыстанцыйныя каманды (напрыклад, з XSOAR), пераканайцеся, што сервер мае Разгадванне DNS да хастоў, падключэнне да 5985/5986 і ўліковыя дадзеныя з дастатковымі лакальнымі дазволамі. У некаторых выпадках можа спатрэбіцца карэкціроўка аўтэнтыфікацыі NTLM/Basic (напрыклад, выкарыстанне лакальнага карыстальніка ў Basic з SSL).

Параметры Enable-PSRemoting (аперацыйны звод)

-Confirm запытвае пацверджанне перад выкананнем; -Force ігнаруе папярэджанні і ўнясіце неабходныя змены; -SkipNetworkProfileCheck дазваляе дыстанцыйнае кіраванне ў публічных кліенцкіх сетках (па змаўчанні абмежавана лакальнай падсеткай); -WhatIf паказвае, што адбудзецца без ужывання змяненняў. Акрамя таго, як і любы стандартны камандлет, ён падтрымлівае агульныя параметры (-Падрабязны, -ДзейнічаннеПрыПамылцыі г.д.).

Памятайце, што опцыя «Уключыць» не стварае для вас HTTPS-слухачы або сертыфікаты; калі вам патрэбна скразное шыфраванне з самага пачатку і аўтэнтыфікацыя на аснове завераны, наладзьце HTTPS-праслухоўшчык і праверце CN/SAN на адпаведнасць імені, якое вы будзеце выкарыстоўваць у -ComputerName.

Карысныя каманды дыстанцыйнага кіравання WinRM і PowerShell

некаторыя неабходныя рэчы пры ложку для паўсядзённага жыцця:

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

Пры кіраванні Windows у вялікіх маштабах дыстанцыйнае кіраванне дазваляе перайсці ад «камп'ютар-камп'ютар» да дэкларатыўнага і бяспечнага падыходу. Спалучаючы пастаянныя сесіі, строгую аўтэнтыфікацыю (Kerberos/HTTPS), абмежаваныя канчатковыя кропкі і выразныя трасіроўкі для дыягностыкі, вы атрымліваеце хуткасць і кантроль без шкоды для бяспекі або аўдыту. Калі вы таксама стандартызуеце актывацыю GPO і асвоіце спецыяльныя выпадкі (TrustedHosts, падвойны пераход, сертыфікаты), у вас будзе надзейная дыстанцыйная платформа для штодзённых аперацый і рэагавання на інцыдэнты.

нябачнае шкоднаснае праграмнае забеспячэнне
звязаныя артыкулы:
Як абараніць свой кампутар ад нябачных шкоднасных праграм, такіх як XWorm і NotDoor