Хоосон нууц үгтэй холын компьютер дээр Powershell-ийг ашиглахыг зөвшөөрдөг. Powershell програмыг алсаас эхлүүлнэ үү. "Нэг рүү" менежмент

PowerShell-д туслах алсын дэмжлэг

Алсын компьютертэй ажиллах chimalo аргууд. Є VBScript-д өргөн хэрэглэгддэг Windows Management Instrumentation (WMI). Алсын зайнаас удирдах боломжтой өөр өөр хэрэгслүүдийг ашиглан Sysinternals гэж бичнэ үү. Wiconn-д зориулсан ComputerName параметрийг тохируулахын тулд олон PowerShell командлетууд руу шилжинэ үү алсын компьютерууд.

Zagalom арга povno, харин арьс є түүний сул тал. Нэгдүгээрт, төөрөхөд хялбар өөр өөр синтакс. Өөр арга замаар, Дейки орон нутагтаа хол өмхий үнэртэж байгаа эсэхээс хамаарч өөр байдлаар биеэ авч явахыг тушаадаг. За, нарешти, харилцааны хувьд та галт хананд нэмэлт порт нэмэх шаардлагатай байж магадгүй бөгөөд энэ нь аюулгүй байдлын үүднээс тийм ч сайн биш юм.

PowerShell Remoting virishuє асуудлын талаар илүү дэлгэрэнгүй тайлбар. Майкрософт Удирдлагын вэб үйлчилгээ (WS-Management) протоколыг хэрэгжүүлэх, використ үйлчилгээтэй (WinRM) холбогдоход үндэслэсэн. HTTP (түгжихэд) эсвэл HTTPS-д компьютер хоорондын харилцаа холбоо шаардлагатай. Хоёр компьютерийн хоорондох бүх траффик протоколын дагуу шифрлэгдсэн байдаг (нүд ирмэх, хэрэв SSL ялсан бол). NTLM болон Kerberos зэрэг хэд хэдэн баталгаажуулалтын аргуудыг дэмждэг.

Vіdmіnu vіd utilіt дээр scho vikoristovuyut өөр өөр програм хангамжийн интерфейс, PS Remoting pratsyuє алхам алхмаар: тушаалууд, scho дээр оруулах орон нутгийн компьютер, алсын компьютер руу шилжүүлж, шалгасны дараа үр дүнг буцааж шилжүүлнэ. Бүх багийн хэлтэрхийнүүд орон нутагт тоологддог тул тоймыг хэлэлцэх шаардлагагүй. Үүнээс гадна, PS Remoting нь зөвхөн нэгийг шаарддаг нээлттэй портгалт хана руу.

PowerShell Remoting-д туслах зарим аргууд энд байна.

"Нэг рүү" менежмент

Хамгийн хялбар арга алсын тусламж- Интерактив байдлаар хуралдааныг нээж, висконуудад хэрэгтэй. Жишээлбэл, SRV4 компьютер дээрх сессийг үзээд шинэ үйлчилгээний найз дээр дахин эхлүүлцгээе.

Enter-PSSession -ComputerName SRV4
Дахин эхлүүлэх-Үйлчилгээ - Нэр түр хадгалагч

Бид үйлчилгээнд гайхаж, хуралдааныг хааж байна:

Get-Service - Нэрийн түр хадгалагч
гарах-PSSession

Интерактив ажил нь алсын удирдлагын эвгүй даалгавруудыг шийдвэрлэхэд тохиромжтой. Хэрэв та процессыг автоматжуулахыг хүсвэл Invoke-Command командыг ашиглах нь дээр. Тэнхлэг нь энэ тусламжтайгаар та яг ижил зүйлийг хийж чадна:

Invoke-Command -ScriptBlock (Дахин эхлүүлэх-Үйлчилгээний түр хамгаалагч) -ComputerName SRV4

Энэ тушаал нь SRV4 дээр алсын сессийг нээж, командын блок, -ScriptBlock параметрийн зааварчилгааг авч, сессийг хаадаг. Тэгээд уйлах дэвсгэр горим, та сонголтоор AsJob параметрийг зааж өгч болно.

Арын дэвсгэр дээр нэг цаг ажилласан хүмүүс PowerShell нь үр дүнг өөрчлөхгүй гэдгийг санаарай. Үүнийг хийхийн тулд та үүнийг Хүлээн авах-Ажлын командын тусламжтайгаар хийж болно.

Хэд хэдэн команд биш харин скриптийг сонгохын тулд Invoke-Command нь -FilePath параметртэй байж болох бөгөөд үүнийг файлд скрипт оноохын тулд -ScriptBlock болгож өөрчлөх боломжтой. Жишээлбэл, би zupine үйлчилгээний жагсаалтыг харуулах скрипт үүсгэсэн бөгөөд үүнийг алсын SRV4 машин дээр ажиллуулна:

Invoke-Command -FilePath .\script.ps1 -ComputerName SRV4

"Нэгээс баян" менежмент

Хэд хэдэн компьютер дээр нэг даалгаврыг зөвтгөхтэй зэрэгцэн зөвтгөх хэсгийг дуусгах шаардлагатай. Та ижил Invoke-Command-ын тусламжтайгаар үүнийг хялбархан хийж болно. Жишээлбэл, компьютерийн нэрийг зүгээр л комагаар дамжуулж болно:

Invoke-Command -ScriptBlock (Дахин эхлүүлэх-Үйлчилгээний түр хадгалагч) -ComputerName SRV4,SRV5

Тэмдэглэнэ үү:

$servers = @(″SRV1″,″SRV2″,″SRV3″)
Invoke-Command -ScriptBlock (Дахин эхлүүлэх-Үйлчилгээний түр хамгаалагч) -ComputerName $серверүүд

Эсвэл файлаас авна уу:

Invoke-Command -ScriptBlock (Дахин эхлүүлэх-Үйлчилгээний түр хадгалагч) -ComputerName`
(Get-Content .\servers.txt)

Жич: Invoke-Command нь ThrottleLimit параметртэй байж болох бөгөөд энэ нь нэг цагт асах боломжтой хамгийн их тооны компьютеруудын хооронд байдаг. Энэ параметрийг түгжихийн тулд 32-ыг нэмнэ үү. Шаардлагатай бол та үүнийг өөрчлөх эсвэл компьютерийнхээ процессор болон санах ойн ачааллыг нэмэгдүүлэхийн тулд өөрчлөх боломжтой тул энэ үйлдлийг маш болгоомжтой хийх хэрэгтэй.

Хурал

Invoke-Command сессийн бусад цаг тутамд шинэ сесс үүсдэг бөгөөд үүнд нэг цаг болон нөөц шаардлагатай. Төөрөхийн тулд бид нэг сесс нээж, бүх командыг ялах боломжтой. Жишээлбэл, SRV4 компьютерт SRV4 нэртэй сессийг нэмээд $session-д оруулаад дараа нь бид үйлдвэрээ (жишээ нь, асар их зовлонтой түр түрүүлэгч) аврах болно:

$session = Шинэ-PSSession -ComputerName SRV4 -Нэр SRV4
Invoke-Command -ScriptBlock (Үйлчилгээг авах түр хадгалагч | Stop-Service)`
-$session

Сеанс идэвхтэй doti байх бөгөөд doki нь PowerShell консолоос харагдахгүй. Та мөн сессийг хааж болно - Disconnect-PSSession эсвэл устгах - Remove-PSSession.

Одоо PowerShell 3.0 дээр гарч ирсэн олон боломжууд. Өмнөхтэй адил, таныг сессээс гарах эсвэл сесс хаагдсан үед сесс хаагдах үед PS 3.0 станц руу очно. салгагдсан. Бид аль ч компьютер эсвэл өөр компьютер дээр шинэ сесс нээж, энэ идэвхжүүлсэн сесс дотор тушаалыг шууд ажиллуулж болно. Хэрхэн өгзөг компьютер дээр эхэлсэн SRV4 үйлчилгээг өөр найздаа, өнгөрсөн үеийн дуу:

Invoke-Command -ScriptBlock (Start-Servicespoler)`
-Компьютерийн нэр SRV4 - Салгасан

Сургалтыг оруулах өөр нэг хувилбар бол өдрийн цагаар туршилтыг эхлүүлэх явдал юм. Жишээлбэл, SRV4 дээрх LongJob сессийг үзээд 1 интервалаар үйлчилгээний жагсаалтыг харуулдаг тул ажлын арын дэвсгэр дээр ажиллуулъя:

$session = New-PSSession -ComputerName SRV4 -Нэр LongJob
Invoke-Command -Session $session -ScriptBlock`
(Үйлчилгээ авах | foreach ($_;sleep 60) ) -AsJob

Чуулган хаах даалгаврыг хэрхэн тэмдэглэж байгаад бид гайхаж байна:

