PowerShell Remoting аркылуу компьютериңизди уюлдук телефонуңуздан кантип башкаруу керек

Акыркы жаңыртуу: 15/10/2025

  • Алыстан башкаруу WinRM/WS-Man (HTTP/HTTPS) колдонот жана коопсуздукту көзөмөлдөө каражаттары менен 1ден 1ге, 1ден көпкө жана туруктуу сеанстарга мүмкүндүк берет.
  • Enable-PSRemoting кызматты, угуучуларды жана брандмауэрди конфигурациялайт; HTTPS жарактуу тастыктаманы жана CN/SAN дал келүүсүн талап кылат.
  • Натыйжалар сериядан чыгарылып кайтарылат; методдор алыскы скрипт блогунун ичинде чакырылат жана ыңгайлаштырылган акыркы чекиттер майда-барат делегация үчүн колдонулат.
PowerShell Remoting

Сиз буга чейин эле PowerShell менен көптөгөн тапшырмаларды локалдуу түрдө автоматташтырсаңыз болот, бирок чындап эле кайда PowerShell Remoting айырманы түзөт Бул алыскы машиналарда, бир нече же жүздөгөн, интерактивдүү же параллелдүү түрдө буйруктарды аткарганыңызда. Бул технология Windows PowerShell 2.0ден бери жеткиликтүү жана 3.0ден бери өркүндөтүлгөн, WS-Management'ке (WinRM) негизделген жана PowerShell бекем, масштабдуу жана коопсуз алыстан башкаруу каналында.

Биринчиден, эки негизги идеяны түшүнүү маанилүү: менен cmdlets -ComputerName параметри (мисалы, Get-Process же Get-Service) Microsoft тарабынан сунушталган узак мөөнөттүү жол эмес жана PowerShell Remoting "хакердик" катары иштебейт. Чынында, өз ара аутентификацияны ишке ашырат, эсептик дайындарды сактабастан же супер артыкчылыктарга ээ болгон нерсени сыйкырдуу түрдө иштетпестен, журналдарды текшерет жана кадимки уруксаттарыңызды сыйлайт.

PowerShell Remoting деген эмне жана аны эмне үчүн колдонуу керек?

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

Бул үч практикалык артыкчылыкка айланган: массалык аткарууда жакшыраак аткаруу, тармактарда азыраак сүрүлүү чектөө эрежелери жана Kerberos/HTTPS менен шайкеш коопсуздук модели менен. Андан тышкары, ар бир cmdlet көз каранды эмес, өзүнүн алыскы, Remoting ишке ашыруу үчүн Бул кандайдыр бир сценарий же рол үчүн иштейт бул көздөгөн жерде жеткиликтүү.

Демейки боюнча, акыркы Windows Servers Remoting иштетилген менен келет; Windows 10/11де сиз аны иштетиңиз бир командлет менен. Ооба, сиз кошумча эсептик дайындарды, туруктуу сеанстарды, ыңгайлаштырылган акыркы чекиттерди жана башкаларды колдоно аласыз.

Эскертүү: Remoting баарын ачуунун синоними эмес. Демейки боюнча, администраторлор гана Алар туташа алышат жана аракеттер алардын инсандыгы боюнча аткарылат. Эгер сизге кылдат өкүлчүлүк керек болсо, ыңгайлаштырылган акыркы чекиттер сизге негизги буйруктарды гана көрсөтүүгө мүмкүндүк берет.

PowerShell алыстан башкаруу архитектурасы

Анын ичинде кантип иштейт: WinRM, WS-Man жана порттор

PowerShell Remoting кардар-сервер моделинде иштейт. кардар WS-Башкаруу сурамдарын аркылуу жөнөтөт HTTP (5985/TCP) же HTTPS (5986/TCP). Максатка ылайык, Windows Remote Management (WinRM) кызматы угат, акыркы чекитти чечет (сеанс конфигурациясы) жана PowerShell сеансын фондо өткөрөт (wsmprovhost.exe процесси), серияланган натыйжаларды кардарга кайтаруу SOAP аркылуу XMLде.

Remoting биринчи жолу иштетилгенде, угуучулар конфигурацияланат, тиешелүү брандмауэр өзгөчөлүгү ачылат жана сеанс конфигурациялары түзүлөт. PowerShell 6+ ичинен бир нече чыгарылыштар жана Иштетүү-PSRemoting Версияны чагылдырган аталыштар менен акыркы чекиттерди каттайт (мисалы, PowerShell.7 жана PowerShell.7.xy).

