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 хүчирхэг, өргөтгөх боломжтой, аюулгүй алсын удирдлагын сувагт.

Юуны өмнө, хоёр гол санааг ойлгох нь чухал: командлетууд -ComputerName параметр (жишээ нь: Get-Process эсвэл Get-Service) нь Microsoft-оос санал болгосон урт хугацааны зам биш бөгөөд PowerShell Remoting нь "хакердах" байдлаар ажиллахгүй. Үнэндээ, харилцан баталгаажуулалтыг хэрэгжүүлдэг, итгэмжлэл хадгалах эсвэл супер эрх бүхий аливаа зүйлийг ид шидгүйгээр ажиллуулахгүйгээр аудит бүртгэж, таны ердийн зөвшөөрлийг хүндэтгэдэг.

PowerShell Remoting гэж юу вэ, яагаад үүнийг ашигладаг вэ?

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

Энэ нь гурван практик давуу тал болж хувирдаг: их хэмжээний гүйцэтгэлийг илүү сайн гүйцэтгэх, сүлжээн дэх үрэлт багатай хязгаарлалттай дүрэм, Kerberos/HTTPS-тэй нийцсэн аюулгүй байдлын загвартай. Цаашилбал, командлет бүрээс хамааралгүйгээр өөрийн алсын удирдлага, Remoting-ийг хэрэгжүүлэх Энэ нь ямар ч скрипт эсвэл дүрд тохирно Энэ нь очих газар боломжтой.

Анхдагч байдлаар, сүүлийн үеийн Windows серверүүд Remoting идэвхжүүлсэн байдаг; Windows 10/11 дээр чи үүнийг идэвхжүүл нэг командлеттай. Тийм ээ, та өөр итгэмжлэл, байнгын сесс, захиалгат төгсгөлийн цэг болон бусад зүйлийг ашиглаж болно.

Тайлбар: Алсын удирдлага гэдэг нь бүх зүйлийг нээхтэй ижил утгатай биш юм. Анхдагчаар, зөвхөн админууд Тэд холбогдох боломжтой бөгөөд үйлдлүүд нь тэдний таних тэмдэгийн дагуу хийгддэг. Хэрэв танд нарийн төлөөлөгч хэрэгтэй бол захиалгат төгсгөлийн цэгүүд нь зөвхөн чухал тушаалуудыг харуулах боломжийг танд олгоно.

PowerShell Remoting архитектур

Дотор нь хэрхэн ажилладаг вэ: WinRM, WS-Man болон портууд

PowerShell Remoting нь үйлчлүүлэгч-серверийн загварт ажилладаг. Үйлчлүүлэгч нь WS-Management хүсэлтийг дамжуулан илгээдэг HTTP (5985/TCP) эсвэл HTTPS (5986/TCP). Зорилтот дээр Windows Remote Management (WinRM) үйлчилгээ нь сонсож, төгсгөлийн цэгийг (сессийн тохиргоо) шийдэж, PowerShell сессийг далд (wsmprovhost.exe процесс) зохион байгуулдаг. үйлчлүүлэгчид цуваа үр дүнг буцаах SOAP-ээр дамжуулан XML дээр.

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

Онцгой контент - Энд дарна уу  Google Chrome-ийн чухал эмзэг байдлын талаархи дэлхийн сэрэмжлүүлэг: юу мэдэх хэрэгтэй, өөрийгөө хэрхэн хамгаалах вэ

Хэрэв та зөвхөн өөрийн орчинд HTTPS-г зөвшөөрвөл, та үүсгэж болно аюулгүй сонсогч итгэмжлэгдсэн CA-аас олгосон гэрчилгээтэй (санал болгож байна). Өөр нэг хувилбар бол TrustedHosts-ийг хязгаарлагдмал, эрсдэлийг мэддэг байдлаар, ажлын хэсгийн хувилбарууд эсвэл домэйн бус компьютеруудад ашиглах явдал юм.

Powershell Remoting нь -ComputerName-тай командлетуудтай зэрэгцэн орших боломжтой гэдгийг анхаарна уу, гэхдээ Майкрософт WS-Man-г түлхдэг алсын удирдлагын стандарт бөгөөд ирээдүйд баталгаатай арга зам юм.

PowerShell Remoting болон ашигтай параметрүүдийг идэвхжүүлж байна

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

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

 