Хүлээн авах-Ажлыг -Нэр ажил2
Disconnect-PSSession $session

Өөр компьютер дээр үзүүлээд консолыг үзүүлж, LongJob сессэд холбогдож, Receive-PSSession командлетын тусламжтай даалгаврын үр дүнг авна.

Connect-PSSession -Нэр LongJob -ComputerName SRV4
Receive-PSSession -LongJob гэж нэрлэнэ үү

Эсвэл Connect-PSSession тусламжийн сесстэй тодорхой холболтгүй өөр сонголт:

$session = Get-PSSession -Нэр LongJob -ComputerName SRV4
$job = Receive-PSSession $session -OutTarget Job
Хүлээн авах-Ажлын $ ажил

Жич:Үр дүн нь системд үлдэхийн тулд Receive-Job-г -Keep параметрээр мушгих шаардлагатай.

Далд байдлаар зайд keruvannya

Өөр нэг зүйл бол алсын керуваннягийн стандарт бус арга замыг дуусгах - далд алсын зайнаас. Алсын сесс үүсгэхгүйгээр алсын компьютер дээр командлетуудыг дотооддоо ажиллуулах боломжтой.

Жишээлбэл, бид алсын удирдлагын тусламжгүйгээр ижил ажлын байрыг авдаг. Бид SRV4 домэйн хянагчтай алсын сесс үүсгэж, Active Directory модулийг сесс рүү импортлодог.

$session = Шинэ-PSSession -ComputerName SRV4
Invoke-Command (Импорт-Модулын ActiveDirectory) -Session $session

Дараа нь бид алсын сессээс Active Directory командлетуудыг экспортолж, локал RemoteAD модул руу илгээнэ.