Эксклюзивдүү мазмун - Бул жерди басыңыз  Intego Mac Internet Security менен иштөө маселелерин кантип чечем?

Эгер сиз чөйрөңүздө HTTPSге гана уруксат берсеңиз, анда сиз а түзө аласыз коопсуз угуучу ишенимдүү CA тарабынан берилген сертификат менен (сунушталат). Же болбосо, дагы бир альтернатива - жумушчу топ сценарийлери же домендик эмес компьютерлер үчүн TrustedHosts'ту чектелген, тобокелдикти эске алуу менен колдонуу.

Powershell Remoting -ComputerName менен cmdlets менен бирге болушу мүмкүн экенин эске алыңыз, бирок Microsoft WS-Manды түртөт алыстан башкаруу үчүн стандарттуу жана келечектүү жол катары.

PowerShell Remoting жана пайдалуу параметрлерин иштетүү

Windows'до PowerShellди администратор катары ачып, иштетиңиз Иштетүү-PSRemoting. Система WinRMди иштетет, автостартты конфигурациялайт, угуучуну иштетет жана тиешелүү брандмауэр эрежелерин түзөт. Жалпыга ачык тармак профили бар кардарларда сиз муну менен атайылап уруксат бере аласыз -SkipNetworkProfileCheck (андан кийин конкреттүү эрежелер менен бекемдөө):

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

 

Синтаксис дагы мүмкүнчүлүк берет, -Тастыктоо y -Эгерде өзгөртүү көзөмөлдөө үчүн. Эсиңизде болсун: Бул Windows'до гана жеткиликтүү, жана сиз жогорулатылган консолду иштетишиңиз керек. Түзүлгөн эрежелер Сервер жана Кардар басылмаларынын ортосунда, өзгөчө коомдук тармактарда айырмаланат, мында алар демейки боюнча чөйрөнү кеңейтмейинче (мисалы, Set-NetFirewallRule менен) жергиликтүү ички тармак менен чектелет.

Буга чейин жазылган сеанс конфигурацияларынын тизмеси жана бардыгы даяр экенин ырастоо үчүн колдонуңуз Get-PSSessionConfigurationPowerShell.x жана Workflow акыркы чекиттери пайда болсо, Remoting алкагы иштейт.

PowerShell менен алыскы сеанс

Колдонуу режимдери: 1ден 1ге чейин, 1ден көпкө чейин жана туруктуу сессиялар

Бир компьютерде интерактивдүү консол керек болгондо, кайрылыңыз Enter-PSSessionСурат пайда болот жана сиз аткарган нерселердин баары алыскы хостко өтөт. Дайыма кайра киргизбөө үчүн Get-Credential менен эсептик дайындарды кайра колдонсоңуз болот:

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

Эгер сиз издеп жаткан нерсе бир эле учурда бир нече компьютерге буйруктарды жөнөтүү болсо, бул курал Дуба-Command скрипт блогу менен. Демейки боюнча, ал 32ге чейин бир мезгилдеги туташууну ишке киргизет (-ThrottleLimit менен жөнгө салынат). Натыйжалар катары кайтарылат сериядан ажыратылган объекттер («жандуу» ыкмаларсыз):

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

.Stop() же .Start() сыяктуу ыкманы колдонуу керекпи? Кыл муну. скрипт блогунун ичинде алыскы контекстте, жергиликтүү сериядан ажыратылган объект эмес, ушуну менен. Эгерде эквиваленттүү командлет (Токтоо-Кызмат/Старт-Кызмат) бар болсо, аны тактык үчүн колдонгон жакшы болот.

Ар бир чалуу боюнча сеанстарды баштоо жана аяктоо чыгымдарын болтурбоо үчүн, а Persistent PSSession жана аны бир нече чакырууларда кайра колдонуңуз. Байланыш түзүү үчүн New-PSSession колдонуңуз жана туннелди кайра колдонуу үчүн Invoke-Command-Session колдонуңуз. Бүткөндөн кийин аны Remove-PSSession менен жабууну унутпаңыз.

Сериялаштыруу, чектөөлөр жана жакшы тажрыйбалар