Синтакс нь бас зөвшөөрдөг -Баталгаажуулах y -Яах бол өөрчлөлтийг хянах зориулалттай. Санаж байна уу: Энэ нь зөвхөн Windows дээр боломжтой, мөн та өргөгдсөн консолыг ажиллуулах ёстой. Үүсгэсэн дүрмүүд нь Сервер болон Үйлчлүүлэгчийн хувилбаруудын хооронд, ялангуяа нийтийн сүлжээнд өөр өөр байдаг бөгөөд хэрэв та хамрах хүрээг тэлэхгүй бол (жишээ нь, Set-NetFirewallRule ашиглан) анхдагчаар тэдгээр нь дотоод дэд сүлжээнд хязгаарлагддаг.

Аль хэдийн бичигдсэн сессийн тохиргоог жагсааж, бүх зүйл бэлэн болсон эсэхийг баталгаажуулахын тулд ашиглана уу Get-PSSessionConfigurationХэрэв PowerShell.x болон Ажлын урсгалын төгсгөлийн цэгүүд гарч ирвэл Remoting framework ажиллаж байна.

PowerShell-тэй алсын сесс

Ашиглалтын горимууд: 1-ээс 1 хүртэл, 1-ээс олон, байнгын сесс

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

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

Хэрэв таны хайж байгаа зүйл бол хэд хэдэн компьютерт тушаал илгээх бол энэ хэрэгсэл нь юм Дуудах-Команд скрипт блоктой. Анхдагч байдлаар, энэ нь 32 хүртэлх зэрэгцэн холболт үүсгэдэг (-ThrottleLimit-ээр тохируулж болно). Үр дүнг дараах байдлаар буцаана цуваагүй объектууд ("амьд" аргуудгүйгээр):

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

.Stop() эсвэл .Start() гэх мэт аргыг дуудах шаардлагатай юу? Үүнийг хий. скрипт блок дотор алсын контекст, орон нутгийн цуваа арилгасан объект биш, тэгээд л болоо. Хэрэв ижил төстэй команд (Stop-Service/Start-Service) байгаа бол үүнийг тодорхой болгохын тулд ихэвчлэн ашиглахыг илүүд үздэг.

Дуудлага бүр дээр сессийг эхлүүлэх, дуусгах зардлаас зайлсхийхийн тулд a Байнгын PSSession мөн олон дуудлагаар дахин ашиглах боломжтой. Холболт үүсгэхийн тулд New-PSSession, хонгилыг дахин ашиглахын тулд Invoke-Command-Session-г ашиглана уу. Дуусаад Remove-PSSession-ээр үүнийг хаахаа бүү мартаарай.

Цувралчлал, хязгаарлалт, сайн туршлага

Чухал мэдээлэл: аялж байхдаа объектууд "+хавтгайлж" ирдэг цувралаас хасагдсан хормын хувилбарууд, шинж чанартай боловч арга байхгүй. Энэ нь зориудаар хийгдсэн бөгөөд зурвасын өргөнийг хэмнэдэг боловч энэ нь та логикийг (.Kill() гэх мэт) гүйцэтгэх гишүүдийг локал хуулбар дээр ашиглах боломжгүй гэсэн үг юм. Шийдэл нь ойлгомжтой: эдгээр аргуудыг дуудах. алсаас Хэрэв танд зөвхөн тодорхой талбарууд хэрэгтэй бол бага өгөгдөл илгээхийн тулд Select-Object-ээр шүүнэ үү.

Онцгой контент - Энд дарна уу  Файлуудаа хэрхэн гэмтээхээс сэргийлэх вэ?

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

Баталгаажуулалт, HTTPS болон Домайнаас гадуурх хувилбарууд

Домэйн дээр уугуул нэвтрэлт танилт нь байдаг Керберос Тэгээд бүх зүйл урсдаг. Хэрэв төхөөрөмж серверийн нэрийг баталгаажуулж чадахгүй эсвэл CNAME IP эсвэл өөр нэртэй холбогдох үед танд дараах хоёр сонголтын аль нэг нь хэрэг болно: 1) Сонсогч Сертификаттай HTTPS Таны итгэдэг CA-аас гаргасан эсвэл 2) TrustedHosts-д очих газраа (нэр эсвэл IP) нэмэх ба итгэмжлэл ашиглахХоёрдахь сонголт нь тухайн хостын харилцан нэвтрэлт танилтыг идэвхгүй болгодог тул хамрах хүрээг шаардлагатай хамгийн бага хэмжээнд хүртэл бууруулдаг.

HTTPS сонсогчийг тохируулахын тулд багийн дэлгүүрт суулгаж, WinRM-тэй холбогдсон гэрчилгээ (таны PKI эсвэл нийтийн CA-аас хамгийн тохиромжтой) байх шаардлагатай. Дараа нь 5986/TCP портыг галт хананд нээж, үйлчлүүлэгчээс ашиглана. -SSL ашиглах алсын командууд дээр. Үйлчлүүлэгчийн гэрчилгээг баталгаажуулахын тулд та гэрчилгээг локал данс руу буулгаж, холбогдох боломжтой -Гэрчилгээний эрхий хурууны хээ (Enter-PSSession үүнийг шууд хүлээн зөвшөөрдөггүй; эхлээд New-PSSession ашиглан сесс үүсгэнэ үү.)

