Тема: Удаленное выполнение сценариев в Windows PowerShell 2.0  (Прочитано 771 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tyr0I{

  • Учитель
  • ****
  • Сообщений: 1045
  • Поблагодарили: 4 раз(а)
  • Уважение: +1/-0
  • Пол: Мужской
    • Просмотр профиля


Привет всем! В данной статье рассмотрим такой вопрос, как удаленное выполнение сценариев используя Windows PowerShell 2.0
У нас есть две машины, одна с предустановленной Windows Server 2008 R2 Enterprise (в режиме Server Core), другая с Windows 7 (x64) Ultimate



Перейдем на машину с Windows Server 2008 R2 и запустим на ней Windows PowerShell выполнив команду powershell



Посмотрим состояние службы WinRM, выполнив команду get-service winrm. Как видим, данная служба выполняется



Перейдем на машину с Windows 7. На данной машине на диске C создана папка Scripts



В папке Scripts был заранее подготовлен сценарий Service_status.ps1

Если открыть файл Service_status.ps1 (например в блокноте), то можно увидеть, что в нем прописаны две команды:
clear - очистка экрана PowerShell
get-service s* | sort-object status - получить список служб, которые начинаются на букву S и отсортировать их по параметру Status

http://s011.radikal.ru/i318/1603/bf/664f7432f7a1.jpg

Запускаем на машине с Windows 7  PowerShell
Первым делом нам нужно определить политику выполнения сценариев на удаленной машине с Windows Server 2008 R2
Для этого выполним команду invoke-command -computername Server01 -credential exityrwed/Administrator -ScriptBlock {get-executionpolicy}, где Server01 - это имя удаленной машины (в нашем случае это машина с Windows Server 2008 R2), exityrwed - домен, членом которого является машина с Windows Server 2008 R2
Administrator - пользователь, от имени которого будет производится подключение к удаленной машине
{get-executionpolicy} - в данных скобках прописываем команду, которую нужно выполнить на удаленной машине. Так как нам нужно определить политику выполнения сценариев PowerShell, в скобках пишем команду get-executionpolicy



Вводим пароль пользователя для подключения к удаленной машине



После выполнения команды invoke-command -computername Server01 -credential exityrwed/Administrator -ScriptBlock {get-executionpolicy} видим, что политика выполнения сценариев на машине с Windows Server 2008 R2 имеет статус Unrestricted, то есть разрешено выполнение любых сценариев



Выполним сценарий Service_status.ps1 на удаленной машине с Windows Server 2008 R2, введя команду invoke-command -filepath C:\Scripts\Service_status.ps1 -computername Server01, где C:\Scripts\Service_status.ps1 - это путь к файлу сценария Service_status.ps1
Server01 - имя удаленной машины, на которой выполняется сценарий



Как видим, сценарий Service_status.ps1 успешно отработал на машине с именем Server01 и отобразил нам список служб начинающихся на букву S



Напишем еще один сценарий, состоящий из одной команды, а именно stop-service sppsvc
Данной командой мы остановим выполняющуюся службу sppsvc на удаленной машине Server01



Выбираем File-Save As



Сценарий сохраним в папке Scripts на диске С: под именем Stop_service_sppsvc



Сохраненный сценарий Stop_service_sppsvc.ps1



Выполним созданный сценарий Stop_service_sppsvc.ps1 на удаленной машине Server01
Для этого вводим команду invoke-command -filepath C:\Scripts\Stop_service_sppsvc.ps1 -computerName Server01 и выполняем её



Сценарий Stop_service_sppsvc.ps1 выполнен успешно, так как никаких ошибок PowerShell нам не выдал



После выполнения сценария Stop_service_sppsvc.ps1 служба sppsvc на удаленной машине Server01 должна быть остановлена.
Проверим состояние службы sppsvc на удаленной машине Server01 выполнив сценарий Service_status.ps1
Выполняем команду invoke-command -filepath C:\Scripts\Service_status.ps1 -computername Server01



Как видим, служба sppsvc на машине с именем Server01 остановлена

« Последнее редактирование: 10 Март 2016, 10:44:23 от Tyr0I{ »
Хорошие люди принесут вам счастье, плохие наградят вас опытом, худшие - дадут вам урок, а лучшие - подарят воспоминания. Цените каждого!
 


 


Поиск

 
SimplePortal 2.3.6 © 2008-2014, SimplePortal