Маанилүү детал: саякаттап жүргөндө объекттер "+тегиздеп" келет сериядан ажыратылган сүрөттөр, касиеттери бар, бирок ыкмалары жок. Бул атайылап жасалган жана өткөрүү жөндөмдүүлүгүн үнөмдөйт, бирок бул сиз логиканы аткарган мүчөлөрдү (мисалы, .Kill()) жергиликтүү көчүрмөдө колдоно албайсыз дегенди билдирет. Чечим айкын: ошол ыкмаларды колдонуу. алыстан жана сизге белгилүү бир талаалар гана керек болсо, азыраак маалымат жөнөтүү үчүн Select-Object менен чыпкалаңыз.

Эксклюзивдүү мазмун - Бул жерди басыңыз  ТикТокто блокторду жана санкцияларды кантип болтурбоо керек?

Скрипттерде Enter-PSSession (интерактивдүү колдонуу үчүн арналган) болбоңуз жана скрипт блоктору менен Invoke-Command колдонуңуз. Эгер сиз бир нече чалууларды күтсөңүз же абалды сактоо керек болсо (өзгөрмөлөр, импорттолгон модулдар), туруктуу сессияларды колдонуу жана, эгер мүмкүн болсо, PowerShell 3.0+ ичиндеги Disconnect-PSSession/Connect-PSSession менен аларды ажыратыңыз/кайра туташтырыңыз.

Аутентификация, HTTPS жана Доменден тышкары сценарийлер

Доменде түпнуска аутентификация болуп саналат Kerberos Ошондо баары агып турат. Түзмөк сервердин атын текшере албаганда же сиз CNAME IP же лакап атка туташсаңыз, сизге бул эки жолдун бири керек: 1) Угуучу Сертификат менен HTTPS сиз ишенген CA тарабынан чыгарылган же 2) TrustedHosts сайтына көздөгөн жерди (аты же IP) кошуңуз жана ишеним грамоталарын колдонууЭкинчи параметр ошол хост үчүн өз ара аутентификацияны өчүрөт, ошондуктан ал масштабды минималдуу зарыл болгонго чейин азайтат.

HTTPS угуучусун орнотуу үчүн команда дүкөнүндө орнотулган жана WinRM менен байланышкан сертификат (идеалдуу түрдө PKI же коомдук CAдан) талап кылынат. Андан кийин 5986/TCP порту брандмауэрде ачылып, кардардан колдонулат. -UseSSL алыскы командлеттерде. Кардардын тастыктамасынын аныктыгын текшерүү үчүн сиз сертификатты жергиликтүү эсепке картага түшүрүп, аны менен байланыша аласыз - CertificateThumbprint (Enter-PSSession муну түздөн-түз кабыл албайт; биринчи New-PSSession менен сессияны түзүңүз.)

Экинчи хоп жана ишеним грамоталарынын делегациясы

Белгилүү "кош хоп" серверге туташкандан кийин, сизге кирүү үчүн ошол сервер керек болгондо пайда болот үчүнчү ресурс сиздин атыңыздан (мисалы, SMB үлүшү). Буга уруксат берүү үчүн эки ыкма бар: CredSSP жана ресурстук чектелген Kerberos делегациясы.

менен CredSSP Сиз кардар менен ортомчуга эсептик дайындарды ачык өткөрүп берүүгө мүмкүнчүлүк бересиз жана белгилүү бир компьютерлерге өкүлчүлүк кылууга уруксат берүү үчүн саясатты (GPO) орнотосуз. Аны конфигурациялоо тез, бирок коопсуз эмес, анткени эсептик маалыматтар шифрленген туннелдин ичинде ачык текстте жүрөт. Булактарды жана көздөгөн жерлерди ар дайым чектеңиз.

Доменде артыкчылыктуу альтернатива болуп саналат чектелүү Kerberos делегациясы (ресурска негизделген чектелген делегация) заманбап AD. Бул акыркы чекитке белгилүү кызматтар үчүн ортоңку чекиттен өкүлчүлүктү кабыл алууга таянууга мүмкүндүк берет жана баштапкы туташууда инсандыгыңызды ачыкка чыгарбаш үчүн. Акыркы домен контроллерлору жана жаңыртылган RSAT талап кылынат.

Ыңгайлаштырылган акыркы чекиттер (сеанс конфигурациялары)

