Powershell е разрешен на отдалечен компютър с празна парола. Powershell дистанционно стартирайте програмата. Управление "едно към едно"

Отдалечена поддръжка за помощ PowerShell

Іsnuє chimalo методи за работа с отдалечени компютри. Є Windows Management Instrumentation (WMI), който се използва широко във VBScript. Използвайте различни помощни програми, които ви позволяват да управлявате дистанционно, напишете Sysinternals. Навигирайте в много командлети на PowerShell, за да зададете параметъра ComputerName за wiconn отдалечени компютри.

Zagalom методи povno, но в кожата е своите минуси. Първо, различен синтаксис, в който е лесно да се изгубите. По различен начин, deyaki командват да се държат по различен начин в зависимост от това дали локално смърдят далеч. Е, нареши, за комуникация може да се наложи да добавиш допълнителни портове на защитната стена, което не е добре от гледна точка на безопасността.

PowerShell Remoting virishuє повече описания на проблеми. Vіn основава внедряването от Microsoft на протокола за уеб услуги за управление (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 -Spooler с имена
exit-PSSession

Интерактивната работа е подходяща за решаване на неудобни задачи на дистанционно администриране. Ако искате да автоматизирате процеса, най-добре е да го направите с командлета Invoke-Command. Ос, така че с тази помощ можете да решите същото нещо:

Invoke-Command -ScriptBlock (Restart-Service spooler) -ComputerName SRV4

Тази команда отваря отдалечена сесия на SRV4, извлича блок от команди, инструкции за параметъра -ScriptBlock и затваря сесията. И ридае фонов режим, можете по избор да посочите параметъра AsJob.

Имайте предвид, че тези, които са работили един час във фонов режим, PowerShell не променя резултата. За да направите това, можете да го направите с командлета Receive-Job.

За да изберете не няколко команди, а скрипт, Invoke-Command може да има параметър -FilePath, който може да бъде променен на -ScriptBlock, за да присвоите скрипта на файла. Например, създадох скрипт, който ще покаже списък с zupine услуги и ще го стартира на отдалечена SRV4 машина:

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

Управление "един към богат"

Необходимо е да се извърши част от реабилитацията едновременно с реабилитацията на една задача на няколко компютри. Можете лесно да го направите с помощта на същата Invoke-Command. Например имената на компютрите могат просто да бъдат прекарани през кома:

Invoke-Command -ScriptBlock (Restart-Service spooler) -ComputerName SRV4, SRV5

Моля обърнете внимание:

$servers = @(″SRV1″,″SRV2″,″SRV3″)
Invoke-Command -ScriptBlock (Restart-Service spooler) -ComputerName $servers

Или вземете от файла:

Invoke-Command -ScriptBlock (Restart-Service spooler) -ComputerName`
(Get-Content .\servers.txt)

Забележка: Invoke-Command може да има параметър ThrottleLimit, който е между максималния брой компютри, които могат да бъдат задействани за един час. За да заключите този параметър, добавете 32. Ако е необходимо, можете да го промените или да го промените, за да увеличите натоварването на процесора и паметта на вашия компютър, така че тази операция трябва да се извършва много внимателно.

Сесии

Всеки друг час от сесията Invoke-Command се създава нова сесия, която отнема час и ресурси. За да се изгубим, можем да отворим една сесия и да спечелим всички команди. Например, нека добавим сесия с име SRV4 към компютъра SRV4 и я поставим в $session, а след това ще запазим нашата фабрика (например богато страдащ спулер):

$session = New-PSSession -ComputerName SRV4 -Name SRV4
Invoke-Command -ScriptBlock (Get-Service spooler | Stop-Service)`
-Сесия $session

Сесията ще бъде активна doti, doki няма да се вижда от конзолата PowerShell. Можете също да затворите сесията - Disconnect-PSSession или да я премахнете - Remove-PSSession.

И сега куп възможности, които се появиха в PowerShell 3.0. Както преди, когато излезете от сесията или сесията е била затворена, PS 3.0 ще отиде на станцията, когато сесията бъде затворена. изключен. Можем да отворим нова сесия на всеки компютър или друг компютър и да изпълним командата директно в тази активирана сесия. Как се стартира дупето на компютърната услуга SRV4 на друг приятел, звукът от миналото време:

Invoke-Command -ScriptBlock (Спулер за стартиране на услугата)`
-Име на компютър SRV4 -Прекъснато

Друг вариант за включване на сесии е пускането на проби по час от деня. Например, нека да разгледаме сесия на LongJob на SRV4 и да я стартираме във фонов режим на заданието, тъй като тя показва списък с услуги на интервал от 1 интервал:

$session = New-PSSession -ComputerName SRV4 -Name LongJob
Invoke-Command -Session $session -ScriptBlock`
(Get-Service | foreach ($_;sleep 60) ) -AsJob

Чудим се как се празнува задачата за закриване на сесията:

Receive-Job -Name Job2
Disconnect-PSSession $session

Демо на друг компютър и покажете конзолата, свържете се със сесията LongJob и с помощта на командлета Receive-PSSession ще бъде взет резултатът от задачата:

Connect-PSSession -Име LongJob -ComputerName SRV4
Receive-PSSession -Name LongJob

Или друга опция, без изрична връзка със сесията за помощ Connect-PSSession:

$session = Get-PSSession -Name LongJob -ComputerName SRV4
$job = Receive-PSSession $session -OutTarget Job
Receive-Job $job

Забележка:За да остане резултатът в системата, Receive-Job трябва да бъде усукан с параметъра -Keep.

Неявно в далечината keruvannya

Още нещо, за да завършите един нестандартен начин за дистанционно keruvannya - имплицитно remoting. Възможно е, без да създавате отдалечена сесия, локално да стартирате команди на отдалечен компютър.

Например вземаме една и съща работна станция, без помощта на дистанционно управление. Създаваме отдалечена сесия с контролера на домейн SRV4 и импортираме модула Active Directory в сесията:

$session = New-PSSession -ComputerName SRV4
Invoke-Command (Import-Module ActiveDirectory) -Session $session

След това експортираме командлетите на Active Directory от отдалечената сесия и ги изпращаме до локалния RemoteAD модул:

Експортиране-PSSession -Session $session -CommandName *-AD* -OutputModule RemoteAD`
-Разреши Clobber

Командата е да създадете нов модул PowerShell в папката WindowsPowerShell\Modules\RemoteAD. Опциите ще бъдат само командлети с имена, които съответстват на шаблона *-AD*. За кого, самите команди не се копират на локалния компютър. Локалният модул ще служи като един вид пряк път, а самите команди ще бъдат публикувани на отдалечения контролер на домейн.

След като модулът е създаден, сесията може да бъде затворена, вече няма да ви трябва.

Импортирайте нов модул в поточна сесия (за PS 3.0 можете да пропуснете този раздел):

Import-Module RemoteAD

И сега уважение - ние не отменяме отдалечената сесия с домейн контролера, изтриваме командлетите. Не е необходимо изрично да стартирате тази сесия - можете имплицитно, след като опитах viconaty в отдалечения командлет:

Нов-ADU потребител -Име BillGates -Компания Microsoft
Get-ADUser BillGates

Ако случаят е такъв, отдалечената връзка с домейн контролера ще бъде потвърдена, след което командата ще бъде прехвърлена към домейн контролера и ще бъде прекратена там. Резултатът от въвеждането ще бъде сериализиран в XML и при необходимост прехвърлен на локалния компютър, който ще бъде десериализиран в обект, за който можете да използвате PowerShell.

Сесията ще бъде активна, не затваряйте конзолата и не изтривайте RemoteAD модула.

Неявно отдалеченото keruvannya ви позволява да работите с командлети на отдалечен компютър, практически е същото, сякаш е инсталирано на локална машина. Всеки път, когато имате нужда от всички командни програми, уверете се, че го правите удобно.

Накрая ще кажа какво Нарази PowerShell Remoting е основният инструмент за дистанционно извличане от операционни системи Windows. Просто е необходимо администраторът на Windows да знае за тази способност и да е наясно с тях.

В статията е обяснена темата за отдалечената връзка с варианта PowerShell 2.0. Пред нас е необходимо да стартираме услуга, за чиято помощ трябва да сме в дистанция на взаимно сътрудничество.

Стартирайте услугата WinRm
За отдалечена оперативна съвместимост на PowerShell 2.0 услугата WinRM се превключва, тъй като е инсталирана зад ключалката на Windows 7 и Windows 2008 R2. За ранните версии на операционната система е необходимо да се инсталира допълнително. Услугата е назначена да бъде инсталирана на машината в часа, когато е инсталиран PowerShell 2.0. За да преминете към WinRM, стартирайте конзолата PowerShell 2.0 и въведете следната команда:
Get-Service WinRm
Резултатът изглежда така:

Status Name DisplayName ------ ---- ----------- Спрян winrm Windows Remote Management (WS-Manag...

Як бачимо - услугата е налице, протетата не работи. За да стартирате WinRm, трябва да изпълните следната команда като администратор от конзолата PowerShell 2.0:
Активиране-PSRemoting
Натиснете бутона "Y", за да потвърдите стартирането на услугата. Услугата WinRM вече е настроена на тип стартиране "Автоматично", така че. няма да се стартира веднага при стартиране на компютъра. Командата Enable-PSRemoting не само стартира услугата, но променя типа на стартиране, но също така настройва правилна защитна стена за правилната работа. Услугата WinRm приема заявки за всеки IP адрес.

Изискват се имената на всички свързани доставчици:
Get-PSProvider
Yak bachimo, имаме друг доставчик под името 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. command wick, имаме още).

Задайте елемент TrustedHosts *

Можете да изпълните командата от друга директория или може да се наложи да посочите нов път към TrustedHosts:

Задайте елемент WSMan:\localhost\Client\TrustedHosts *

При заявката за потвърждение натиснете клавиша "Y".

За да може PowerShell да промени настройките, които направихме в настройките на TrustedHosts, трябва да рестартирате услугата WSMan. Tse да се бие за помощта на офанзивното командване:
Рестартиране на услугата winrm

Подобно действие може да бъде vikonati z-pіd DOS. Изпълнете командата winrm-?. Можете да дадете общ коментар за отбора. За да разгледате по-точно стойността на TrustedHosts, следвайте командата:

winrm вземете winrm/config/client

и за да зададете стойността - следния vikonaty:

winrm набор winrm/config/client/ @(TrustedHosts="*")

За повече команди, за TrustedHosts, като значението на символа „*“, обаче, можете да посочите имената на конкретни сървъри вместо това. Контролирането на TrustedHosts е класически начин да поставите "Get" и "Set" PowerShell-disables на връзката: можете да въведете Get-Item и Set-Item.
Създаване и прекратяване на отдалечена сесия на PowerShell 2.0
В командите по-долу задайте промяната "IpAddress" на необходимия IP адрес и промяната "FQDN" на напълно квалифицирано име на домейн:

Въведете IP адрес на PSSession

Въведете-PSSession FQDN

За да прекратите отдалечена сесия на робот, следвайте командата:

Командата Enter-PSSession се нуждае от more.name.domain.name. Например, в случай на MyServer.domain.local, обикновен запис в MyServer няма да работи, но изборът на IP адрес винаги ще работи добре в такива ситуации. Алтернативен метод PSSession:

New-PSSession-име на компютъра testMachine2 Get-PSSession

Можете да завършите работата на тази сесия по следния начин:

Get-PSSession | премахнете-PSSession

Ако искате да протестирате в далечината на робота, ако нямате друга машина, тогава създайте "отдалечена връзка" на вашия компютър със себе си. Например, ако вашата машина се казва MyMachine, опитайте:

New-PSSession -име на компютър MyMachine

Може да ви звучи странно и нелогично, но по този начин все пак можете да опитате отдалечената работа в PowerShell 2.0.

Работете в отдалечени сесии на PowerShell 2.0
След като направите отдалечена връзка, можете да организирате командни тръбопроводи, които ги изпълняват на конзолата PowerShell 2.0 и ако го направите, можете да получите смрад на отдалечена машина, но трябва да сте на клавиатурата и да пишете команди там, а не тук. Например, изпълнете следната команда и вижте резултата от работата:

Set-Location c:\ | Get-childitem

Основната задача на тази първоначална помощ е да ви помогне да създадете сесия за отдалечена връзка на PowerShell 2.0 и да покаже как да я затворите, тогава вие сами ще трябва да го направите, като операции, не можете да чакате до края на отдалечената връзка .

Забележка
Ако се чудите дали нямате сесия за отдалечена връзка, като команда - протестирайте отзад на вашата локална машина.

Докато не се нуждаете от отдалечена връзка, тя просто ви дава възможност да спечелите PowerShell 2.0 за keruvane с компютри, свързани към вашата мрежа. Сега можете да видите сценариите на други машини. 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 bezpeka in zhahu вдигнете ръце в такова предложение, но в момента на назначеното още помилване ще ви кажа да включите защитната стена и на двата компютъра. Ако всичко е активирано, значи е добре, това означава, че е необходимо да промените настройките на портове 135 и 445. Настройте тези портове да бъдат активирани в защитните стени - за да активирате PowerShell 2.0

P.S. Четох, че командата Enable-PSRemoting може да се използва автоматично въведенасмени защитната стена, но мисля, че не я оставяй така.
За тези, харесвайте за помощ групова политикаактивирайте защитната стена в Windows 8, прочетете.

Два teepee, които се съпоставят за отдалечен PowerShell 2.0
Време е да ви покажем как да проучите две опции за отдалечена работа в PowerShell 2.0.
Първият начин е вариант на vitonchenish, при който се създават командлети, създаващи стабилен канал към друга машина. Имената на такива команди се заменят с думата "PSSession" като име (предполагам, че имената на командлетите ще следват правилото "Dieslovo-Name"). Можете да премахнете превода на тези командлетове, като използвате следната команда:

Get-Command -съществително PSSession

Другият начин също е каноничната форма на отдалечената работа PowerShell 2.0. Tsey начинпросто разширяване на локални команди, добавяне на параметъра "-computerName" към тях, за чиято помощ е посочено, че компютърът трябва да бъде разширен, върху който е необходимо да се изпълни операцията. В резултат на това тези команди ще се изпълняват на друга машина, която е в масива:

Get-Process -computerName машина2

Алтернативен командлет, за да можете да използвате такъв прост метод (той е тих, че можете да използвате параметъра "-computerName" във вашия склад), можете да използвате следната команда за помощ:

get-command | където ( $_.parameters.keys -съдържа "Име на компютър")

Последната промяна на cmdlet, която може да бъде последвана от друг метод, може да бъде променена по следния начин:

get-command | където ( $_.parameters.keys -съдържа "Име на компютър" -и ($_.parameters.keys -notContains "Сесия"))

Pidbivaemo pіdpomok за робота vіddalena в PowerShell 2.0
Тайната е за тези, които трябва да използват PowerShell 2.0 за помощ в бъдеще за тези, които трябва да разберат основните речи:
След това инсталирайте WinRm.
За помощта на командата Enable-PSRemoting трябва да активирате отдалечено взаимодействие.
Необходимо е да настроите TrustedHosts (например задайте като стойност *).
Всеки път, когато изберете командата Enter-PSSession, не забравяйте да посочите името на името на възела или неговия IP адрес.

Anglomovna dzherelo vikladenoї и буклети информация, обработена от мен.

# Създайте нова сесия за свързване към отдалечена машина $s = New-PSSession -computername TestComputer

# Vikonuemo на отдалечена машина направете го, например - чудете се на директория C:
Invoke-Command -Session $s -ScriptBlock (ls c:\)

# Създаден в директория на отдалечена машина "%ProgramFiles%\MyCompany\MySoft"
Invoke-Command -Session $s -ScriptBlock (New-Item -Path "$env:ProgramFiles\MyCompany\MySoft" -ItemType директория)

# Prote, по-добре е да не въвеждате команди ръчно, но за да стартирате на отдалечена машина, скриптът вече е готов:
Invoke-Command -Session $s -FilePath "\\ServerDir\Common Scripts\MyScript.ps1"

# Край на сесията
$s | премахнете-PSSession

04.03.2011 Бил Стюарт

Версия Windows PowerShell 2.0 реализация на алтернативен механизъм за свързване към отдалечени компютри, който се нарича дистанционно. Целият механизъм на услугата за победа грижа от разстояние Windows (Windows Remote Management, WinRM). Win осигурява връзка с отдалечен компютър, както и стартирането на команди, които са свързани към този отдалечен компютър

Разработването на обвивката PowerShell 1.0 се превърна в пробив в развитието на ядрото и автоматизацията на Windows XP, както и на най-новите версии на платформата Windows OS. Yaka е базирана на платформата. Технологията NET Framework PowerShell 1.0 включва структура на команди от един човек (cmdlets), тя е надарена с упорита работа за форматиране на изходни данни и осигуряване на значителен напредък в наличността на други технологии, и ние препращаме - і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, командата на процеса няма параметър -Credential, обемът трябва да бъде регистриран за лицев запис, което може да позволи достъп до отдалечената система.

Ейл вече е вътре Версии на Windows PowerShell 2.0 реализира алтернативен механизъм за свързване към отдалечени компютри, наречен отдалечено управление. Това е механизмът на победоносна работа на услугата за отдалечено наблюдение на Windows (Windows Remote Management, WinRM). Win осигурява връзка с отдалечен компютър, както и стартиране на команди, които са свързани към този отдалечен компютър. Нека обясня с пример. Направете възможно свързването към отдалечената работна маса, за да стигнете до графичния интерфейс на coristuvacha, точно както е свързан дистанционно с командния ред на PowerShell. Ако изпълните команда за склад за допълнителен механизъм за отдалечено взаимодействие, командата всъщност се изпълнява на отдалечен компютър, но все пак можете да извлечете резултатите на локална машина.

Къде можете да използвате 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 (support.microsoft.com/kb/968930).

Повишени функции в разстоянието помежду си

За да може компютърът да се свързва с други системи, на които е инсталирана обвивката PowerShell, е необходимо да се осигури такъв ум.

  1. Трябва да активирате услугата WinRM.
  2. Трябва да инсталирате слушател на WinRM, който ще получава обаждания от един или друг IP адрес.
  3. Мережевий екран на windowsвиновен buti nalashtovaniya такъв ранг, schob z'appeaved mozhlivist vstanovlenya z'ednan чрез WinRM.
  4. Не на последно място, редовният ритуал за завършване на сесията на PowerShell.

Като компютър не е възможно да се разпознаят обвивките на PowerShell, инсталирани на други компютри, е необходимо да се промени езикът на умовете.

За да могат хакерите по-лесно да кажат на робота, търговците на дребно на Microsoft PowerShell създадоха командата Enable-PSRemoting, която гарантира, че предполагаемите компоненти се конфигурират автоматично. Необходимо е да го оправите не с кола, за която ще работите дистанционно, а на компютър, до който ще пътувате дистанционно. Можете да използвате командата Enable-PSRemoting само в този случай, тъй като използвате обвивката PowerShell с администраторски права. Как практикувате Windows машини Vista, Server 2008 и по-нови версии, десен бутонЩракнете върху иконата на PowerShell и изберете Изпълни като администратор от менюто. Ако изпълните командата Enable-PSRemoting с параметъра -Force, ако не успее, системата няма да се свърже с вас за разрешение да изтриете стъпката за конфигуриране на кожата. За да видите отчети за складовата команда Enable-PSRemoting, щракнете върху командата

Get-Help Enable-PSRemoting

Гледане на една команда на отдалечен компютър

Най-лесният начин да се свържете със средата PowerShell на отдалечен компютър е да получите достъп до нея с командата Enter-PSSession. След въвеждане, командата е свързана с параметъра -ComputerName, така че когато се въведе от клавиатурата, параметърът може да бъде пропуснат. Например, за да инсталирате отдалечен компютър с името rigel, трябва да въведете от клавиатурата

PS C:\> Enter-PSSession rigel

Уловете уважението си: за пълнота се ровя в текста на молбата. Не е необходимо да въвеждате исканата част от командата.

Когато бъде въведена отдалечена сесия, синтаксисът на заявката на PowerShell се променя. Сега той няма да бъде включен в квадратните рамена на отдалечения компютър; Това означава, че сте инсталирали отдалечен компютър. В този изглед исканият изглед изглежда така:

: PS C:\>

След инсталирането на отдалечена връзка, всички команди, както сте въвели в командния ред, ще бъдат показани на отдалечената машина. Така че, ако въведете командата

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

командата Get-ChildItem ще бъде деактивирана на отдалечената машина. Данните ще бъдат премахнати от имената на файлове и папки, които са записани от хранилището C на отдалечения компютър. За да прекратите сесията в отдалечен режим, побързайте с командата Exit-PSSession

: PS C:\> Изход-PSSession

Гледане на Scriptblock на отдалечен компютър

Vidalenya vzaєmodіya за podpomogoyu PowerShell позволява vykonuvaty на отдалечен компютър блок скрипт или scriptblock (за блокиране на кода на PowerShell, складиране във формата на лък). За което е необходимо да се ускори командата Invoke-Command с параметъра -ComputerName. Например, за командата, показана на екран 1, заменям командата Invoke-Command, за да заменя Get-ChildItem на отдалечения компютър. Гледайки екран 1, не забравяйте, че за да инсталирам връзката от отдалечения компютър преди него, как да стартирам скриптовия блок, не спечелих командата Enter-PSSession. Командите Enter-PSSession и Invoke-Command са два различни метода за дистанционно взаимодействие.

Първият параметър на Invoke-Command е -ScriptBlock; Vіn посочете кода, който ви е избран виконати. На екран 1, като се пропусне името на параметъра -ScriptBlock, фрагментите се изобразяват на необвързващ език. Параметърът -ComputerName ще замени името на отдалечения компютър. Как можете да използвате командата Get-ChildItem в изходните данни, среда PowerShell за прозрачността на оператора, за да навигирате, за да посочите името на отдалечения компютър в колоната PSComputerName на изходните данни.

Гледане на скриптовия блок на голям брой отдалечени компютри

Блокът на скрипта може да се изпълнява на толкова компютри, колкото желаете. Tse се нарича конфигурацията "един към богат" или към флакона на гърлата. На екран 1 параметърът -ComputerName на командата Invoke-Command може да замени едно име, но е възможно да се заменят няколко имена на компютър с новото. Да, екипът

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 инициира блок на скрипт пред фоновата задача на титан на отдалечения компютър. След това, когато въведох тази команда, на екрана се появи заявка: Shell PowerShell стартира скриптовия блок за дистанционно управление на компютъра и след това управлението се обърна към мен. Предварително има такива, които командата viconan не се побира в крайната конзола и които не са включени във външните данни. Yakby vykno конзола Имах по-широка, zasib formatuvannya PowerShell обвивка чрез включване на командата към списъка с изходни данни. В колоните Id и Name е посочена задачата (вашият идентификатор и разбираемото име са ясни), а колоните State са посочени в станцията за задачи: проверено, спряно, завършено. Доставчикът на HasMoreData има информация, която да докладва за тези, които са проверили всички данни, че има нужда от следващата задача или задачата е да компенсира по-голямо количество данни, като следа от победа.

За да сте сигурни, че фоновата задача е завършена, можете да изпълните командата Get-Job, за да покажете друга команда на екран 2. Ако не отмените параметрите, Get-Job ще замени всички задания, които се изпълняват на всеки час от поточната сесия . Ако искате да спечелите част от задачата наведнъж, можете да спечелите такива параметри, като -Id или -Name, за задачата, като самата задача, която искате да промените. Ако фоновата задача е завършена, състоянието на фоновата задача ще бъде зададено на Завършено.

За да прочетете резултатите от фоновата задача, можете да поставите отметка в Receive-Job. Тази команда, подобно на Get-Job, завърта изхода на всички задачи, които се изпълняват на всеки час от поточната сесия, тъй като не сте отменили параметъра за изпълнение върху тях, както самата задача ви извиква. Така че останалата част от командата на екран 2 включва параметъра -Id, който показва тези, които трябва да бъдат взети предвид данни за задачата с идентификатор 9. Пропускам името на параметъра -Id, което не е посочено на езика. На екран 3 се показват останалите редове от данните за уикенда, които се движат над отдалечения фонов екран, който се разглежда.

Създаване на сесии в PowerShell

Насочете го по-отблизо, за да покажете как да получите достъп до заявката на отдалечени машини PowerShell и как да изпълнявате команди на отдалечени компютри. Ale, засега, без да мислим за тези, които са далеч от взаимодействието, те се създават в контекста на сесията. Сесията е, да кажем, мястото, където живее PowerShell. Когато отворите прозореца на конзолата на PowerShell или прозореца на PowerShell Integrated Scripting Environment (ISE), създавате сесия. Без да се използва помощта на отдалечени взаимодействия, всички сесии се съхраняват на локалния компютър и лежат една до друга. Във всички прицелни приклади, в дистанционната взаимна модалност, се създават времеви сесии, като те се прикачват автоматично след завършване на дистанционната взаимна модалност. В допълнение, наистина е възможно да се създават екземпляри на сесии в далечна връзка и да се спечелят отново. Такъв pidhid е по-ефективен в случай на повреди, ако е необходимо да стигнете до отдалечени компютри повече от веднъж.

За да създадете нови сесии, използвайте командата New-PSSession с параметъра -ComputerName. Името на този параметър в командите може да бъде пропуснато. Да, отборът

C:\> $sessions = New-PSSession phineas, ferb, perry

Създавам три сесии на три компютъра, наречени phineas, ferb и perry. Можете да видите вашите сесии, като промените $sessions. За когото е необходимо да въведете im'ya в командния ред

$sessions

и натиснете клавиша за въвеждане. Параметърът -Session на командата Invoke-Command изважда обекта на сесия, създаден след помощта на командата New-PSSession, така че можете да завъртите командата, подобно на обидната:

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

Тази команда се проваля на командата Get-ChildItem на машините phineas, ferb и perry, но не отваря деня. Можете да добавите параметъра -AsJob към командата във фонов режим:

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

Нов pidhid за работа

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

Бил Стюарт ( [защитен с имейл]) - системен администратор на компанията French Mortuary, Ню Мексико



  • урок

Има минимум теория, най-важната част е практическата. Опишете как да настроите WinRM, как да промените профил кепър адаптер, скриптът се дава за добавяне към TrustedHosts с филтриране, обяснява се на базата на необходимостта от доверени хостове и се разглеждат повърхностно отдалечена връзкатака че можете да було система и vіdrazu vіdminiti vіddalenі коли.

Най-простият начин да конфигурирате от разстояние управлението на виконатите Активиране-PSRemoting в оболонци живеещи с правата на администратор. Когато стане така:

  • стартирайте услугата WinRM (както започна рестартиране)
  • Услугата WinRM отива в лагера - автоматично стартиране при стартиране
  • ще бъде създаден чрез подслушване на WinRM за httpпристанищен трафик 5985 за всички локални IP адреси
  • Ще бъде създадено правило за защитна стена за слушателя на WinRM. Уважаване, този елемент ще бъде завършен възможно най-скоро, макар и само от сливане на карти, вида на сливането е „публично“, т.к. Отварянето на порт на такава карта не е добре. Ако имате такова извинение при конфигуриране, променете мрежовия профил с командлет 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 или машината ще бъде свързана към него. Добавете към себе си с кола, докато не сме свързани.

Дадени са помощните команди, възстанових няколко от тях от скрипта
################################################### ################################## # добавете NewHost към списъка TrustedHost с филтриране, така че този ред вече може да бъде # 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).value if (($prev.Contains( $NewHost) )) -eq $false) ( if ($prev -eq "") ( set-item WSMan:\localhost\Client\TrustedHosts -Value "(!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ає чи е такъв запис, сякаш не добавя нищо към списъка. Обаждането може да се извърши от командния ред чрез въвеждане на адрес или име.

Є ryznitsya kazuvati im'ya chi address. Ако има само адреси в TrustedHosts, тогава отворете сесията по име, което не се вижда, и navpaki - ако посочите im'ya, тогава прикачете към адреса, който не се вижда. Обадете се на tse.

защо е различно

Enable-PSRemoting rob more diy, по-ниско "winrm quickconfig". Командлетът Set-WSManQuickConfig работи по същия начин като "winrm quickconfig". Enable-PSRemoting стартира Set-WSManQuickConfig, ако сте конфигурирали системата

Дистанционна връзка
1. Сесии 1 към 1
крещяха от екипа
Enter-PSSession -ComputerName Test
Сваляш корпуса на отдалечена машина. Можете да се свържете със себе си, като въведете localhost. С параметъра се присвояват алтернативни заеми -Акредитивни, излиза от cmdlet exit-PSSession

Размяна по този начин:

  • не е възможно да се направи друга прическа - по-малко от 1 сесия, в средата на сесията не е възможно да се свържете допълнително
  • Не можете да спечелите команди, за да направите графичен интерфейс. Ако искате да направите черупката да виси, натиснете Ctrl + C, за да я накарате да виси
  • не можете да изпълнявате команди, които могат да изпълняват ваши собствени команди, например nslookup, netsh
  • можете да изпълнявате скриптове, тъй като политиката им позволява да се изпълняват на отдалечена машина
  • не може да се присъедини към интерактивната сесия, отиваш като "влизане в мрежа" nibi, прикачен към обединения диск, Tom няма да стартира скрипта за влизане и не можете да вземете домашната папка на отдалечената машина (аргументът е да не се съпоставят домашната папка и скриптовете за влизане)
  • Не можете да взаимодействате с кореспондента на отдалечената машина, за да намерите същите вина там. Не бързайте да ви покажа накрая или да се сприятелите с вас.
Този метод е най-добрият за прости операции, zaishov, след търговия със сървъра и свързване. Ако трябва да премахнете промените в тълпата, имате нужда от тройна операция (много години или повече дни), имате нужда от повече възможности за администриране, тогава трябва да спечелите техниката, като поискате.
Коментирайте.
обектите, преминали през мрежата, се образуват и престават да бъдат живи. По методите се вижда вонята, властите се изоставят. Vityagti ob'єkt на колата си, pochakluvat и бутане назад не отивам. Ако е необходимо да напиша още, ще го добавя правилно.

2. Сесии 1 към много
Извикване-команда
ние обозначаваме това, което можем да видим по следния начин:
$sb = (команди за отдалечена машина, разделена с кома)
прехвърлени към отдалечени машини Test1 и Test2
Invoke-Command -ComputerName Test1, Test2 -ScriptBlock $sb
наведнъж можете да хвърлите 32 коли. Като алтернативен кредит, тогава параметърът -Credential е победител

За да прехвърлите отново скрипта за замяна на параметъра -ScriptBlock, напишете -FilePath, в отдалечената машина НЕ е необходимо да имате достъп до файла, ще има уреждане на резервни части, прехвърляне през HTTP и затваряне от тази страна.

Не забравяйте, че ще има нов osprey от тази страна, така че вашият скрипт не отменя стойността от вашата конзола и променените скриптове може да изглеждат празни. За това изпратете готови инструкции и скриптове с параметри.

за пълно пренаписване на Invoke-Command, трябва да промените редовете в скриптови блокове. Например, имате командата да лежите в такъв списък, трябва да генерирате ред, да го преобразувате в ScriptBlock и да го изпратите на отдалечения компютър:
$sb = ::Създаване($SomeString)
kuda78
В статията е пропуснат друг важен момент - прехвърлянето на параметри от скрипта към отдалечената машина.

$deployRemote = (
параметър(
$targetEnvName,
$targetUsername)
$Global:ErrorActionPreference = "Спри"
#…
}

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


Така че истински пропуски. Zrobiv svidomo, за да не тормози един поглед с параметри и описания. Благодаря ти. Параметърът -ArgumentList работи както със скриптови блокове, така и със скриптове

3. Сесии
Ако от тази страна се създаде копие на вишика, което да виси постоянно в паметта, и към него се изпращат команди. В резултат на това е възможно да се свържете отново с него, да стартирате cenity за виконание, чип с различни скриптове или с различни koristuvachs. Например, имате nabrіrіvіv, scho vіrіshuyu една zavdannya отчасти, kozhі от тях въз основа на тях може да се свърже с един іnіїі vіddalenoї sії, bachiti резултатите от работата на командите за напред, майка на един zavantagenі модули, zagalnі zminіnі, zagalne otochennya .

Сесията се създава от командлета New-PSSession, резултатът може да бъде запазен с промяната
$DC01 = New-PSSession -ComputerName DC01 $Controllers = New-PSSession DC01, DC02, DC03
можете да използвате същите параметри на връзката като в Invoke-Command

Як се използва:
Якшо 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.

Пич за скриптове на Microsoft, Ед Уилсън на повикване. Днес ще публикувам откъс от моята нова книга за Windows PowerShell 3.0 Step by Step, която прилича на Microsoft Press. В същото време книгата е достъпна за предварителна резервация.

WinRM - Премахване на ядрото на Windows

В Windows Server 2012 WinRM работи зад ключалката, за да продължи да работи Windows команди PowerShell. WinRM е внедряване от Microsoft на индустриалния стандарт на WS-Management Protocol. Следователно WinRM има удобен начин за достъп до отдалечени системи с един поглед, той успя да затвори защитната стена. Същият механизъм, който печели нови CIM команди. По този начин можете да се свържете с работеща машина с Windows Server 2012, за да изпълнявате команди или да отворите интерактивна конзола на Windows PowerShell. В Windows 8, от другата страна, WinRM е заключен. Не означава какво следва, какво трябва да се направи, след това стартирайте командлета Активиране-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:\> Enable-PSRemoting

WinRM Бърза конфигурация

Натискане на бутона "Set-WSManQuickConfig", за да осигурите ефективно управление на тази програма с помощта на услугата за отдалечено управление на Windows (WinRM). Това включва:

1. Стартиране или рестартиране (ако вече е стартирана) услугата WinRM

2. Задаване на типа стартиране на услугата WinRM на Автоматично

3. Създаване на слушател за приемане на заявки на всеки IP адрес

4. Активиране на правилата за сортирани изключения от защитната стена на Windows за трафик на WS-Management (само за http).

Искаш ли да продължиш?

WinRM може да се актуализира, за да получава заявки.

Типът на услугата WinRM е променен успешно.

Услугата WinRM стартира.

WinRM може да се актуализира за дистанционно управление.

Създаден е слушател на WinRM на HTTP://* за WS-Man заявки към всеки IP на тази машина.

Изключение на WinRM Firewall е активирано.

microsoft.powershell SDDL:

[Y] Да [A] Да за всички [N] Не [L] Не за всички [S] Спиране [?] Помощ (по подразбиране е "Y"):y

Наистина ли искате да извършите това действие?

Извършване на операция "Set-PSSessionConfiguration" на цел "Име:

microsoft.powershell.workflow SDDL:

O:NSG:BAD: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:BAD: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

Версия на продукта: OS: 0.0.0 SP: 0.0 Стек: 3.0

Този командлет работи и на компютри с Windows PowerShell 2.0. Съветите по-долу илюстрират до контролер на домейн на Windows Server 2008 z инсталирайте Windows PowerShell 2.0, на който беше закован WinRM.

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 Corporation

Версия на продукта: OS: 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 Firewall за обществено

Профилите ограничават достъпа до отдалечени компютри в рамките на същата локална подмрежа.

На ред:1 символ:1

Тест-WSMan -Име на компютър w8c10

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

CategoryInfo: InvalidOperation: (w8c10:String) , InvalidOperationException

FullyQualifiedErrorId: WsManError,Microsoft.WSMan.Management.TestWSManCommand

Имайте предвид, че активирането на отдалечено управление с командлета Enable-PSRemoting не деактивира защитната стена за отдалечено управление, така че опитът за пинг на машина с Windows 8 не е успешен.

PS C:\> ping w8c504

Пинг на w8c504.iammred.net с 32 байта данни:

Времето за изчакване на заявката изтече.

Времето за изчакване на заявката изтече.

Времето за изчакване на заявката изтече.

Времето за изчакване на заявката изтече.

Пинг статистика за 192.168.0.56:

Пакети: Изпратени = 4, Получени = 0, Загубени = 4 (100% загуба).

Всичко работи за Windows Server 2012.

PS C:\> ping w8s504

Пинг на w8s504.iammred.net с 32 байта данни:

<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

Ping статистика за 192.168.0.57:

Пакети: Изпратени = 4, Получени = 4, Загубени = 0 (0% загуба),

Приблизително време за отиване и връщане през летния час:

Минимално = 0ms, Максимум = 0ms, Средно = 0ms

Това е всичко, което е необходимо за подобряване на WinRM.

Ед Уилсън, Майкрософт, който пише скриптове

оригинал:

Технологии