Итгэмжлэх жуух бичгээ илгээх хоёр дахь удаагаа

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

Кон CredSSP Та үйлчлүүлэгч болон зуучлагчдад итгэмжлэлийг шууд шилжүүлэхийг идэвхжүүлж, тодорхой компьютерт шилжүүлэхийг зөвшөөрөх бодлогыг (GPO) тохируулна. Тохируулахад хурдан боловч итгэмжлэлүүд нь шифрлэгдсэн хонгил дотор тодорхой текстээр дамждаг тул хамгаалалт багатай. Эх сурвалж, очих газраа үргэлж хязгаарла.

Домэйн дахь илүүд үздэг хувилбар бол Керберос төлөөлөгчдийг хязгаарласан (нөөцөд суурилсан хязгаарлагдмал төлөөлөгч) орчин үеийн МЭ. Энэ нь эцсийн цэгт тодорхой үйлчилгээнүүдийг дундын цэгээс төлөөлөгч хүлээн авахад найдах боломжийг олгож, анхны холболтод таны хувийн мэдээллийг ил гаргахаас сэргийлнэ. Сүүлийн үеийн домэйн хянагч болон шинэчлэгдсэн RSAT шаардлагатай.

Захиалгат төгсгөлийн цэгүүд (Сурцын тохиргоо)

Remoting-ийн нэг үнэт зүйл бол холболтын цэгүүдийг бүртгэх боломжтой байх явдал юм тохируулсан чадвар, хязгаарлалт. Эхлээд та New-PSSessionConfigurationFile (урьдчилан ачаалах модулиуд, харагдах функцууд, алиасууд, ExecutionPolicy, LanguageMode гэх мэт) файл үүсгээд дараа нь Register-PSSessionConfiguration-д бүртгүүлж, тохируулах боломжтой. RunAsCredential болон зөвшөөрөл (SDDL эсвэл -ShowSecurityDescriptorUI-тай GUI интерфейс).

Аюулгүй төлөөлөгчийн хувьд зөвхөн шаардлагатай зүйлийг -VisibleCmdlets/-VisibleFunctions ашиглан ил гаргаж, шаардлагатай бол үнэгүй скриптийг идэвхгүй болго. LanguageMode Хязгаарлагдмал хэл эсвэл NoLanguage. Хэрэв та FullLanguage-г орхивол хэн нэгэн скрипт блок ашиглан ил гараагүй командуудыг дуудаж болох бөгөөд үүнийг RunAs-тай хослуулан, нүх байх болно. Эдгээр төгсгөлийн цэгүүдийг нарийн шүдтэй самаар зохион бүтээж, хамрах хүрээг нь баримтжуулна уу.

Домэйн, GPO болон Groupware

AD-д та Powershell Remoting-ийг GPO-той масштабаар байрлуулж болно: WinRM сонсогчдын автомат тохиргоог зөвшөөрөх, үйлчилгээг автоматаар тохируулна уу, мөн галт ханын онцгой байдлыг үүсгэнэ үү. GPO нь тохиргоог өөрчилдөг боловч үйлчилгээг тэр дор нь асааж чаддаггүй гэдгийг санаарай; Заримдаа та gpupdate-г дахин эхлүүлэх эсвэл албадах хэрэгтэй болдог.

Онцгой контент - Энд дарна уу  Norton Mobile Security-г хэрхэн ашиглах вэ?

Ажлын хэсгүүдэд (домэйн бус) 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

Галт хана, сүлжээ, портуудын талаархи практик тэмдэглэл

Зорилтот компьютер дээр 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 нь нийтийн үйлчлүүлэгчийн сүлжээн дээр алсын зайнаас удирдах боломжийг идэвхжүүлдэг (үндсэндээ дотоод дэд сүлжээгээр хязгаарлагддаг); -WhatIf танд өөрчлөлт оруулахгүйгээр юу болохыг харуулж байна. Нэмж дурдахад аливаа стандарт командлетын нэгэн адил энэ нь дэмждэг нийтлэг параметрүүд (-Verbose, -ErrorAction гэх мэт).

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

үл үзэгдэх хортой програм
Холбоотой нийтлэл:
XWorm, NotDoor зэрэг үл үзэгдэх хортой програмаас компьютерээ хэрхэн хамгаалах вэ