Remotingтин асыл таштарынын бири менен байланыш түйүндөрүн каттай алуу ылайыкташтырылган мүмкүнчүлүктөр жана чектөөлөр. Алгач New-PSSessionConfigurationFile (алдын ала жүктөө үчүн модулдар, көрүнүүчү функциялар, лакап аттар, ExecutionPolicy, LanguageMode, ж. RunAsCredential жана уруксаттар (SDDL же -ShowSecurityDescriptorUI менен GUI интерфейси).

Коопсуз өкүлчүлүк үчүн -VisibleCmdlets/-VisibleFunctions менен керектүү нерселерди гана ачып, ылайыктуу болсо, акысыз скрипттерди өчүрүңүз. LanguageMode LimitedLanguage же NoLanguage. Эгер сиз FullLanguage'тен чыксаңыз, кимдир бирөө скрипт блогун колдонушу мүмкүн, алар RunAs менен биригип, ачылбаган буйруктарды чакырышы мүмкүн. ал тешик болмок. Бул акыркы чекиттерди майда тиштүү тарак менен долбоорлаңыз жана алардын көлөмүн документтештириңиз.

Домендер, GPOs жана Groupware

ADде сиз GPO менен масштабда Powershell Remoting орното аласыз: WinRM угуучуларынын автоматтык конфигурациясына уруксат бериңиз, кызматты Автоматтыкка коюу, жана брандмауэр өзгөчөлүгүн түзүңүз. GPO жөндөөлөрдү өзгөртөөрүн унутпаңыз, бирок алар дайыма эле кызматты заматта күйгүзбөйт; кээде сиз gpupdateди өчүрүп же күчтөшүңүз керек.

Эксклюзивдүү мазмун - Бул жерди басыңыз  Gmail сырсөзүңүздү кантип билсе болот

Жумушчу топтордо (домендик эмес), Remoting менен конфигурациялаңыз Иштетүү-PSRemoting, кардарга TrustedHosts орнотуңуз (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) жана жергиликтүү эсептик дайындарды колдонуңуз. HTTPS үчүн, сиз өз алдынча кол коюлган сертификаттарды орното аласыз, бирок ишенимдүү CA жана колдонуу сунушталат атын ырастоо сертификатта -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

Firewall, тармак жана порттор боюнча практикалык эскертүүлөр

Максаттуу компьютерде HTTP үчүн 5985/TCP жана HTTPS үчүн 5986/TCP ачыңыз кандайдыр бир ортодогу брандмауэрWindows кардарларында Enable-PSRemoting домен жана жеке профилдер үчүн эрежелерди түзөт; жалпы профилдер үчүн, ал чөйрөнү Set-NetFirewallRule -RemoteAddress Any менен өзгөртпөсөңүз, ал жергиликтүү ички тармак менен чектелет (бул маанини сиз тобокелдиктин негизинде баалай аласыз).

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

Иштетүү-PSRemoting Параметрлери (Операциялык Корутунду)

-Аткаруудан мурун ырастоону суранат; - Күч эскертүүлөрдү этибарга албайт жана зарыл болгон өзгөртүүлөрдү киргизүү; -SkipNetworkProfileCheck коомдук кардар тармактарында Remoting иштетет (демейки боюнча жергиликтүү ички тармак менен чектелген); -WhatIf сизге өзгөртүүлөрдү колдонбостон эмне болорун көрсөтөт. Кошумча, кандайдыр бир стандарттуу cmdlet сыяктуу, ал колдойт жалпы параметрлер (-Verbose, -ErrorAction ж.б.).

"Иштетүү" сиз үчүн HTTPS угуучуларын же сертификаттарын түзбөй турганын унутпаңыз; эгер сизге башынан аягына чейин шифрлөө жана анын негизинде аутентификация керек болсо күбөлөндүрүлгөн, HTTPS угуучусун конфигурациялаңыз жана -ComputerName ичинде колдоно турган атка каршы CN/SAN текшериңиз.

Пайдалуу 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'ту масштабда башкарууда, Remoting "компьютерден компьютерге" декларативдик жана коопсуз ыкмага өтүүгө мүмкүндүк берет. Туруктуу сеанстарды, күчтүү аутентификацияны (Kerberos/HTTPS), чектелген акыркы чекиттерди жана диагностика үчүн так издерди айкалыштыруу менен, ылдамдыкка жана башкарууга ээ болосуз коопсуздукту же аудитти аябастан. Эгер сиз GPO активдештирүүнү стандартташтырсаңыз жана өзгөчө учурларды (TrustedHosts, кош хоп, сертификаттар) өздөштүрүп алсаңыз, сизде күнүмдүк операциялар жана инциденттерге жооп берүү үчүн бекем алыскы платформа болот.

көрүнбөгөн зыяндуу программа
Окшош макала:
Компьютериңизди XWorm жана NotDoor сыяктуу көрүнбөгөн зыяндуу программалардан кантип коргоо керек