PowerShell Remoting ви позволява да стартирате PowerShell команди или да имате достъп до пълни PowerShell сесии на отдалечени Windows системи. Това е подобно на SSH за достъп до отдалечени терминали на други операционни системи.
PowerShell е заключен по подразбиране, така че трябва да активирате PowerShell Remoting, преди да го използвате. Този процес на настройка е малко по-сложен, ако използвате работна група вместо домейн, например в домашна мрежа, но ще ви преведем през нея.
Първата стъпка е да активирате PowerShell Remoting на компютъра, на който искате да осъществявате отдалечени връзки. На този компютър ще трябва да отворите PowerShell с администраторски права.
В Windows 10, натиснете Windows + X и след това изберете PowerShell (Admin) от менюто Power User.
В Windows 7 или 8 натиснете Start и след това напишете "powerhell". Щракнете с десния бутон върху резултата и изберете "Run as administrator".
В прозореца PowerShell въведете следното cmdlet (името на PowerShell за команда) и натиснете Enter:
Активиране-PSRemoting -Force
Тази команда стартира услугата WinRM, настройва я да стартира автоматично със системата и създава правило за защитната стена, което позволява входящите връзки. Най--Force
част от cmdlet казва на PowerShell да изпълнява тези действия, без да ви подканя за всяка стъпка.
Ако вашите компютри са част от домейн, това е цялата настройка, която трябва да направите. Можете да пропуснете напред, за да тествате връзката си. Ако вашите компютри са част от работна група, която вероятно са в домашна или малка бизнес мрежа, имате малко повече настройки.
Забележка: Вашият успех при настройването на remoting в домейна зависи изцяло от настройката на вашата мрежа. Премахването може да бъде деактивирано или дори да е активирано автоматично от групова политика, конфигурирана от администратор. Възможно е също да нямате разрешенията, от които се нуждаете, за да стартирате PowerShell като администратор. Както винаги, проверете с администраторите си, преди да опитате нещо подобно. Те биха могли да имат добри основания да не позволяват практиката или да са готови да я направят за вас.
Ако вашите компютри не са в домейн, трябва да изпълните още няколко стъпки, за да настроите нещата. Трябва да сте активирали вече Remoting на компютъра, към който искате да се свържете, както описахме в предишната секция.
Забележка: За да може PowerShell Remoting да работи в среда на работната група, трябва да конфигурирате мрежата си като частна, а не обществена мрежа. За повече информация относно разликата и как да промените частна мрежа, ако вече имате обществена мрежа, проверете нашето ръководство за частни и обществени мрежи.
След това трябва да конфигурирате настройката TrustedHosts както на компютъра, към който искате да се свържетеи компютрите (или компютрите), от които искате да се свържете, така че компютрите да се доверяват взаимно. Можете да направите това по един от двата начина.
Ако сте в домашна мрежа, където искате да продължите и имате доверие на всеки компютър, за да се свържете отдалечено, можете да въведете следното cmdlet в PowerShell (отново ще трябва да го стартирате като администратор).
Определен елемент wsman: \ localhost \ client \ trustedhosts *
Звездата е символ за заместващи символи за всички персонални компютри. Ако вместо това искате да ограничите компютрите, които могат да се свързват, можете да замените звездичката със списък с IP адреси или имена на компютри, разделени със запетая, за одобрени компютри.
След като стартирате тази команда, ще трябва да рестартирате услугата WinRM, така че вашите нови настройки да влязат в сила. Въведете следната cmdlet и натиснете Enter:
Рестартирайте услугата WinRM
И не забравяйте, че ще трябва да изпълните тези две команди на компютъра, към който искате да се свържете, както и на компютрите, от които искате да се свържете.
След като вече сте настроили компютрите си за PowerShell Remoting, е време да тествате връзката. На компютъра, от който искате да получите достъп до отдалечената система, въведете следната cmdlet в PowerShell (замествайки "COMPUTER" с името или IP адреса на отдалечения компютър) и след това натиснете Enter:
Test-WsMan КОМПЮТЪР
Тази проста команда проверява дали услугата WinRM работи на отдалечения компютър. Ако успешно завърши, ще видите информация за услугата WinRM на отдалечения компютър в прозореца, което означава, че WinRM е активиран и вашият компютър може да комуникира. Ако командата не успее, вместо това ще видите съобщение за грешка.
За да стартирате команда на отдалечената система, използвайтеInvoke-Command
cmdlet, като използвате следния синтаксис:
Invoke-Command -ComputerName КОМПЮТЪР -ScriptBlock COMMAND -кредитивен USERNAME
"COMPUTER" представлява името или IP адреса на отдалечения компютър. "COMMAND" е командата, която искате да изпълните. "USERNAME" е потребителското име, което искате да изпълнява командата, както на отдалечения компютър. Ще бъдете подканени да въведете парола за потребителското име.
Ето един пример. Искам да видя съдържанието на директорията C: \ на отдалечен компютър с IP адрес 10.0.0.22. Искам да използвам потребителското име "wjgle", затова ще използвам следната команда:
Invoke-Command -ПотребителName 10.0.0.22 -ScriptBlock Get-ChildItem C: \ -credential wjgle
Ако имате няколко кратки команди, които искате да стартирате на отдалечения компютър, вместо да въведете повторно cmdlet Invoke-Command и отдалечения IP адрес, можете вместо това да стартирате отдалечена сесия. Просто въведете следната cmdlet и натиснете Enter:
Enter-PSSession-КомпютърНомер КОМПЮТЪР - Кредитен ПОТРЕБИТЕЛ
Отново заменете "COMPUTER" с името или IP адреса на отдалечения компютър и заменете "USER" с името на потребителския акаунт, който искате да извикате.
Вашият подкана се променя, за да посочи отдалечения компютър, към който сте свързани и можете да изпълнявате произволен брой команди PowerShell директно на отдалечената система.