Export-PSSession -Session $session -CommandName *-AD* -OutputModule RemoteAD`
-Clobber-ийг зөвшөөр

Энэ тушаал нь WindowsPowerShell\Modules\RemoteAD хавтсанд шинэ PowerShell модулийг үүсгэх явдал юм. Сонголтууд нь зөвхөн *-AD* загварт тохирох нэртэй командлетууд байх болно. Хэнд зориулж командлетууд нь локал компьютерт хуулагддаггүй. Локал модуль нь нэг төрлийн товчлол болж ажиллах бөгөөд тушаалууд нь өөрөө алсын домайны хянагч дээр тавигдах болно.

Модуль үүсгэсний дараа сессийг хааж болно, танд хэрэггүй болно.

Шинэ модулийг урсгал сесс рүү импортлох (PS 3.0-ийн хувьд та энэ хэсгийг алгасаж болно):

Import-Module RemoteAD

Одоо хүндэтгэж байна - бид домэйн хянагчтай алсын сессийг цуцалдаггүй, cmdlet-үүдийг устгадаг. Энэ сессийг тодорхой эхлүүлэх шаардлагагүй - та боломжтой далд байдлаар, алсын командлет дээр viconaty оролдсоны дараа:

Шинэ-ADUser -Нэр БиллГейтс -Компани Майкрософт
Get-ADUser BillGates

Хэрэв ийм зүйл тохиолдвол домэйн хянагч руу алсын холболтыг баталгаажуулж, дараа нь тушаалыг домэйн хянагч руу шилжүүлж, тэнд дуусгавар болно. Бичихийн үр дүнг XML-д цувуулж, шаардлагатай бол локал компьютерт шилжүүлэх бөгөөд энэ нь таны PowerShell-г ашиглах боломжтой объект руу цуваа алдагдах болно.

Сеанс идэвхтэй байх болно, консолыг хааж эсвэл RemoteAD модулийг устгаж болохгүй.

Далд алсын keruvannya нь алсын компьютер дээр cmdlet-тэй ажиллах боломжийг олгодог бөгөөд энэ нь локал машин дээр суулгасантай адил юм. Танд бүх команд хэрэгтэй үед үүнийг ая тухтай хийж байгаа эсэхийг шалгаарай.

Төгсгөлд нь би юу хэлэх болно Нарази PowerShell Remoting нь Windows үйлдлийн системүүдийн алсаас хайх гол хэрэгсэл юм. Энэ чадварын талаар Windows-ийн администратор мэдэж, тэдгээрийг мэддэг байх нь ердөө л шаардлагатай юм.

Нийтлэлд PowerShell 2.0 хувилбартай холын харилцааны сэдвийг тайлбарласан болно. Бидний өмнө энэ үйлчилгээг эхлүүлэх шаардлагатай бөгөөд үүний тулд бид харилцан хамтын ажиллагааны зайд байх ёстой.

WinRm үйлчилгээг эхлүүлнэ үү
PowerShell 2.0-ийг алсаас хамтран ажиллахын тулд WinRM үйлчилгээг Windows 7 болон Windows 2008 R2 дээр түгжээний ард суулгасан тул сэлгэсэн. Үйлдлийн системийн эхний хувилбаруудын хувьд нэмэлт суулгах шаардлагатай. Энэ үйлчилгээг PowerShell 2.0 суулгасан цагт машин дээр суулгахаар оноодог. WinRM руу шилжихийн тулд PowerShell 2.0 консолыг ажиллуулаад дараах тушаалыг оруулна уу:
WinRm үйлчилгээ авах
Үр дүн нь дараах байдалтай байна.

Төлөвийн нэр DisplayName ------ ---- ----------- Winrm Windows Remote Management (WS-Manag...) зогссон.

Сарлаг бачимо - үйлчилгээ байгаа, проте ажиллахгүй байна. WinRm-ийг ажиллуулахын тулд та PowerShell 2.0 консолоос администратороор дараах тушаалыг ажиллуулах шаардлагатай.
Идэвхжүүлэх-PSRemoting
Үйлчилгээний эхлэлийг баталгаажуулахын тулд "Y" товчийг дарна уу. WinRM үйлчилгээг одоо эхлүүлэх төрлийг "Автомат" болгож тохируулсан. компьютер эхлэхэд шууд эхлэхгүй. Enable-PSRemoting команд нь зөвхөн үйлчилгээг эхлүүлээд зогсохгүй эхлүүлэх төрлийг өөрчилдөг төдийгүй зөв ажиллахад тохиромжтой галт ханыг тохируулдаг. WinRm үйлчилгээ нь ямар ч IP хаягийн хүсэлтийг хүлээн авдаг.

Холбогдсон бүх үйлчилгээ үзүүлэгчдийн нэрийг асууж байна:
Get-PSProvider
Сарлаг бачимо, бидэнд WSMan нэрээр өөр үйлчилгээ үзүүлэгч бий.
Итгэмжлэгдсэн зангилаануудыг томилох

PowerShell 2.0 консол дээр тушаалын администраторын эрхээр ажиллуулна уу:

Set-Location -Path WSMan: Set-Location -Path localhost\client Get-ChildItem

Анхаарна уу
Эхний команд нь үйлчилгээ үзүүлэгчийг харуулсан хоёр заагчаар төгссөн -Path параметрийн утгатай болохыг анхаарна уу.

Таны мэддэг компьютер дээр ямар серверүүд машинд холбогдохыг зааж өгөхийн хажуугаар ажиллахыг зөвшөөрдөг. Эдгээр серверүүд нь "итгэмжлэгдсэн их сургуулиуд" шиг харагдаж байна. Ийм байдлаар, хэрэв та MyServer сервер дээр байгаа бол MyComputer компьютертэй анх удаа ажиллахдаа итгэмжлэгдсэн зангилаануудыг (TrustedHosts) дагаарай. Компьютерийг Active Directory домэйнд нэвтрэхгүй байхын тулд найдвартай зангилаануудыг ялснаар таних арга замыг доор харуулав. Хэрэв компьютер Active Directory домэйны агуулах руу орох гэж байгаа бол TrustedHosts параметрүүдийг бүлгийн бодлогоор тохируулж болно.

Чухал!
Доор үзүүлсэн тушаал нь практик биш, учир нь одоогийн лавлах WSMan:\localhost\client суулгаагүй (div. командын зулын гол, бидэнд илүү олон зүйл бий).

Set-Item TrustedHosts *

Та тушаалыг өөр лавлахаас ажиллуулж болно, эсвэл TrustedHosts руу шинэ замыг зааж өгөх шаардлагатай байж магадгүй:

Set-Item WSMan:\localhost\Client\TrustedHosts *

Баталгаажуулах хүсэлт дээр "Y" товчийг дарна уу.

PowerShell нь TrustedHosts тохиргоонд бидний хийсэн тохиргоог өөрчлөхийн тулд та WSMan үйлчилгээг дахин эхлүүлэх хэрэгтэй. Цэ довтолгооны командын тусламжийн төлөө тулалдахаар:
Winrm үйлчилгээг дахин эхлүүлэх

Үүнтэй төстэй үйлдэл нь vikonati z-pіd DOS байж болно. Winrm-? командыг ажиллуулна уу. Та багийн талаар ерөнхий тайлбар өгч болно. TrustedHosts-ийн утгыг илүү нарийвчлалтай харахын тулд дараах тушаалыг дагана уу:

winrm winrm/config/client-г авна

мөн утгыг тохируулахын тулд дараах vikonaty:

winrm тохируулсан winrm/config/client/ @(TrustedHosts="*")

TrustedHosts-ын хувьд "*" тэмдэгтийн утга болох бусад тушаалуудын хувьд та оронд нь тодорхой серверийн нэрийг зааж өгч болно. TrustedHosts-ыг удирдах нь "Get" болон "Set" PowerShell-ийг идэвхгүй болгох холбоосыг холбох сонгодог арга юм: та Get-Item болон Set-Item гэж бичиж болно.
Алсын удирдлагатай PowerShell 2.0 сессийг үүсгэх ба дуусгах
Доорх командуудад "IpAddress"-ийн өөрчлөлтийг шаардлагатай IP хаяг руу, "FQDN"-ийн өөрчлөлтийг бүрэн мэргэшсэн домэйн нэр болгон тохируулна уу.

PSSession IP хаягийг оруулна уу

PSSession FQDN-г оруулна уу

Алсын роботын сессийг дуусгахын тулд дараах тушаалыг дагана уу.

Enter-PSSession тушаалд more.name.domain.name хэрэгтэй. Жишээлбэл, MyServer.domain.local-ийн хувьд MyServer-ийн энгийн оруулга ажиллахгүй, гэхдээ IP хаягийг сонгох нь ийм нөхцөлд үргэлж сайн ажиллах болно. PSSession-ийн өөр арга:

Шинэ-PSSession-компьютерийн нэр testMachine2 Get-PSSession

Та энэ хуралдааны ажлыг дараах байдлаар дуусгаж болно.

Get-PSSession | устгах-PSSession

Хэрэв та роботыг алсаас эсэргүүцэхийг хүсч байвал өөр машин байхгүй бол компьютерийнхээ "алсын холболт"-ыг өөртөө бий болго. Жишээлбэл, хэрэв таны машин MyMachine нэртэй бол дараахыг оролдоно уу:

New-PSSession -компьютерийн нэр MyMachine

Энэ нь танд хачирхалтай, логикгүй сонсогдож магадгүй ч ийм байдлаар та PowerShell 2.0 дээр алсын зайнаас ажиллахыг оролдож болно.

PowerShell 2.0 сесс дээр алсын зайнаас ажиллах
Алсын холболт хийсний дараа та PowerShell 2.0 консол дээр тэдгээрийг ажиллуулдаг командын дамжуулах шугамуудыг зохион байгуулж болох бөгөөд хэрэв та алсын машин дээр өмхий үнэр авч болно, гэхдээ та гар дээр байж, энд биш тэнд команд бичих хэрэгтэй. Жишээлбэл, дараах тушаалыг ажиллуулж, ажлын үр дүнг харна уу.

Байршлыг тохируулах c:\ | Хүүхэдтэй болох

Энэхүү анхны тусламжийн гол үүрэг бол PowerShell 2.0-ийн алсын холболтын сессийг үүсгэхэд туслах бөгөөд үүнийг хэрхэн хаахыг харуулах явдал юм. Дараа нь та өөрөө үүнийг хийх хэрэгтэй болно, жишээ нь алсын холболт дуусах хүртэл хүлээх боломжгүй болно. .

Анхаарна уу
Хэрэв танд команд гэх мэт алсын зайнаас холболт байхгүй эсэхийг гайхаж байгаа бол локал машин дээрээ ар араасаа эсэргүүцлээ илэрхийлээрэй.

Хэрэв танд алсаас холболт хэрэггүй л бол энэ нь танд сүлжээнд холбогдсон компьютерын тусламжтайгаар keruvane-д зориулсан PowerShell 2.0-ийг хожих боломжийг олгоно. Одоо та бусад машинуудын хувилбаруудыг харж болно. PowerShell 2.0 нь "-computerName" параметрийг багасгах олон командуудтай боловч ирээдүйд энэ нь PSSession гэр бүлийн командуудыг хожих, мөн Invoke-Command руу залгах боломжийг олгоно (ингэснээр та бүх зүйлийг байнга ажиллуулж болно) .

PowerShell 2.0-ийн алсын зайнаас ажиллах үйл явцтай холбоотой асуудлуудын талаар олж мэдээрэй

Нэг ердийн асуудал– ЗАСВАР "Хандалт зөвшөөрөгдөөгүй" (хандах боломжгүй).

Шийдэл:
PowerShell 2.0-г администратороор ажиллуулна уу. Хоёр машин дээр (холбож байгаа болон холбогдож байгаа машин дээрээ) туршаад "TrustedHosts" утгыг * (z) болгож тохируулна уу. Энэ сонголт нь дууг холбох боломжийг олгодог гэдгийг мартаж болохгүй.
WinRm үйлчилгээг дахин эхлүүлэхээ бүү мартаарай, эс тэгвээс та "TrustedHosts"-ыг "TrustedHosts"-д өөрчлөх боломжгүй болно. Үйлчилгээг дахин эхлүүлэхийн тулд PowerShell 2.0 консол дээр дараах тушаалыг ажиллуулна уу: Restart-Service WinRm
Нэмж хэлэхэд, хүндэтгэлтэй хандаж, WSMan үйлчилгээ үзүүлэгчийн нэрийг WinRm үйлчилгээний нэртэй андуурч болохгүй.
Өөр нэг гайхалтай, гэхдээ заримдаа нэмэлт баяр баясгалан: Алсын холболтын туршилтыг давтаж үзээрэй. Энэ нь гайхалтай, гэхдээ та эхний дээжийг асууж чадахгүй, гэхдээ та өөр эсвэл гурав дахь дээжийг асууж болно. Тобто. та тушаалыг давтах хэрэгтэй: Enter-PSSession -computerName myOtherMachineName

Галт хана, PowerShell 2.0 болон "rpc сервер боломжгүй байна" ( RPC серверболомжгүй)
Fakhіvtsі z z bezpeka онд zhahu ийм санал гараа өргөх, Гэсэн хэдий ч, томилогдсон илүү өршөөлийн үед би та хоёр компьютер дээр галт ханыг асаах гэж хэлэх болно. Хэрэв бүх зүйл идэвхжсэн бол энэ нь сайн байна, энэ нь 135 ба 445 портуудын тохиргоог өөрчлөх шаардлагатай гэсэн үг юм. Эдгээр портуудыг галт хананд идэвхжүүлэхийн тулд тохируулна уу - PowerShell 2.0-г идэвхжүүлэх.

P.S. Enable-PSRemoting командыг авч болно гэж би уншсан автоматаар оруулсангалт ханыг өөрчил, гэхдээ миний бодлоор үүнийг битгий орхи.
Тэдгээрийн тухай, тусламж хүсэх гэх мэт бүлгийн бодлого Windows 8 дээр галт ханыг идэвхжүүл, уншина уу.

Алсын зайн PowerShell 2.0-д тааруулж байгаа хоёр чихэвч
PowerShell 2.0 дээр алсаас ажиллах хоёр сонголтыг хэрхэн судлахыг танд үзүүлэх цаг болжээ.
Эхний арга бол vitonchenish хувилбар бөгөөд командлуудыг үүсгэж, өөр машин руу тогтвортой суваг үүсгэдэг. Ийм тушаалын нэрийг нэр болгон "PSSession" гэсэн үгээр сольсон (командлетуудын нэр "Dieslovo-Name" дүрмийг дагаж мөрдөх болно гэж би бодож байна). Та дараах командыг ашиглан эдгээр командлетуудын орчуулгыг устгаж болно.

Get-Command -Нэр үг PSSession

Нөгөө арга нь PowerShell 2.0 алсын зайн ажлын канон хэлбэр юм. Цей аргазүгээр л локал командуудыг өргөжүүлж, тэдгээрт "-computerName" параметрийг нэмж, үүний тулд компьютерийг өргөтгөх шаардлагатайг зааж өгсөн бөгөөд үүн дээр үйлдлийг гүйцэтгэх шаардлагатай. Үүний үр дүнд эдгээр тушаалуудыг массив дахь өөр машин дээр ажиллуулах болно:

Get-Process -computerName машин2

Өөр cmdlet, тиймээс та ийм энгийн аргыг ашиглах боломжтой (энэ нь чимээгүй, та "-computerName" параметрийг агуулахад ашиглаж болно) тусламж авахын тулд дараах тушаалыг ашиглаж болно:

get-command | хаана ($_.parameters.keys -"Компьютерийн нэр"-г агуулна)

Өөр аргыг дагаж болох cmdlet-ийн хамгийн сүүлийн өөрчлөлтийг дараах байдлаар өөрчилж болно:

get-command | хаана ($_.parameters.keys -"Компьютерийн нэр"-г агуулна -болон ($_.parameters.keys -"Хурц"-ыг агуулаагүй))

PowerShell 2.0 дахь vіddalena роботын тухай Pidbivaemo pіdpomok
Үүний нууц нь ирээдүйд PowerShell 2.0-ийг ашиглах шаардлагатай хүмүүст зориулагдсан бөгөөд үндсэн яриаг ойлгох шаардлагатай хүмүүст зориулагдсан болно.
Дараа нь WinRm суулгана уу.
Enable-PSRemoting командын тусламж авахын тулд та алсын харилцааг идэвхжүүлэх хэрэгтэй.
TrustedHosts-г тохируулах шаардлагатай (жишээлбэл, утгыг * гэж тохируулах).
Enter-PSSession командыг сонгохдоо зангилааны нэр эсвэл түүний IP хаягийг зааж өгөхөө бүү мартаарай.

Anglomovna dzherelo vikladenoї болон миний боловсруулсан мэдээллийн trochs.

# Алсын машинд шинэ холболт үүсгэх $s = New-PSSession -компьютерийн нэр TestComputer

# Виконуэмо алсын машин дээр үүнийг хий, жишээлбэл - C лавлахыг гайхшруулж:
Invoke-Command -Session $s -ScriptBlock (ls c:\)

# "%ProgramFiles%\MyCompany\MySoft" алсын машины лавлах дээр үүсгэгдсэн.
Invoke-Command -Session $s -ScriptBlock (Шинэ зүйл -Path "$env:ProgramFiles\MyCompany\MySoft" -ItemType лавлах)

# Prote, командуудыг гараар оруулахгүй байх нь дээр, гэхдээ алсын машин дээр ажиллуулахын тулд скрипт аль хэдийн бэлэн болсон байна:
Invoke-Command -Session $s -FilePath "\\ServerDir\Common Scripts\MyScript.ps1"

# Сессийг дуусгах
$s | устгах-PSSession

2011.03.04 Билл Стюарт

Хувилбар Windows PowerShell 2.0 алсын удирдлага гэж нэрлэгддэг алсын компьютерт холбогдох өөр механизмыг хэрэгжүүлэх. Ялалтын үйлчилгээний бүхэл бүтэн механизм алсын тусламж Windows (Windows Remote Management, WinRM). Win нь алсын компьютерт холбогдохоос гадна тухайн алсын компьютерт холбогдсон командуудыг ажиллуулах боломжийг олгодог

PowerShell 1.0 бүрхүүлийн хөгжүүлэлт нь Windows XP-ийн цөм, автоматжуулалт, түүнчлэн Windows үйлдлийн системийн платформын хамгийн сүүлийн үеийн хувилбаруудыг хөгжүүлэх шинэ нээлт болсон. Яка нь платформ дээр суурилдаг. NET Framework PowerShell 1.0 технологи нь нэг хүний ​​командын бүтцийг (cmdlet) агуулдаг бөгөөд энэ нь гаралтын өгөгдлийг форматлах, бусад технологийн хүртээмжийг мэдэгдэхүйц ахиулахад чиглэсэн шаргуу хөдөлмөрөөр хангагдсан бөгөөд бид дамжуулж байна - іnstrumentarіyu Windows менежмент(WMI). Гэсэн хэдий ч, хэрэв та PowerShell 1.0 тушаалуудыг хадгалахыг хүсвэл тухайн объект. NET нь алсын компьютерт холбогдож болох бөгөөд функц нь тодорхой төрлөөс хамааран ялгаатай байдлаар хэрэгждэг. pіdtremuyut vіddalenі z'єdnannya гэсэн тушаалууд, mayut -ComputerName; Үүнээс гадна, системийг суулгах үед өмхий үнэр vikoristovuyut vikliki vіddalennyh журам (RPC), эсвэл DCOM загвар.

RPC болон DCOM-ийн янз бүрийн нөхцөл байдалд менежментийг даван туулах, оношилгооны ялалтын процедурт оролцох нь зүйтэй бөгөөд хэрэв эвдрэлийн шалтгааныг олж мэдсэн бол тэд заримдаа асуудлыг буруутгадаг. Жишээлбэл, Get-Service команд нь -ComputerName параметрийн тусламжтайгаар алсын компьютерээс үйлчилгээний өгөгдлийг унших боломжтой, процессын команд нь -Итгэмжлэлийн параметргүй, эзлэхүүн нь бүртгэгдсэн байх ёстой. нүүрний бичлэг, энэ нь алсын системд хандах боломжийг олгоно.

Але аль хэдийн орсон Windows хувилбарууд PowerShell 2.0 нь алсын удирдлага гэж нэрлэгддэг алсын компьютерт холбогдох өөр механизмыг хэрэгжүүлдэг. Энэ бол Windows алсаас хянах үйлчилгээний (Windows Remote Management, WinRM) ялалтын үйл ажиллагааны механизм юм. Win нь алсын компьютерт холбогдохоос гадна тухайн алсын компьютерт холбогдсон командуудыг ажиллуулах боломжийг олгодог. Би жишээгээр тайлбарлая. PowerShell командын мөрөнд алсаас холбогдсонтой адил coristuvacha-ийн график интерфэйс рүү нэвтрэхийн тулд алсын ажлын хүснэгтэд холбогдох боломжтой болго. Хэрэв та алсын зайнаас харилцах нэмэлт механизмд зориулж агуулахын командыг ажиллуулж байгаа бол уг тушаалыг алсын компьютер дээр гүйцэтгэх боловч үр дүнг локал машинаас авах боломжтой хэвээр байна.

Та Windows PowerShell 2.0-г хаана ашиглаж болох вэ

PowerShell 2.0 бүрхүүл болон WinRM үйлчилгээ нь Windows 7 болон Windows Server 2008 R2 системийн нөөцөд багтсан тул эдгээр бүрэлдэхүүн хэсгүүдийг суулгах шаардлагагүй болно. Та системтэй хэрхэн ажилладаг вэ Windows Vista SP2, Windows XP SP3, Windows Server 2008 SP2 эсвэл Windows Server 2003 SP2 бол Windows Management Framework Core багцыг (support.microsoft.com/kb/968930) суулгах шаардлагатай.

Бие биенийхээ хоорондын зайд функцийг нэмэгдүүлсэн

Компьютер нь PowerShell бүрхүүл суулгасан бусад системүүдтэй холбогдохын тулд ийм сэтгэлгээг хангах шаардлагатай.

  1. Та WinRM үйлчилгээг идэвхжүүлэх хэрэгтэй.
  2. Та нэг эсвэл өөр IP хаягаас дуудлага хүлээн авах WinRM сонсогчийг суулгах хэрэгтэй.
  3. Мережевий цонхны дэлгэцгэм буруутай buti nalashtovaniya ийм зэрэглэл, schob z'үзэгдэж mozhlivist vstanovlenya z'ednan WinRM дамжуулан.
  4. Хамгийн сүүлд гэхдээ хамгийн наад зах нь PowerShell сессийг дуусгах ердийн ёслол.

Компьютерийн хувьд бусад компьютер дээр суулгасан PowerShell-ийн бүрхүүлийг таних боломжгүй тул оюун ухааны хэлийг өөрчлөх шаардлагатай.

Хакерууд роботыг хялбархан хэлэхийн тулд Microsoft PowerShell-ийн жижиглэнгийн худалдаачид Enable-PSRemoting командыг бүтээсэн бөгөөд энэ нь таасан бүрэлдэхүүн хэсгүүдийг автоматаар тохируулах боломжийг олгодог. Та алсаас ажиллах машинаар биш, харин компьютер дээр алсаас явах хүртэл үүнийг засах шаардлагатай. Та PowerShell бүрхүүлийг администраторын эрхээр ажиллуулж байгаа тул энэ тохиолдолд зөвхөн Enable-PSRemoting командыг ашиглаж болно. Та яаж дасгал хийдэг вэ Windows машинууд Vista, Server 2008 болон шинэ хувилбарууд, баруун товчлуур PowerShell дүрс дээр товшоод цэснээс Run as administrator командыг сонгоно уу. Хэрэв та Enable-PSRemoting командыг -Force параметрээр ажиллуулбал амжилтгүй болбол систем арьсны тохиргооны алхамыг устгах зөвшөөрөл авахын тулд тантай холбоо барихгүй. Enable-PSRemoting агуулах командын талаарх тайланг үзэхийн тулд команд дээр дарна уу

Get-Тусламж идэвхжүүлэх-PSRemoting

Алсын компьютер дээр нэг командыг үзэж байна

Алсын компьютер дээрх PowerShell орчинд холбогдох хамгийн хялбар арга бол Enter-PSSession командаар хандах явдал юм. Бичиж дууссаны дараа команд нь -ComputerName параметртэй холбогдсон тул гарнаас оруулах үед параметрийг орхиж болно. Жишээлбэл, Rigel нэртэй алсын компьютерийг суулгахын тулд та гарнаас оруулах хэрэгтэй

PS C:\> Enter-PSSession rigel

Таны хүндэтгэлийг хүлээж аваарай: бүрэн дүүрэн байхын тулд би хүсэлтийн текстийг ухаж байна. Та тушаалын хүссэн хэсгийг оруулах шаардлагагүй.

Алсын сессийг оруулах үед PowerShell хүсэлтийн синтакс өөрчлөгдөнө. Одоо энэ нь алсын компьютерийн дөрвөлжин гарт орохгүй; Энэ нь та алсын компьютер суулгасан гэсэн үг юм. Энэ харагдацад хүссэн харагдац дараах байдалтай байна.

: PS C:\>

Алсын холболтыг суулгасны дараа тушаалын мөрөнд оруулсан бүх командууд алсын машин дээр гарч ирнэ. Тиймээс, хэрэв та тушаалыг оруулбал

: PS C:\> Get-ChildItem C:\

Get-ChildItem команд алсын машин дээр идэвхгүй болно. Алсын компьютерийн С хадгалах сангаас хадгалагдсан файл, хавтасны нэрнээс өгөгдөл устах болно. Алсын горимд сессийг дуусгахын тулд Exit-PSSession командыг ашиглан яаравчлаарай

: PS C:\> Exit-PSSession

Алсын компьютер дээр Scriptblock үзэж байна

Podpomogoyu PowerShell-д зориулсан Vidalenya vzaєmodіya нь алсаас компьютерийн блок скрипт эсвэл скрипт блок дээр vykonuvaty боломжийг олгодог (PowerShell-ийн кодыг хаах, нум хэлбэрээр байрлуулах). Үүний тулд Invoke-Command командыг -ComputerName параметрээр хурдасгах шаардлагатай. Жишээлбэл, 1-р дэлгэц дээр гарч буй командын хувьд би алсын компьютер дээрх Get-ChildItem-ийг хүчингүй болгохын тулд Invoke-Command командыг дарж бичдэг. Дэлгэц 1-ийг хараад, өмнө нь алсын компьютерээс холболтыг суулгахын тулд скрипт блокыг хэрхэн ажиллуулах талаар би Enter-PSSession командыг ялаагүй гэдгийг санаарай. Enter-PSSession болон Invoke-Command командууд нь алсаас харилцах хоёр өөр арга юм.

Invoke-Command-ын эхний параметр нь -ScriptBlock; Vіn vikonati сонгосон кодыг зааж өгнө. Дэлгэц 1 дээр -ScriptBlock параметрийн нэрийг орхисноор хэлтэрхийнүүд нь үл хамаарах хэлээр дүрслэгддэг. -ComputerName параметр нь алсын компьютерийн нэрийг орлуулах болно. Гаралтын өгөгдлийн PSComputerName баганад алсын компьютерийн нэрийг зааж өгөхийн тулд операторын ил тод байдлыг хангах PowerShell орчин болох гаралтын өгөгдөлд Get-ChildItem командыг хэрхэн ашиглаж болох вэ.

Олон тооны алсын компьютер дээр скрипт блокыг үзэж байна

Скрипт блокыг хүссэн хэмжээгээрээ олон компьютер дээр ажиллуулж болно. Цэ нь "нэг баячлах" тохиргоо эсвэл хоолойны шил гэж нэрлэгддэг. Дэлгэц 1-д Invoke-Command командын -ComputerName параметр нь нэг нэрийг орлуулах боломжтой боловч шинэ нэрээр цөөн хэдэн компьютерийн нэрийг солих боломжтой. Тиймээ, баг

PS C:\> Invoke-Command (Get-ChildItem env: co*) -Computer titan, rigel

Get-ChildItem команд нь алсын хоёр компьютер дээр ажиллаж байгаа эсэхийг шалгаарай. Өгүүллийн текстэнд тушаалыг мөр болгон хуваасан боловч PowerShell консол дээр дараахь зүйлийг нэг мөрөнд оруулна. Эдгээр нь бусад багуудын хувьд адилхан бөгөөд спрат эгнээнд хуваагдана. Тэгэхээр 1-р дэлгэц дээрх шиг гаралтын өгөгдлийн PSComputerName нь ижил компьютерийн нэр юм.

Скрипт блокийг арын горимд үзэж байна

PowerShell 2.0 нь танд далд ажлыг гүйцэтгэх боломжийг олгодог бөгөөд ингэснээр оператор ард тушаалыг ажиллуулах боломжтой болно. Ийм боломж нь командуудыг ажиллуулахад нэг цагийн турш шаардлагатай бөгөөд үүнийг дуусгахад нэг цаг шаардагдана.

Орон нутгийн компьютер дээр суурь ажлыг ажиллуулахын тулд Start-Job командыг ажиллуулж болно. Гэсэн хэдий ч, команд нь -ComputerName параметргүй гэдгийг хэлэх хэрэгтэй, гэхдээ алсын машин дээр арын ажлыг ажиллуулахын тулд үүнийг даван туулах боломжгүй гэсэн үг юм. Одоогоор та Invoke-Command командыг -AsJob параметрээр бичих хэрэгтэй болно. Тиймээс 2-р дэлгэц дээрх дээд тушаал нь алсын компьютерийн титан дээрх арын даалгаврын өмнө скрипт блокыг эхлүүлдэг. Үүний дараа би энэ командыг оруулах үед дэлгэцэн дээр хүсэлт гарч ирэв: PowerShell бүрхүүл нь компьютерийг алсаас удирдах скрипт блокыг ажиллуулж, дараа нь удирдлага над руу эргэв. Урьдчилан виконаны команд нь эцсийн консол дээр тохирохгүй байсан бөгөөд гаднах өгөгдөлд ороогүй болно. Yakby vykno консол Би гаралтын өгөгдлийн жагсаалтад тушаалыг оруулснаар илүү өргөн, zasib formatuvannya PowerShell бүрхүүлтэй байсан. Id болон Name баганад даалгаврыг зааж өгсөн (таны танигч, ойлгомжтой нэр тодорхой), Төрийн баганыг ажлын байранд: шалгасан, түдгэлзүүлсэн, дуусгасан. HasMoreData үйлчилгээ үзүүлэгч нь бүх өгөгдлийг шалгасан, дараагийн ажил хийх шаардлагатай байгаа эсвэл ялалтын ул мөр гэх мэт илүү их хэмжээний өгөгдлийг нөхөх даалгавартай байгаа талаар мэдээлэх мэдээлэлтэй.

Арын ажил дууссан эсэхийг шалгахын тулд та Get-Job командыг ажиллуулж 2-р дэлгэц дээр өөр командыг харуулах боломжтой. Хэрэв та параметрүүдийг хүчингүй болгохгүй бол Get-Job нь цацалтын сессийн цаг тутамд ажилладаг бүх ажлыг хүчингүй болгоно. . Хэрэв та нэг удаад даалгаврын spiel хожихыг хүсэж байгаа бол, та ийм параметрүүдийг ялах боломжтой, -Id эсвэл -Нэр, даалгавар, Өөрчлөхийг хүсэж байгаа даалгавар гэх мэт. Хэрэв арын даалгавар дууссан бол арын даалгаврын төлөвийг Дууссан гэж тохируулна.

Суурь ажлын үр дүнг унших бол Хүлээн авах-Ажлыг тэмдэглэж болно. Get-Job гэх мэт энэ тушаал нь шууд дамжуулалтын сессийн цаг тутамд эхэлсэн бүх ажлын үр дүнг эргүүлдэг, учир нь та даалгавар өөрөө таныг дууддаг шиг эдгээрийг гүйцэтгэх параметрийг дараагүй болно. Тиймээс, 2-р дэлгэц дээрх командын үлдсэн хэсэгт -Id параметр багтсан бөгөөд энэ нь 9-р танигчтай даалгаврын талаархи мэдээллийг анхаарч үзэх шаардлагатайг харуулж байна. Би хэлээр заагаагүй -Id параметрийн нэрийг орхисон. Дэлгэц 3 дээр амралтын өдрүүдийн өгөгдлийн үлдсэн мөрүүдийг харж байгаа алслагдсан дэлгэцэн дээр эргэлдэж байна.

PowerShell дээр сесс үүсгэх

Алсын PowerShell машинууд дээрх хүсэлтэд хэрхэн хандах, алсын компьютер дээр тушаалуудыг хэрхэн гүйцэтгэхийг харуулахын тулд үүнийг илүү ойртуулна уу. Ale, одоохондоо, харилцан үйлчлэлээс хол байгаа хүмүүсийн талаар бодохгүйгээр, тэдгээрийг хуралдааны хүрээнд бий болгож байна. Сесс бол PowerShell-ийн амьдардаг газар гэж хэлье. Та PowerShell консолын цонх эсвэл PowerShell нэгдсэн скриптийн орчин (ISE) цонхыг нээх үед сесс үүсгэнэ. Алсын харилцан үйлчлэлийн тусламжгүйгээр бүх сессүүд нь орон нутгийн компьютер дээр хадгалагдаж, бие биенийхээ хажууд байрладаг. Бүх онилсон тулгалтуудад, алсын харилцан горимд, алсын зайн харилцан горимыг дуусгасны дараа автоматаар хавсаргадаг тул цаг хугацааны сессүүд үүсдэг. Нэмж дурдахад, алс холын харилцаанд сессийн тохиолдлуудыг бий болгож, тэдгээрийг дахин ялах үнэхээр боломжтой юм. Алсын компьютерт нэгээс олон удаа хандах шаардлагатай бол ийм пидхид нь бүтэлгүйтсэн тохиолдолд илүү үр дүнтэй байдаг.

Шинэ сесс үүсгэхийн тулд -ComputerName параметртэй New-PSSession командыг ашиглана уу. Команд дахь энэ параметрийн нэрийг орхигдуулж болно. Тиймээ, баг

C:\> $sessions = Шинэ-PSSession phineas, ferb, perry

Би Phineas, Ferb, Perry гэсэн гурван компьютер дээр гурван сесс үүсгэдэг. Та $sessions-ийг өөрчилснөөр сешнүүдийг харах боломжтой. Хэнд зориулж командын мөрөнд im'ya оруулах шаардлагатай байна

$ сесс

мөн enter товчийг дарна уу. Invoke-Command командын -Session параметр нь New-PSSession командын тусламжтайгаар үүсгэсэн сеансын объектыг хасдаг тул та доромжилсон тушаалтай адил командыг мушгиж болно.

C:\> Invoke-Command (Get-ChildItem) -session $sessions

Энэ команд нь phineas, ferb, perry машинууд дээрх Get-ChildItem командыг бүтэлгүйтсэн боловч өдөр нээхгүй. Та арын горимд -AsJob параметрийг тушаалд нэмж болно:

C:\> Invoke-Command (Get-ChildItem) -session $sessions -asjob

Ажиллах шинэ пидхид

podpomogoyu zasobіv PowerShell нь Vіddalena vzaimodiya - vіddalennyh компьютер дээр vykonannya тушаалуудын шинэ хатуу механизмын үнэ. Би spodіvayus, tsya statya doslіdzhennya шинэ боломжууд дээр таныг түлхэц. Оношлогоотой холбоотой асуудлуудыг багтаасан алсаас хамтран ажиллах чадварын талаарх тайланг technet.microsoft.com/en-us/library/dd347616.aspx дээрх_Remote тухай PowerShell-ийн дэвшилтэт сэдвүүдээс олж болно.

Билл Стюарт ( [имэйлээр хамгаалагдсан]) - Нью Мексико дахь Францын Мортуар компанийн системийн администратор



  • заавар

Хамгийн бага онол байдаг, хамгийн чухал нь практик байдаг. WinRM-г хэрхэн тохируулах, профайлыг хэрхэн өөрчлөх талаар тайлбарлана уу twill адаптер, скриптийг TrustedHosts-д шүүлтүүрээр нэмэхээр өгсөн бөгөөд үүнийг итгэмжлэгдсэн хостуудын хэрэгцээнд үндэслэн тайлбарлаж, тэдгээрийг өнгөцхөн хардаг. алсын холболтИнгэснээр та bulo систем болон vіdrazu vіdminiti vіddalenі машин болно.

Алсын зайд виконати удирдлагыг тохируулах хамгийн энгийн арга Идэвхжүүлэх-PSRemoting оболонцид администраторын эрхээр амьдардаг. Энэ нь иймэрхүү болоход:

  • WinRM үйлчилгээг эхлүүлэх (дахин эхлүүлсний дараа)
  • WinRM үйлчилгээ бааз руу явдаг - эхлүүлэх үед автоматаар эхэлнэ
  • WinRM-ийг чагнаж байж үүсгэнэ httpпортын урсгал 5985 бүх локал IP хаягуудад
  • WinRM сонсогчдод зориулж галт ханын дүрмийг бий болгоно. Хүндэтгэсэн, энэ зүйлийг аль болох хурдан дуусгах болно, хэрэв картуудыг нэгтгэхээс л бол нэгтгэх төрөл нь "нийтийн", учир нь Ийм карт дээр порт нээх нь сайн зүйл биш юм. Хэрэв та тохируулахдаа ийм өршөөл үзүүлж байгаа бол сүлжээний профайлыг cmdlet ашиглан өөрчил Set-NetConnectionProfile дараа нь Enable-PSRemoting-г дахин ажиллуулна уу. Хэрэв танд "Улсын сангийн" профайлтай холбогдсон карт хэрэгтэй бол Enable-PSRemoting-г параметрээр ажиллуулна уу. -SkipNetworkProfileCheckаль нь галт ханын дүрмийг бага үүсгэсэн байх болно орон нутгийн шугамууд.
Шаардлагатай бол удирдлага шаардлагатай байгаа тэр машинаас алслагдсан машинтай холбогдох боломжтой. Zrobleno tse Z metoyu аюулгүй байдлыг өөрчлөхийн тулд алсын keruvannya эсвэл DNS-ийн муу сессийн эрсдэлийг өөрчлөхийн тулд алсын машин болон zapobigti vykonannya skriptiv солих нь өөрийгөө нотлох, та зөвшөөрөхгүй primusovo шиг.

Vikoristovuemo-г хаана холбож болохыг дахин шалгахын тулд:
get-item wsman:\localhost\Client\TrustedHosts
бүгдтэй холбогдох боломжийг танд олгоно
set-item wsman:localhost\client\trustedhosts -утга *
Хэрэв та заасан бүх төрлийн хандалтыг идэвхжүүлбэл * WinRM нь дахин утас оруулахгүйгээр БҮХ машинтай холбогдоно. Орон нутгийн хэмжээсийн болзошгүй хор хөнөөлийн талаар өөртөө юу хэлж байгаагаа санаарай. Товчхондоо, та холбогдох шаардлагатай хост хаягуудыг зааж өгвөл WinRM бусад бүх хаяг эсвэл нэрийг зөвшөөрөх болно. Хэрэв машиныг удирдаж байгаа бол тухайн домайн дахь бүх машинд итгэдэг домэйнд байх ёстой. Хэрэв энэ нь домэйнд эсвэл өөр домэйнд байхгүй бол TrustedHosts-д хаягаа оруулах шаардлагатай эсвэл машин түүнд холбогдох болно. Бид холбогдоогүй болтол машинаар өөртөө нэмээрэй.

Тусламжийн командууд өгөгдсөн байгаа, би скриптээс тэдний хэд хэдэн хэсгийг сэргээсэн
############################################### ########################################## and schoolhost### recthost## and and and and and # smicati z тушаалын мөрдунд хэсэггүйгээр параметрийг зааж өгөх #.\Add-TrustedHost.ps1 192.168.2.1 ############################## ### ############################################# ## # param ($NewHost = "192.168.2.89") Write-Host "хост нэмэх: $NewHost" $prev = (get-item WSMan:\localhost\Client\TrustedHosts).утга хэрэв (($prev.Contains() $NewHost) )) -eq $false) ( if ($prev -eq "") ( багц зүйл WSMan:\localhost\Client\TrustedHosts -Утга "(!LANG:(!LANG:$NewHost)" } else { set-item WSMan:\localhost\Client\TrustedHosts -Value "$prev, $NewHost" } } Write-Host "" Write-Host "Now TrustedHosts contains:" (get-item WSMan:\localhost\Client\TrustedHosts).value !} !}
vіn revіryає chi є ийм рекорд, жагсаалтад юу ч нэмээгүй юм шиг. Хаяг эсвэл нэрийг оруулах замаар командын мөрөөс залгах боломжтой.

Є ryznitsya kazuvati im'ya chi хаяг. Хэрэв TrustedHosts-д зөвхөн хаягууд байгаа бол сессийг харагдахгүй нэрээр нээж, navpaki - хэрэв та im'ya гэж зааж өгвөл харагдахгүй хаяг руу хавсаргана уу. Цэ руу залгаарай.

яагаад өөр юм

Идэвхжүүлэх-PSRemoting нь "winrm quickconfig"-ийг багасгаж, илүү өөрийн гараар хулгайлдаг. Set-WSManQuickConfig команд нь "winrm quickconfig"-тэй адилхан ажилладаг. Хэрэв та системийг тохируулсан бол Enable-PSRemoting нь Set-WSManQuickConfig-г ажиллуулдаг.

Алсын холболт
1. 1-ээс 1 хүртэлх хичээлүүд
гэж багийнхан хашгирав
Enter-PSSession -ComputerName Test
Та алсын машин дээр бүрхүүлийг нь тайл. Та localhost руу орсноор өөртэйгөө холбогдож болно. Альтернатив зээлийг параметрийн хамт хуваарилдаг -Итгэмжлэл, cmdlet-ээр гарсан гарах-PSSession

Ийм байдлаар солилцох:

  • өөр үсний засалт хийх боломжгүй - 1-ээс бага сесс, хуралдааны дундуур цаашид холбох боломжгүй
  • Та график интерфэйс хийх командуудыг хожиж чадахгүй. Хэрэв та бүрхүүлийг өлгөхийг хүсвэл Ctrl + C дарж өлгөх боломжтой
  • nslookup, netsh гэх мэт өөрийн командуудыг ажиллуулж болох командуудыг ажиллуулах боломжгүй
  • Бодлого нь алсын машин дээр ажиллуулахыг зөвшөөрдөг тул та скриптүүдийг ажиллуулж болно
  • интерактив сессэд нэгдэх боломжгүй, Та "сүлжээнд нэвтрэх" шиг явдагНэгтгэсэн дискэнд хавсаргасан nibi нь Том нэвтрэх скриптийг ажиллуулахгүй бөгөөд та алсын машин дээр гэрийн фолдерыг авч чадахгүй (аргумент нь үндсэн фолдер болон нэвтрэх скриптүүдийн зураглал биш юм)
  • Та тэндээс ижил дарс олохын тулд алсын машин дээрх сурвалжлагчтай харилцаж чадахгүй. Төгсгөлд нь харуулах гэж бүү яар, эсвэл чамтай нөхөрл.
Энэ арга нь серверийг арилжаалж, холбосны дараа энгийн үйлдлүүдэд хамгийн сайн арга юм. Хэрэв та олны өөрчлөлтийг арилгах шаардлагатай бол гурвалсан хагалгаа (олон жил ба түүнээс дээш хоног) хэрэгтэй бол удирдлагын хувьд илүү их боломж хэрэгтэй, дараа нь та асууж техникийг ялах хэрэгтэй.
Сэтгэгдэл.
тороор дамжсан объектууд үүсч, амьдрахаа болино. Өмхий үнэр нь арга барилаар харагддаг, эрх мэдэлтнүүд хаягдаж байна. Таны машин дээр Vityagti ob'єkt, pochakluvat болон түлхэж буцаж явж болохгүй. Хэрэв илүү их зүйл бичих шаардлагатай бол би үүнийг зөв нэмэх болно.

2. 1-ээс олон хичээл
Дуудах-команд
Бид харж чадах зүйлээ дараах байдлаар илэрхийлнэ.
$sb = (комагаар хуваагдсан алсын машинд зориулсан командууд)
алсын машинууд руу шилжүүлсэн Test1 болон Test2
Invoke-Command -ComputerName Test1, Test2 -ScriptBlock $sb
Нэг удаад та 32 машиныг шидэх боломжтой. Альтернатив зээлийн хувьд, дараа нь -Итгэмжлэл параметр нь ялалт юм

-ScriptBlock параметрийг солихын тулд скриптийг дахин шилжүүлэхийн тулд -FilePath гэж бичнэ үү, алсын машинд файлд хандах шаардлагагүй, сэлбэг хэрэгслийг зохион байгуулж, HTTP-ээр дамжуулж, тэр талаас нь төгсгөл хийнэ.

Энэ тал дээр шинэ osprey байх болно гэдгийг санаарай, тиймээс таны скрипт нь таны консол дээрх утгыг дарахгүй бөгөөд өөрчлөгдсөн скриптүүд хоосон харагдаж болно. Үүний тулд параметр бүхий бэлэн заавар, скриптийг илгээнэ үү.

Invoke-Command-г бүрэн дахин бичихийн тулд та мөрүүдийг скрипт блок болгон өөрчлөх хэрэгтэй. Жишээлбэл, танд ийм жагсаалтад хэвтэх тушаал байгаа тул та мөр үүсгэж, ScriptBlock руу хөрвүүлж, алсын компьютер руу илгээх хэрэгтэй.
$sb = ::Create($SomeString)
куда78
Энэ нийтлэлд өөр нэг чухал мөчийг орхигдуулсан - скриптээс алсын машин руу параметрүүдийг шилжүүлэх.

$deployRemote = (
парам(
$targetEnvName,
$targetUsername)
$Global:ErrorActionPreference = "Зогс"
#…
}

Invoke-Command -Session $session -ScriptBlock $deployRemote -ArgumentList($targetEnvName, $targetUsername)


Тиймээс жинхэнэ орхигдуулсан зүйлс. Зробив svidomo, параметрүүд болон тайлбартай харцанд дарамт учруулахгүйн тулд. Баярлалаа. -ArgumentList параметр нь скрипт блокууд болон скриптүүдтэй хоёуланд нь ажилладаг

3. Сессия
Хэрэв тэр талаас нь санах ойд байнга өлгөх vishik-ийн хуулбарыг үүсгэж, түүнд тушаал илгээдэг. Үүний үр дүнд үүнтэй дахин холбогдох, виконання, чип, өөр өөр скрипт эсвэл өөр өөр користувачуудад зориулсан centity-ийг эхлүүлэх боломжтой. Жишээ нь, та є nabіr skіvіv, scho vіrіshuyu нэг zavdannya хэсэг хэсгээр, kozhі z тэднийг zhrzі дээр нэг єї vіddalenoї sії холбогдож болно, урагш тушаалуудын ажлын үр дүнг bachiti, нэг zavantagenі модулиудын ээж, zagalnі zminn. оточення.

Сессийг New-PSSession командлетаар үүсгэсэн бөгөөд өөрчлөлтийн хамт үр дүнг хадгалах боломжтой
$DC01 = Шинэ-PSSession -ComputerName DC01 $Controllers = Шинэ-PSSession DC01, DC02, DC03
Та Invoke-Command-тай ижил холболтын параметрүүдийг ашиглаж болно

Сарлаг vikoristovuvati:
Якчо 1-ээс 1
Enter-PSSession -Session $DC01
Yakscho 1-ээс олон
Invoke-Command -Sessions $Controllers -ScriptBlock (get-eventlog -logname security -newest 50)
Та Get-PSSession тусламж авах сессийг харж чадах эсэхээ харж болно, Remove-PSSession-г хаа
бүх сессийг хаах
Get-PSSession | Устгах-PSSession
Та Connect-PSSession-ийн тусламжтайгаар сессэд холбогдож, Disconnect-PSSession-ээр холбогдож болно.

Invoke-Command нь салгагдсан сессийг нэн даруй үүсгэж, сэрээх, холбогдох командуудыг ажиллуулж, дараа нь дахин холбогдож ажлын үр дүнг авах боломжтой. -Disconnected параметртэй тулалдах. Recieve-PSSession командлетаар дамжуулан үр дүнг авч байна.

Сешнүүдийг маш ихээр өөрчлөх боломжтой бөгөөд олон тооны тушаал, модулиуд гэх мэт сешнүүдийг үүсгэх боломжтой. Захиалгат төгсгөлийн цэгүүд гэж нэрлэдэг

Дүгнэлт: Windows PowerShell-ийн оршин тогтнох чадварыг ойлгох.

Weekend Scripter: Windows-ын алсын зайн kerning-ийг идэвхжүүлдэг.

Microsoft Scripting Guy, Эд Вилсон дуудлагатай. Өнөөдөр би Microsoft Press шиг харагдах Windows PowerShell 3.0 алхам алхмаар шинэ номынхоо хэсгийг нийтлэх гэж байна. Үүний зэрэгцээ уг номыг урьдчилан захиалах боломжтой.

WinRM - Windows цөмийг устгана уу

Windows Server 2012 дээр WinRM нь түгжээний ард ажиллаж байгаа бөгөөд үүнийг үргэлжлүүлэн ажиллуулдаг Windows командууд PowerShell. WinRM нь Microsoft-ын WS-Management Protocol-ийн салбарын стандартыг хэрэгжүүлдэг. Тиймээс WinRM нь алсын системд шууд хандах боломжтой бөгөөд галт ханыг хааж чадсан. Шинэ CIM командуудыг ялах ижил механизм. Ийм байдлаар та Windows Server 2012 үйлдлийн системтэй компьютерт холбогдож командуудыг ажиллуулах эсвэл Windows PowerShell интерактив консолыг нээх боломжтой. Windows 8 дээр нөгөө талд WinRM түгжигдсэн байна. Дараа нь юу болох, юу хийх хэрэгтэй гэсэн үг биш, дараа нь cmdlet-г ажиллуулна уу Идэвхжүүлэх-PSRemoting. Энэ командлетыг ажиллуулах үед дараах мөрүүд гарч ирнэ.

1. WinRM үйлчилгээг эхлүүлэх эсвэл дахин эхлүүлнэ үү.

2. WinRM-ийг эхлүүлэх үйлчилгээ автоматаар сууна.

3. Бүх IP хаягуудын холболтыг хүлээн авах сонсогчийг үүсгэсэн.

4. WS-Man урсгалын галт ханыг унтраа.

5. Microsoft.powershell тохиргоог байршуулсан

6. Microsoft.powershell.workflow тохиргоог байршуулсан

7. Microsoft.powershell32 тохиргоог байршуулсан

Энэ процессыг сунгаснаар арьсны нөхцөл байдлыг сайжруулахад эрч хүч өгөх үйлчилгээтэй. Хэрэв та функц гэж юу болохыг мэдэж байгаа бөгөөд өмнө нь өөрчлөлт хийхийг хүсэхгүй байгаа бол энэ командыг товчлуураар ажиллуулж болно - хүчмөн ийм байдлаар баталгаажуулалтыг харуулахгүй. Энэ командын синтаксийг доор жагсаав.

Идэвхжүүлэх-PSRemoting - Хүч

Одоо "Enable-PSRemoting" функцийг интерактив горимд оруулъя, үүнд харуулсан бүх мэдээллийг оруулъя.

PS C:\> Идэвхжүүлэх-PSRemoting

WinRM хурдан тохиргоо

"Set-WSManQuickConfig" товчийг дарж, Windows Remote Management (WinRM) үйлчилгээний тусламжтайгаар энэ програмыг үр дүнтэй удирдах боломжтой болно. Үүнд:

1. WinRM үйлчилгээг эхлүүлэх эсвэл дахин эхлүүлэх (хэрэв аль хэдийн эхэлсэн бол).

2. WinRM үйлчилгээг эхлүүлэх төрлийг Автомат болгож тохируулах

3. Аливаа IP хаяг дээрх хүсэлтийг хүлээн авах сонсогч үүсгэх

4. WS-Management урсгалд зориулсан Windows галт ханыг эрэмбэлсэн үл хамаарах дүрмийг идэвхжүүлэх (зөвхөн http-д).

Та үргэлжлүүлэхийг хүсч байна уу?

Хүсэлт хүлээн авахын тулд WinRM-г шинэчилж болно.

WinRM үйлчилгээний төрөл амжилттай өөрчлөгдсөн.

WinRM үйлчилгээ эхэлсэн.

WinRM-г алсын удирдлагад зориулж шинэчилж болно.

Энэ машин дээрх дурын IP руу WS-Man хүсэлт гаргахын тулд HTTP://* дээр WinRM сонсогч үүсгэсэн.

WinRM галт ханын онцгой тохиолдол идэвхжсэн.

microsoft.powershell SDDL:

[Y] Тийм [A] Бүгдэд Тийм [N] Үгүй [L] Бүгдэд Үгүй [S] Түдгэлзүүлэх [?] Тусламж (өгөгдмөл нь "Y"):y

Та энэ үйлдлийг гүйцэтгэхдээ итгэлтэй байна уу?

Зорилтот "Нэр" дээр "Set-PSSessionConfiguration" үйлдлийг гүйцэтгэж байна:

microsoft.powershell.workflow SDDL:

O:NSG:МУУ:P(A;;GA;;;BA)(A;;GA;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;; ;WD). Энэ болно

сонгосон хэрэглэгчдэд энэ компьютер дээр Windows PowerShell командуудыг алсаас ажиллуулахыг зөвшөөрнө үү".

[Y] Тийм [A] Бүгдэд Тийм [N] Үгүй [L] Бүгдэд Үгүй [S] Түдгэлзүүлэх [?] Тусламж (өгөгдмөл нь "Y"):y

Та энэ үйлдлийг гүйцэтгэхдээ итгэлтэй байна уу?

Зорилтот "Нэр" дээр "Set-PSSessionConfiguration" үйлдлийг гүйцэтгэж байна:

microsoft.powershell32 SDDL:

O:NSG:МУУ:P(A;;GA;;;BA)(A;;GA;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;; ;WD). Энэ болно

сонгосон хэрэглэгчдэд энэ компьютер дээр Windows PowerShell командуудыг алсаас ажиллуулахыг зөвшөөрнө үү".

[Y] Тийм [A] Бүгдэд Тийм [N] Үгүй [L] Бүгдэд Үгүй [S] Түдгэлзүүлэх [?] Тусламж (өгөгдмөл нь "Y"):y

Үүний дараа тохиргоо олдсоны дараа та нэмэлт командлетын WinRM-ийн давуу талыг өөрчлөх боломжтой. Туршилт-WSMan. Хэрэв системийг зөв тохируулсан бол одоогийнхтой төстэй мэдээлэл гарч ирнэ.

PS C:\>Test-WSMan -ComputerName w8c504

Бүтээгдэхүүний хувилбар: үйлдлийн систем: 0.0.0 SP: 0.0 стек: 3.0

Энэхүү командлет нь Windows PowerShell 2.0 компьютер дээр бас ажилладаг. Windows Server 2008 z дээрх домэйн хянагч хүртэл өгзөгний доорх зөвлөмжүүд Windows суулгах WinRM-г суулгасан PowerShell 2.0.

PS C:\>Test-WSMan -ComputerName dc1

wsmid: http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd

Протоколын хувилбар: http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd

Бүтээгдэхүүн нийлүүлэгч: Microsoft корпораци

Бүтээгдэхүүний хувилбар: үйлдлийн систем: 0.0.0 SP: 0.0 стек: 2.0

Хэрэв WinRM тохируулаагүй бол өршөөлийн тухай мэдэгдлийг эргүүлнэ. Windows 8 үйлдлийн системтэй байх үед анхааруулга ирнэ.

PS C:\>Test-WSMan -ComputerName w8c10

Туршилт-WSMan:

xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2150859046"

Machine="w8c504.iammred.net">WinRM-г бүү март. Баталгаажуулах

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

сүлжээ, мөн WinRM үйлчилгээнд зориулсан галт ханын үл хамаарах зүйл идэвхжсэн бөгөөд үүнийг зөвшөөрдөг

энэ компьютерээс хандах. Анхдагч байдлаар, олон нийтэд зориулсан WinRM галт ханын онцгой тохиолдол

Профайл нь нэг дотоод дэд сүлжээнд байгаа алсын компьютерт хандах хандалтыг хязгаарладаг.

Мөр: 1 тэмдэгт: 1

Test-WSMan -Компьютерийн нэр w8c10

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo: InvalidOperation: (w8c10:String) , InvalidOperationException

FullyQualifiedErrorId: WsManError,Microsoft.WSMan.Management.TestWSManCommand

Enable-PSRemoting командыг ашиглан Remote Management-ийг идэвхжүүлснээр Remote Management галт ханыг идэвхгүй болгохгүй тул Windows 8 машиныг ping хийх оролдлого амжилтгүй болно гэдгийг санаарай.

PS C:\> ping w8c504

32 байт өгөгдөлтэй w8c504.iammred.net-д ping хийж байна:

Хүсэлтийн хугацаа хэтэрсэн.

Хүсэлтийн хугацаа хэтэрсэн.

Хүсэлтийн хугацаа хэтэрсэн.

Хүсэлтийн хугацаа хэтэрсэн.

192.168.0.56-д зориулсан пинг статистик:

Пакет: Илгээсэн = 4, Хүлээн авсан = 0, Алдагдсан = 4 (100% алдагдал).

Бүх зүйл Windows Server 2012 дээр ажилладаг.

PS C:\> ping w8s504

32 байт өгөгдөлтэй w8s504.iammred.net-д ping хийж байна:

<1ms TTL=128

192.168.0.57-ийн хариу: байт=32 удаа<1ms TTL=128

192.168.0.57-ийн хариу: байт=32 удаа<1ms TTL=128

192.168.0.57-ийн хариу: байт=32 удаа<1ms TTL=128

192.168.0.57-н пингийн статистик:

Пакет: Илгээсэн = 4, Хүлээн авсан = 4, Алдагдсан = 0 (0% алдагдал),

Зуны цагт ойролцоогоор хоёр талын аялал:

Хамгийн бага = 0мс, Хамгийн их = 0мс, Дундаж = 0мс

Энэ бол WinRM-г сайжруулахад л хангалттай.

Эд Вилсон, Майкрософт скрипт бичих залуу

Жинхэнэ:

Технологи