Powershell запуск службы


Управление службами - PowerShell | Microsoft Docs

  • Статья
  • Чтение занимает 3 мин
  • Участники: 2

Были ли сведения на этой странице полезными?

Да Нет

Хотите оставить дополнительный отзыв?

Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку "Отправить", вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.

Отправить

В этой статье

Существует восемь основных командлетов Service, предназначенных для широкого спектра задач обслуживания. Мы рассмотрим только вывод списка служб и изменение состояния их выполнения, но вы можете получить весь список командлетов Service с помощью Get-Help *-Service, а сведения о каждом из них можно просмотреть с помощью командлетаGet-Help <Cmdlet-Name>, напримерGet-Help New-Service.

Получение служб

Получить службы на локальном или удаленном компьютере можно с помощью командлета Get-Service. Как и в случае с Get-Process, использование команды Get-Service без параметров возвращает все службы. Можно фильтровать по имени, даже используя звездочку как подстановочный знак:

PS> Get-Service -Name se* Status Name DisplayName ------ ---- ----------- Running seclogon Secondary Logon Running SENS System Event Notification Stopped ServiceLayer ServiceLayer 

Так как реальное имя службы не всегда очевидно, может потребоваться найти службы по отображаемому имени. Это можно сделать с использованием определенного имени, подстановочных знаков или списка отображаемых имен:

PS> Get-Service -DisplayName se* Status Name DisplayName ------ ---- ----------- Running lanmanserver Server Running SamSs Security Accounts Manager Running seclogon Secondary Logon Stopped ServiceLayer ServiceLayer Running wscsvc Security Center PS> Get-Service -DisplayName ServiceLayer,Server Status Name DisplayName ------ ---- ----------- Running lanmanserver Server Stopped ServiceLayer ServiceLayer 


Параметр ComputerName командлета Get-Service можно использовать для получения служб на удаленных компьютерах. Параметр ComputerName принимает несколько значений и подстановочные знаки, что позволяет получить службы на нескольких компьютерах с помощью одной команды. Например, приведенная ниже команда получает службы на удаленном компьютере Server01.

Get-Service -ComputerName Server01 

Получение необходимых и зависимых служб

Командлет Get-Service имеет два параметра, которые удобно использовать при администрировании служб. Параметр DependentServices получает службы, которые зависят от данной службы. Параметр RequiredServices получает службы, от которых зависит данная служба.

Эти параметры просто отображают значения свойств DependentServices и ServicesDependedOn (псевдоним RequiredServices) объекта System.ServiceProcess.ServiceController, возвращаемого Get-Service, но они упрощают работу с командами и получение этой информации.

Приведенная ниже команда получает службы, необходимые службе LanmanWorkstation.

PS> Get-Service -Name LanmanWorkstation -RequiredServices Status Name DisplayName ------ ---- ----------- Running MRxSmb20 SMB 2.0 MiniRedirector Running bowser Bowser Running MRxSmb10 SMB 1.x MiniRedirector Running NSI Network Store Interface Service 

Приведенная ниже команда получает службы, которым требуется служба LanmanWorkstation.

PS> Get-Service -Name LanmanWorkstation -DependentServices Status Name DisplayName ------ ---- ----------- Running SessionEnv Terminal Services Configuration Running Netlogon Netlogon Stopped Browser Computer Browser Running BITS Background Intelligent Transfer Ser... 

Вы даже можете получить все службы, имеющие зависимости. Следующая команда делает именно это, а затем она использует командлет Format-Table для отображения свойств Status, Name, RequiredServices и DependentServices для служб на компьютере.

Get-Service -Name * | Where-Object {$_.RequiredServices -or $_.DependentServices} | Format-Table -Property Status, Name, RequiredServices, DependentServices -auto 

Остановка, запуск, приостановка и перезапуск служб

Все командлеты Service имеют схожую общую форму. Службы можно указать по общему имени или отображаемому имени, они также принимают списки и подстановочные знаки в качестве значений. Для остановки очереди печати принтера используйте:

Stop-Service -Name spooler 

Для запуска очереди печати принтера после ее остановки используйте:

Start-Service -Name spooler 

Для приостановки очереди печати принтера используйте:

Suspend-Service -Name spooler 

Командлет Restart-Service работает так же, как другие командлеты Service, но для него будет приведено несколько более сложных примеров. В самом простом случае указывается имя службы:

PS> Restart-Service -Name spooler WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting... WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting... PS> 

Вы получите повторяющееся предупреждение о запуске очереди печати принтера. При выполнении операции службы, занимающей некоторое время, Windows PowerShell сообщит, что по-прежнему пытается выполнить задачу.

Если требуется перезапустить несколько служб, можно получить список служб, отфильтровать его и выполнить перезапуск:

PS> Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping... WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping... Restart-Service : Cannot stop service 'Logical Disk Manager (dmserver)' because it has dependent services. It can only be stopped if the Force flag is set. At line:1 char:57 + Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service <<<< WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting... WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting... 


У этих командлетов Service нет параметра ComputerName, но их можно выполнить на удаленном компьютере с помощью командлета Invoke-Command. Например, приведенная ниже команда перезапускает службу очередь печати принтера на удаленном компьютере Server01.

Invoke-Command -ComputerName Server01 {Restart-Service Spooler} 

Задание свойств служб

Командлет Set-Service изменяет свойства службы на локальном или удаленном компьютере. Так как состояние службы является свойством, этот командлет можно использовать для запуска, остановки и приостановки службы. Командлет Set-Service также имеет параметр StartupType, позволяющий изменять тип запуска службы.

Чтобы использовать командлет Set-Service в Windows Vista и более поздних версиях Windows, откройте среду Windows PowerShell, используя параметр "Запуск от имени администратора".

Дополнительные сведения см. в статье о Set-Service.

См. также:

Сгенерировать список служб Windows с помощью PowerShell 2022

Командлет Get-Service предназначен для получения информации об услугах, установленных на вашем компьютере. Используя командлет Get-Service PowerShell, вы можете создать список служб Windows, работающих на вашем компьютере под управлением Windows 10/8/7.

Использовать PowerShell для создания списка служб Windows

Открыть повышенную консоль PowerShell, введите Get-Service и нажмите Enter. Вы увидите список всех служб, установленных в вашей системе Windows.

Вы также можете отфильтровать результаты, используя возможности фильтрации Windows PowerShell. Для этого используйте параметры. Вы можете создать список Запуск служб , а также Остановленные службы . Вы также можете сортировать их по имени с помощью командлета Sort-Object . Вы можете сделать шаг вперед и даже вывести список на GridView .

Например, вы можете использовать командлет Get-Service , фильтровать статус на слове Running и затем выведите на GridView , используя следующую команду:

 Get-Service | Где Статус -eq «Запуск» | Out-GridView 

Это приведет к созданию списка запущенных служб, и откроется другое окно, чтобы показать результат.

Чтобы получить информацию о Stopped Services на удаленном компьютере и вывести ее в GridView, используйте - ComputerName , как показано ниже:

 Get-Service -ComputerName RemoteComputerName | Где Статус -eq «Остановлен» | Out-GridView 

Это были только два примера. Подробнее о Get-Service в TechNet.

Теперь рассмотрим, как экспортировать и архивировать драйверы устройств в Windows 10 с помощью PowerShell.

Используя Windows PowerShell, вы также можете обновить определения Защитника Windows , список дисков, удалять универсальные приложения, находить статус очередности заданий, создавать системный образ, создавать ярлык на рабочем столе для открытия приложений Windows Store, получить список установленных драйверов, экспортировать драйверы и многое другое!

Удаленное подключение к реестру Windows, за минуту

Обновлено 30.07.2021

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами поговорили про замечательную утилиту Remote Desktop Connection Manager, которая должна быть в инструментарии любого системного администратора, я в будущем планирую сделать отдельную статью про такого рода инструментарий. Сегодня я вам хочу показать еще один лайвхак, который поможет в вашей практике выходить из ряда неприятных ситуаций, и речь пойдет про удаленный реестр windows и подключение к нему.

Для чего может потребоваться удаленно подключиться к реестру Windows другого компьютера

Прежде, чем я покажу как реализовывается наша задача, я бы хотел осветить в каких ситуациях вам может быть полезным данное знание. Ранее я вам рассказывал, как запустить реестр в Windows, я вам рассказал, что все настройки в графическом виде, что вы видите и совершаете, на самом деле меняют ключи реестра в фоновом режиме, поэтому реестр - это и есть система управления Windows.

Недавно я вам рассказывал ситуацию, что мне нужно было удаленно включить на одном сервере Windows Server 2019 службу удаленного рабочего стола, чтобы я мог подключиться на него по RDP, и благодаря изменению ключей через удаленное подключение к реестру сервера (Сетевому реестру), задача была выполнена за пару минут. Так же у вас могут быть ситуации:

  • Вам необходимо посмотреть появился ли нужный ключ реестра после применения групповой политики, которую вы сделали
  • Добавить права для определенной группы, например сделать их администраторами или разрешить им подключение через Windows ассистента
  • Отключить брандмауэр
  • Удалить сбойный ключ реестра
  • Изменить порт подключения RDP
  • Многое другое, практически любое изменение настроек, главное знать, где искать

Алгоритм подключения к удаленному реестру Windows

Предположим, что у меня в моем домене Active Directory есть контроллер домена с которого я попытаюсь подключить к реестру сервера RDCB01, где посмотрю ключи реестра и что-нибудь поправлю. Что делаем, нажимаем одновременно сочетание клавиш WIN+R.

У вас откроется окно "Выполнить", где вы должны ввести regedit.

В итоге у вас откроется окно редактора локального реестра Windows.

Теперь, чтобы нам подключиться к реестру другого компьютера или сервера, вам необходимо выбрать меню файл, где необходимо найти пункт "Подключить сетевой реестр"

В поле "Введите имена выбираемых объектов", укажите DNS имя вашего удаленного сервера, в моем примере это сервер с Windows Server 2019 под именем RDCB01 и нажимаем проверить имена, если все хорошо, то под именем появится подчеркивание, что означает о выявлении сервера с таким именем. Нажимаем ок и пробуем подключить сетевой реестр Windows.

В момент подключения, если на стороне удаленного сервера есть сетевые проблемы или брандмауэр, то вы можете увидеть вот такое предупреждение:

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

Если вы точно знаете, что удаленный компьютер должен отвечать на сетевые пакеты PING, то попробуем проверить его доступность, для этого откройте командную строку и введите:

ping rdcb01 (Имя вашего сервера)

Если вы видите, что "Превышен интервал ожидания для запроса", то это означает, что сервер не доступен, при условии, что как я и говорил пакеты PING не лочатся сетевым экраном. Если у вас видится время ответа TTL, то это означает, что сервер по сети доступен и с ним можно взаимодействовать, чтобы включить удаленно нужную службу

Как нам писала ошибка выше, на обоих компьютерах должна быть запущена служба удаленного реестра. В командной строке вы можете проверить состояние данной службы для этого введите:

Как видим в моем примере у нее статус STOPPED

То же самое можно посмотреть и через PowerShell

Get-Service RemoteRegistry | FL

запустим у себя локально службу удаленного реестра.

Get-Service RemoteRegistry | Start-Service

Так же можно тут же проверить доступность службы на удаленном компьютере:

Get-Service -Name "RemoteRegistry" -ComputerName rdcb01

Если ваше обращение блокирует на той стороне брандмауэр, то вы увидите вот такое сообщение, но не спешите расстраиваться, вы либо можете его отключить локально, или если есть административные права на удаленную систему, то мы это сделаем удаленно, об этом ниже.

Теперь попробуем запустить данную службу на удаленном сервере RDCB01, для этого откройте окно выполнить и введите в нем команду services.msc и нажмите Enter, у вас откроется оснастка службы.

Щелкаем по службам и из контекстного меню выбираем пункт "Подключиться к другому компьютеру"

Указываем имя компьютера и нажимаем "OK".

Если брандмауэр не блокирует подключение, то вы увидите успешное выполнение операции, если блокирует, то увидите ошибку:

Не удалось открыть базу данных диспетчера управления службами на сервере. Ошибка 1722: Сервер RPC недоступен

Причин у ошибки "1722: Сервер RPC недоступен" несколько:

  • На удаленном компьютере не запущены две службы "Модуль запуска процессов DCOM-сервера" и "Удаленный вызов процедур (RPC)". Хочу отметить, что данные службы запускаются автоматически при старте системы
  • Вас блокирует брандмауэр, он не пропускает удаленное управление службой. Этот набор состоит из трех служб:
  1. Удаленное управление службой (RPC-EPMAP)
  2. Удаленное управление службой (Именованные каналы)
  3. Удаленное управление службой (RPC)

Давайте мы удаленно включим данные правила, напоминаю, что для этого у вас должны быть права локального администратора на удаленном компьютере, понятно, что вы можете включить их локально, но машинка может быть в другом городе или стране. На помощь нам приходит в очередной раз Марк Руссинович и его набор утилит sysinternals. Из данного набора нам потребуется утилита PSTools, она позволит и удаленно запустить службу и при необходимости добавить правило в брандмауэр.

скачать PSTools с сайта Microsoft https://technet.microsoft.com/ru-ru/sysinternals/pstools.aspx?f=255&MSPPError=-2147217396

Загружаете данный архив с утилитами, распаковываете его в нужное вам место. Теперь зажав клавишу Shift щелкните правой кнопкой мыши по папке с утилитами и из контекстного меню выберите пункт "Открыть окно команд".

Введите вот такую команду:

PsExec.exe \\IP-адрес или DNS-имя компьютера -u domain\логин -p пароль cmd

Мой пример: PsExec.exe \\rdbc01 -u root\Администратор -p пароль cmd

Я наблюдаю успешное подключение к командной строке на удаленном компьютере RDCB01, там сейчас запущена служба PsExec.exe. Теперь на удаленной системе я могу делать все, что мне нужно.

Вы можете на удаленном компьютере отключить брандмауэр на время, чтобы произвести настройки служб:

netsh advfirewall set allprofiles state off

потом обратно включить netsh advfirewall set allprofiles state on (Обязательно включите после настроек)

Там будет вот так:

Далее я вам советую включить на брандмауэре в разделе "Разрешение взаимодействия с приложениями или компонентом в брандмауэре", набор правил "Удаленное управление службой", это даст возможность цепляться к оснастке "Службы" на другом компьютере

Далее подключаетесь в оснастке службы к нужному хосту и запускаем службу "Удаленный реестр"

Служба запущена.

Так же можно изначально прямо из командной строки включить нужную службу в PsExec.exe, я вам не показал, этого сразу, чтобы вы могли настроить для себя брандмауэр. Проверим статус службы:

sc query RemoteRegistry

Далее запустим службу sc start RemoteRegistry

Как видим служба RemoteRegistry успешно запущена, при чем удаленно.

Пробуем подключиться к удаленному, сетевому реестру, теперь у нас не возникает проблем и мы видим, что добавился новый раздел RDCB01.

На этом у меня все, мы с вами разобрали, как управлять удаленным реестром Windows, научились подключать его. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org,

Страница не найдена – Information Security Squad

  • 🔬 3 простых способа найти время последней загрузки Windows 05.03.2022

    Вы попали по адресу, если хотите узнать о различных способах проверки времени последней загрузки машины windows. Сетевые администраторы используют время последней загрузки Windows в качестве метрики для устранения повседневных проблем, которые могут возникать в системе. Давайте начнем с рассмотрения нескольких различных методов определения времени последней загрузки Windows. Power Shell Существует несколько способов использования Power Shell […]

  • 🐳 Мониторинг и управление Docker контейнерами – обзор инструментов CLI 05.03.2022

    Контейнеры Docker помогают разработчикам во многих отношениях. Преимущества контейнеризации включают улучшение совместной работы, экономическую эффективность, мобильность и возможность быстрого тестирования/развертывания приложения. Учитывая большое количество ценных преимуществ, многие сервисы зависят от контейнеров Docker. С ростом зависимости от технологий не менее важно управлять контейнерами Docker. Да, даже если вы уже используете Docker, вам нужны эффективные инструменты для […]

  • 🎲 Обзор игр для снятия стресса и улучшения общей когнитивной функции 03.03.2022

    Поскольку стресс и тревога достигли почти пикового уровня в нашем обществе, все больше людей ищут способы расслабиться, снять напряжение и вернуть чувство контроля над своей жизнью. Естественно, это приводит людей к таким способам, как медитация, физические упражнения и здоровое питание. Хотя все эти методы доказали свою эффективность, одним из часто игнорируемых методов снижения стресса являются […]

  • 🐧 Как переместить домашний каталог на новый раздел или диск в Linux 01.03.2022

    Если вы новичок в Linux или тот, кто планирует отказаться от windows и перейти на Linux, то эта статья будет вам очень полезна. В этой пошаговой статье вы узнаете, как перенести домашний каталог на новый раздел или диск в Linux. Введение Большинство новичков при установке операционных систем Linux не заботятся о создании различных разделов. Новички […]

  • 🌐 Как создать файл HAR в Google Chrome, Firefox и проанализировать его? 28.02.2022

    Файл HAR обычно используется для устранения проблем с сетью или производительностью, включая долгое время загрузки страниц и тайм-ауты при выполнении определенных задач на сайте. Служба поддержки любой компании или сайта использует этот файл HAR для выявления и решения проблем с производительностью, таких как длительное или медленное время загрузки, проблемы с рендерингом страниц и коды ошибок, […]

  • Как в Windows 10 создать собственную системную службу

    Открыв Диспетчер задач и переключившись на вкладку «Подробности», можно обнаружить ряд процессов, которые явно не имеют никакого отношения к запущенным пользователем прикладным программам. Многие из таких процессов принадлежат службам — особым программным модулям, стартующим вместе с Windows, работающим в скрытом режиме и выполняющим подчас очень важную работу. Но тут у многих может возникнуть вопрос.

    А разве прикладные программы не могут работать в скрытом режиме и точно так же запускаться вместе с Windows, будучи добавленными в автозагрузку?

    Чем службы отличаются от программ, добавленных в автозагрузку

    Это хороший вопрос, и на него можно ответить утвердительно, однако понятие «автозагрузка» часто употребляется в широком смысле слова без различия, что именно и как именно загружается. Если вы имеете общие представления о работе процессов Linux, то наверняка знакомы с такой сущностью как демон. Это процесс, но процесс несвязанный с каким-либо конкретным пользователем и работающий как-бы автономно. Службы в Windows очень похожи на этих самых демонов, они тоже независимы от пользователей. Когда вы добавляете в автозагрузку программу, пусть даже не имеющую графического интерфейса, она запускается в рабочем окружении пользователя при входе последнего в свою учетную запись, тогда как службы запускаются еще до ввода пользователем логина и пароля и напрямую с ним не взаимодействуют.

    Теперь, когда вы поняли основную разницу между добавленными в автозагрузку приложениями и службами, мы научимся создавать такие службы сами и использовать их для разных целей, например, для мониторинга портов или еще чего-нибудь; главное — это найти программу или скрипт, который будет выполнять необходимое вам действие.

    А еще вам понадобиться бесплатный инструмент Non-Sucking Service Manager, который «превратит» обычный процесс в службу. Название программы не очень благозвучное даже для носителя английского языка, но это не так уже и важно. Главное, что она работает. Скачать ее можно с сайта разработчика nssm.cc/download.

    Создавать службу (чисто для примера) мы будем из процесса скрипта PowerShell, замеряющего среднее значения загруженности процессора и сохраняющего данные в текстовый лог.

    Скачать скрипт можно по ссылке yadi.sk/d/3pJmyAvNB8poIQ.

    Вот так он выглядит «изнутри».

    Сначала проверим, работает ли сам скрипт. Кликаем по нему ПКМ и выбираем «Выполнить с помощью PowerShell».

    Если в консоли будет выведен запрос на разрешение выполнения скриптов, вводим Y и нажимаем ввод.

    Если скрипт заработал, вы увидите в консоли текст «Транскрибирование запущенно, выходной файл… и его адрес».

    В результате в каталоге со скриптом у вас появится каталог «Logs» с файлом отчета в простом текстовом формате.

    Создаем службу

    Теперь переходим к работе с Non-Sucking Service Manager. Открыв от имени администратора командную строку и перейдя в расположение исполняемого файла утилиты nssm.exe соответствующей разрядности, выполняем команду nssm install logCPUAvg, где logCPUAvg — имя новой службы.

    В открывшемся окошке установщика вы увидите три поля:

    • Path – в нем указываем путь к обработчику, то есть PowerShell, файл консоли находится в папке C:\Windows\System32\PowerShell.
    • Startup directory – папка с исполняемым файлом обработчика, поле заполнится автоматически.
    • Arguments – в этом поле прописываем команду -ExecutionPolicy Bypass -NoProfile -File "полный-путь-к-скрипту".

    Аргумент ExecutionPolicy нужен для предоставления скрипту временных прав на запуск. Если в качестве службы вы устанавливаете какую-нибудь утилиту, то поле может быть оставлено как пустым, так и с указанным в нём аргументом данной конкретной утилиты.

    Всё готово, жмем «Install service», чтобы установить службу.

    Окно установщика содержит и другие вкладки, дополнительные. Например, на вкладке «Details» можно указать описание и отображаемое в оснастке управления службами имя службы, которое будет отличаться от указанного в команде nssm install, а на вкладке «Log on» выбрать учетную запись, от имени которой станет работать служба.

    По умолчанию создаваемая служба работает от имени самой системы, как и положено. Открыв оснастку управления службами, вы увидите в списке и свою службу. Она будет иметь тип запуска «Автоматически», но находиться в остановленном состоянии. Запустится она при следующей загрузке, либо вы сами можете ее запустить.

    То, что скрипт заработал, станет видно из того, что в месте его расположения появится папка «Logs», при этом вывод самой консоли будет скрыт. И вот что интересно. Запустив службу, мы вышли из учетной записи в 12.46, а затем вошли в нее в 12.50, но служба продолжала работать даже в наше отсутствие в системе! Это еще раз говорит о том, что системная служба не связана с пользовательским окружением.

    Удаление службы

    Помимо того, что вы можете остановить службу в оснастке, переведя ее в статус «Отключена», вы властны ее полностью удалить с помощью той же NSSM. Для этого в командной строке выполняем команду nssm remove имя-службы.

    И подтверждаем действие нажатием кнопки «Да» в миниатюрном диалоговом окошке.

    Ну вот, теперь вы знаете, как создавать собственные службы для утилит и скриптов, которые могут работать независимо от пользователя в скрытом режиме.

    Восстановление служб Windows путем запуска программы

    С тех пор, как в Windows появились службы, администраторам приходится решать проблемы, связанные с неожиданным прекращением их работы. Конечно, в системе предусмотрен механизм, позволяющий автоматически запустить службу после аварийной остановки, но он редко срабатывает корректно (мне приходилось пользоваться этой функцией, хоть я и знаю, что она несовершенна). Причины сбоев бывают самые разные, но чаще всего они связаны с работой сторонних приложений или возникают из-за нехватки ресурсов.

    Для критически важных серверов можно настроить отправку дополнительных уведомлений о сбое, использовав опцию «Запуск программы» (Run A Program) на вкладке «Восстановление» (Recovery) в свойствах службы. Можно привязать к службе сценарий PowerShell, файл VBS или BAT, который будет уведомлять администратора, а затем пытаться возобновить работу службы, чтобы ускорить реагирование в случае сбоя. Также можете скачать другие полезные vbs скрипты для вашего ПК.

    На рис. A показана настройка опции «Запуск программы» для одной из служб.


    Рисунок A. Нажмите на изображении для увеличения.

    Другие опции, в частности «Перезагрузка компьютера» (Restart The Computer), пожалуй, чересчур экстремальны. Лично я бы хотел иметь возможность самостоятельно решить проблему, потому что в противном случае сбой может привести к непрерывной череде перезагрузок.

    Программа должна быть компактной и простой, чтобы ее легко было запускать автоматически. Сценарии PowerShell в этом контексте оказываются сложнее для запуска, чем файлы BAT и VBS. Если в случае сбоя предусмотрена отправка электронного уведомления, придется установить почтовый клиент — например, Microsoft Outlook или альтернативные решения (хотя я не любитель установки стороннего ПО на сервер). Кроме того, стоит настроить отправку уведомлений о результатах перезапуска службы.

    Любые функции, способные ускорить реагирование при сбоях в работе служб, высоко ценятся администраторами. К сожалению, зачастую разработчики сторонних приложений не обеспечивают в своих продуктах корректную поддержку служб, а исправить такие приложения самостоятельно не представляется возможным.

    А какие способы повышения доступности служб Windows известны вам? Поделитесь своим опытом в комментариях!

    Автор: Rick Vanover
    Перевод SVET



    Оцените статью: Голосов

    Обновление времени в Windows из Powershell

    Точность системного времени очень важная вещь. Из-за неправильно выставленного времени может произойти множество ситуаций, которые приведут к неопределённым последствиям. Те кто запускал GNU/Linux в Live режиме могли обратить внимание на системное время Windows, после завершения работы с Linux оно отставало. Связано это с особенностью работы операционных систем с системным временем. Более подробно можно почитать здесь.

    Так как целью данной статьи не является рассмотрение ситуации возникновения рассинхрона времени, более на этом останавливаться не будем. Всех любопытных прошу под кат.

    Итак, для начала необходимо проверить статус службы W32Time. По умолчанию данная служба остановлена на Windows 10 Pro. Powershell должен быть запущен с правами администратора!

    Get-Service -Name W32Time | Format-Wide -Property Status -Column 1

    Выводом этой команды скорее всего станет строка: Stopped.

    Статус сервиса

    Более подробную информацию о сервисе можно узнать выполнив команду:

    Get-Service W32Time | Select-Object *

    Получить список требуемых служб:

    Get-Service W32Time -RequiredServices

    Теперь, когда вы убедились, что служба остановлена её необходимо запустить. Выполните следующую команду:

    Start-Service W32Time

    Обращаю ваше внимание, если powershell не был запущен с правами администратора, то при выполнении команды запуска службы вы получите ошибку.

    Ошибка запуска службы

    Никакого вывода о состоянии службы после окончания выполнения команды не будет. Чтобы проверить статус службы повторно выполните команду для проверки статуса службы приведённую выше.

    Теперь, наконец-то, можно приступить к синхронизации времени. Выполним следующую команду для обновления времени:

    w32tm /resync /force

    По умолчанию время будет браться с ntp-сервера time.windows.com. Если вам необходимо изменить его на другой ntp-сервер, то выполните:

    w32tm /config /syncfromflags:manual /manualpeerlist:"0.ru.pool.ntp.org"
    w32tm /config /reliable:yes

    Перезапустите службу w32time:

    Restart-Service W32Time

    Проверить, что ntp-сервер изменился:

    w32tm /query /configuration

    До применённых изменений

    После применённых изменений

    Похожим образом можно изменить временную зону. Посмотреть свою временную зону:

    w32tm /tz
    Get-TimeZone

    Получить список всех доступных временных зон:

    Get-TimeZone -ListAvailable

    Изменить временную зону:

    Set-TimeZone -Name "Magadan Standard Time"

    Справка по w32tm
    Справка по Set-TimeZone
    Справка по Get-TimeZone

    Понравилось это:

    Нравится Загрузка...

    Похожее

    Метки: Powershell, w32tm, Windows

    This entry was posted on 2018/11/13 at 11:00:53 and is filed under Software. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

    Управление услугами — PowerShell | Документы Майкрософт

    • Статья
    • Время считывания: 3 мин
    • Соавторы: 2

    Была ли эта страница полезной?

    да Нет

    Хотите что-нибудь добавить к этому мнению?

    Отзыв будет отправлен в Microsoft: когда вы нажмете «Отправить», отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.

    Представлять на рассмотрение

    В этой статье

    Для службы существует восемь базовых командлетов, предназначенных для широкого круга задач службы. Мы рассмотрим только списки и изменения состояния работы службы, но список командлетов службы можно получить с помощью команды, а информацию об отдельных командлетах службы можно найти с помощью Get-Help * -Service Get-Help , например Get-Help New-Service .

    Получить услуги

    Службы

    можно получить на локальном или удаленном компьютере с помощью командлета Get-Service . Как и в случае с Get-Process , использование команды без параметров возвращает все службы Get-Service . Вы можете фильтровать по имени, даже используя звездочку в качестве подстановочного знака:

    .
      PS> Get-Service -Name se * Имя состояния Отображаемое имя ------ ---- ----------- Запуск вторичного входа в систему seclogon Запуск уведомления о системных событиях SENS Остановлен уровень обслуживания  

    Поскольку настоящее имя службы не всегда очевидно, вам может потребоваться найти службы по отображаемому имени.Это можно сделать с помощью определенного имени, подстановочных знаков или списка отображаемых имен:

    .
      PS> Get-Service -DisplayName se * Имя состояния Отображаемое имя ------ ---- ----------- Запуск сервера lanmanserver Запуск диспетчера учетных записей безопасности SamSs Запуск вторичного входа в систему seclogon Остановлен уровень обслуживания Запуск центра безопасности wscsvc PS> Get-Service -DisplayName ServiceLayer, Server Имя состояния Отображаемое имя ------ ---- ----------- Запуск сервера lanmanserver Остановлен уровень обслуживания  

    Параметр ComputerName командлета Get-Service можно использовать для получения служб на удаленных компьютерах.ComputerName принимает несколько значений и подстановочных знаков, чтобы службы можно было получить на нескольких компьютерах с помощью одной команды. Например, следующая команда получает службы на удаленном компьютере Server01.

      Служба Get-ComputerName Server01  

    Получить необходимые и зависимые услуги

    Командлет Get-Service имеет два параметра, очень полезных при администрировании службы. Параметр DependentServices получает службы, которые зависят от службы.Параметр RequiredServices получает службы, от которых зависит эта служба.

    Эти параметры отображают только значения свойств DependentServices и ServicesDependedOn (alias = RequiredServices) свойства System.ServiceProcess.ServiceController, возвращаемые Get-Service, но они упрощают команды и значительно упрощают получение этой информации.

    Следующая команда получает службы, необходимые для службы LanmanWorkstation.

      PS> Get-Service -Name LanmanWorkstation -RequiredServices Имя состояния Отображаемое имя ------ ---- ----------- Запуск MRxSmb20 SMB 2.0 МиниРедиректор Бегущий боузер Боузер Запуск MRxSmb10 SMB 1.x MiniRedirector Запуск службы интерфейса сетевого хранилища NSI  

    Следующая команда получает службы, которым требуется служба LanmanWorkstation.

      PS> Get-Service -Name LanmanWorkstation -DependentServices Имя состояния Отображаемое имя ------ ---- ----------- Запуск конфигурации служб терминалов SessionEnv Запуск Netlogon Netlogon Браузер остановлен Браузер компьютера Запуск BITS Background Intelligent Transfer Ser...  

    Вы даже можете получить все службы, которые имеют зависимости. Следующая команда делает именно это, а затем использует командлет Format-Table для отображения свойств Status, Name, RequiredServices и DependentServices служб на компьютере.

      Get-Service -Name * | Где-Объект {$_.RequiredServices -или $_.DependentServices} | Format-Table -Статус свойства, Имя, RequiredServices, DependentServices -auto  

    Остановка, запуск, приостановка и перезапуск служб

    Все командлеты службы имеют одинаковую общую форму.Вы можете указать службы с общим именем или отображаемым именем и принять списки и подстановочные знаки в качестве значений. Чтобы остановить диспетчер очереди печати, используйте:

      Stop-Service — Имя диспетчера очереди печати  

    Чтобы запустить диспетчер очереди печати после остановки, используйте:

      Start-Service - Имя диспетчера очереди печати  

    Чтобы приостановить диспетчер очереди печати, используйте:

      Suspend-Service — диспетчер очереди печати имени  

    Командлет работает так же, как и другие командлеты службы, но мы показываем Restart-Service несколько более сложных примеров.В самом простом использовании вы должны указать имя службы:

    90 046 90 029 PS>Перезапуск-Сервис-Имя спулера ПРЕДУПРЕЖДЕНИЕ: Ожидание завершения запуска службы «Диспетчер очереди печати (Spooler)»… ПРЕДУПРЕЖДЕНИЕ: Ожидание завершения запуска службы «Диспетчер очереди печати (Spooler)»… PS>

    Вы заметите, что получаете повторяющееся предупреждающее сообщение о том, что работает диспетчер очереди печати. При выполнении операции службы, которая занимает некоторое время, Windows PowerShell уведомит вас о том, что она все еще пытается выполнить задачу.

    Если вы хотите перезапустить несколько служб, вы можете получить список служб, отфильтровать их, а затем выполнить перезапуск:

    90 046 90 029 PS> Get-Service | Где-Объект -FilterScript{$_.CanStop} | Рестарт-Сервис ВНИМАНИЕ: Ожидание завершения службы «Обозреватель компьютеров (Браузер)»... ВНИМАНИЕ: Ожидание завершения службы «Обозреватель компьютеров (Браузер)»... Служба перезапуска: не удается остановить службу «Диспетчер логических дисков (dmserver)», поскольку у него есть зависимые службы.Его можно остановить, только если установлен флаг Force. В строке: 1 символ: 57 + Получить-Сервис | Где-Объект -FilterScript{$_.CanStop} | Рестарт-Сервис <<<< ПРЕДУПРЕЖДЕНИЕ: Ожидание завершения запуска службы «Диспетчер очереди печати (Spooler)»… ПРЕДУПРЕЖДЕНИЕ: Ожидание завершения запуска службы «Диспетчер очереди печати (Spooler)»…

    Эти командлеты службы не имеют параметра ComputerName, но их можно запустить на удаленном компьютере с помощью командлета Invoke-Command. Например, следующая команда перезапускает службу кэша на удаленном компьютере Server01.

      Invoke-Command -ComputerName Server01 {Restart-Service Spooler}  

    Настройка свойств службы

    Командлет Set-Service изменяет свойства службы на локальном или удаленном компьютере. Поскольку состояние службы является свойством, вы можете запускать, останавливать и приостанавливать службу с помощью этого командлета. Команда Set-Service также имеет параметр StartupType, позволяющий изменить тип запуска службы.

    Для использования в Windows Vista и более поздних версиях Windows откройте Windows PowerShell Set-Service с параметром «Запуск от имени администратора».

    Дополнительные сведения см. в разделе Set-Service

    .

    См. также

    .

    Запуск Windows PowerShell — PowerShell

    • Статья
    • Время считывания: 4 мин
    • Соавторы: 2

    Была ли эта страница полезной?

    да Нет

    Хотите что-нибудь добавить к этому мнению?

    Отзыв будет отправлен в Microsoft: когда вы нажмете «Отправить», отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.

    Представлять на рассмотрение

    В этой статье

    Windows PowerShell — это обработчик сценариев .DLL , встроенный в несколько хостов. Наиболее распространенными узлами для запуска являются интерактивная командная строка и powershell.exe интерактивная среда сценариев powershell_ise.ехе .

    Чтобы запустить Windows PowerShell в Windows Server 2012 R2, Windows 8.1, Windows Server 2012 и Windows 8, см. Общие задачи управления и навигации в Windows.

    Бинарный файл PowerShell был переименован

    PowerShell 6 или более поздней версии использует .NET Core. Поддерживаемые версии доступны для Windows, macOS и Linux.

    Начиная с PowerShell 6, двоичный файл PowerShell был переименован в pwsh.exe Windows для pwsh macOS и Linux. Предварительный просмотр PowerShell можно запустить с помощью команды pwsh-preview . Дополнительные сведения см. в разделе О pwsh.

    Чтобы найти документацию по командлетам и документацию по установке PowerShell 7, используйте следующие ссылки:

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

    Как запустить Windows PowerShell в более ранних версиях Windows

    В этом разделе объясняется, как запустить Windows PowerShell и интегрированную среду сценариев Windows PowerShell (ISE) в Windows 7, Windows Server 2008 R2 и Windows Server 2008. Также объясняется, как включить дополнительную функцию для Windows PowerShell ISE в Windows PowerShell 2.0 на Windows Server 2008 R2 и Windows Server 2008.

    Используйте любой из следующих способов для запуска установленной версии Windows PowerShell 3.0 или Windows PowerShell 4.0, если применимо.

    Из меню «Пуск»

    • Нажмите кнопку «Пуск» , введите PowerShell, и нажмите Windows PowerShell .
    • В меню Пуск щелкните Пуск, , щелкните Все Программы, , щелкните Аксессуары, , щелкните Windows PowerShell, , а затем щелкните Windows PowerShell .

    В командной строке

    W cmd.exe , Windows PowerShell или Windows PowerShell ISE для запуска Windows PowerShell, введите:

      PowerShell  

    Вы также можете использовать параметры программы powershell.exe для настройки сеанса. Дополнительные сведения см. в справке командной строки PowerShell.exe.

    С правами администратора (Запуск от имени администратора)

    Щелкните Пуск, введите PowerShell, Щелкните правой кнопкой мыши Windows PowerShell и выберите Запустить от имени администратора.

    Как запустить Windows PowerShell ISE в более ранних выпусках Windows.

    Используйте любой из следующих способов для запуска Windows PowerShell ISE.

    Из меню «Пуск»

    • Щелкните Start , введите ISE, , а затем щелкните Windows PowerShell ISE.
    • В меню Пуск щелкните Пуск, , щелкните Все программы, щелкните Стандартные, , щелкните Windows PowerShell, , а затем щелкните Windows PowerShell ISE.

    В командной строке

    W cmd.exe , Windows PowerShell или Windows PowerShell ISE для запуска Windows PowerShell, введите:

      PowerShell_ISE  

    или

      ИСЭ  

    С правами администратора (Запуск от имени администратора)

    Щелкните Пуск, введите ISE, Щелкните правой кнопкой мыши Windows PowerShell ISE, и выберите Запуск от имени администратора.

    Как включить Windows PowerShell ISE в более ранних версиях Windows

    В Windows PowerShell 4.0 и Windows PowerShell 3.0 интегрированная среда сценариев Windows PowerShell включена по умолчанию во всех версиях Windows. Windows Management Framework 4.0 или Windows Management Framework 3.0, если он еще не включен.

    В Windows PowerShell 2.0 интегрированная среда сценариев Windows PowerShell включена по умолчанию в Windows 7. Однако в Windows Server 2008 R2 и Windows Server 2008 это необязательная функция.

    Используйте следующую процедуру, чтобы включить Windows PowerShell ISE в Windows PowerShell 2.0 на сервере Windows Server 2008 R2 или Windows Server 2008.

    Чтобы включить интегрированную среду сценариев Windows PowerShell (ISE)

    1. Запустите диспетчер серверов.
    2. Щелкните Функции, , а затем щелкните Добавить функции.
    3. В разделе «Выбор компонентов» щелкните Интегрированная среда сценариев Windows PowerShell (ISE).

    Запустите 32-разрядную версию Windows PowerShell

    При установке Windows PowerShell на 64-разрядном компьютере в дополнение к 64-разрядной версии устанавливается Windows PowerShell (x86), 32-разрядная версия Windows PowerShell. При запуске Windows PowerShell по умолчанию запускается 64-разрядная версия.

    Однако иногда вам может потребоваться запускать Windows PowerShell (x86), , например, при использовании модуля, для которого требуется 32-разрядная версия, или при удаленном подключении к 32-разрядному компьютеру.

    Используйте любую из следующих процедур для запуска 32-разрядной версии Windows PowerShell.

    В Windows Server 2012 R2

    • На экране запуска введите Windows PowerShell (x86) . Нажмите на плитку Windows PowerShell x86 .
    • В Server Manager меню Инструменты выберите Windows PowerShell (x86).
    • На рабочем столе переместите курсор в правый верхний угол, щелкните Поиск, введите PowerShell x86, , а затем щелкните Windows PowerShell (x86).
    • В командной строке введите: %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

    В Windows Server 2012

    • На начальном экране введите PowerShell, и щелкните Windows PowerShell (x86) .
    • В Server Manager меню Инструменты выберите Windows PowerShell (x86).
    • На рабочем столе переместите курсор в правый верхний угол, щелкните Поиск, введите PowerShell, , а затем щелкните Windows PowerShell (x86) .
    • В командной строке введите: %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

    В Windows 8.1

    • На экране запуска введите Windows PowerShell (x86) . Нажмите на плитку Windows PowerShell x86 .
    • Если вы используете средства удаленного администрирования сервера для Windows 8.1, вы также можете открыть Windows PowerShell x86 из меню Server ManagerTools. Выберите Windows PowerShell (x86) .
    • На рабочем столе переместите курсор в правый верхний угол, щелкните Поиск, введите PowerShell x86, , а затем щелкните Windows PowerShell (x86).
    • В командной строке введите: %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

    В Windows 8

    • На начальном экране переместите курсор в правый верхний угол, нажмите кнопку «Настройки», нажмите кнопку плитки, , а затем переместите ползунок Показать инструменты администрирования да. Затем введите PowerShell и щелкните Windows PowerShell (x86) .
    • Если вы используете средства удаленного администрирования сервера для Windows 8, вы также можете открыть Windows PowerShell x86 из меню Server ManagerTools. Выберите Windows PowerShell (x86) .
    • На экране запуска или на рабочем столе введите PowerShell (x86), , а затем щелкните Windows PowerShell (x86) .
    • В командной строке введите: %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
    .

    Запуск сценария PowerShell в качестве службы Windows (Powerhell)

    Из любого сценария PowerShell можно создать службу Windows, которая работает в фоновом режиме и запускается автоматически при запуске сервера. Службу Windows можно создать с помощью инструментов srvany.exe и instsrv.exe (входят в комплект Windows Server Resource 2003), позволяя запускать powershell.exe с указанием пути к параметру файла сценария ps1. Главный недостаток этого метода создания сервиса в том, что srvany.exe не контролирует выполнение приложения (в нашем случае PowerShell-скрипта), и если приложение вылетает (зависает), то служба его не видит и продолжает работать. В этой статье мы воспользуемся этим инструментом для создания Windows-сервиса из файла скрипта PowerShell Nssm (Service Manager без отсоса - оставим без перевода... :)), который лишен этих недостатков.

    Вы можете скачать и установить NSSM вручную или через Chocolately. Сначала нужно установить Choco:

    Bypass Set-ExecutionPolicy -Scope Process -Force; ''
    iex ((Система новых объектов.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

    Затем установите пакет NSSM:

    choco install nssm

    В этом примере мы будем отслеживать изменения в конкретном AD группы в режиме реального времени (скрипт из этой статьи) и оповещать администратора безопасности всплывающим уведомлением и списком при изменении.

    Итак, у нас есть код, который необходимо сохранить в файле PS1. Добавьте бесконечный цикл, выполняющий проверку раз в минуту:

    while ($true)
    # Ваш код PS
    Start-Sleep-Seconds 60

    Конечно, для реализации такого сценария можно создать задачу в расписанию (Task Scheduler), но если вам нужно реагировать на какие-либо изменения в режиме реального времени, метод отдельного сервиса гораздо правильнее.

    Можно создать сервис из скрипта PowerShell с помощью NSSM прямо из PowerShell :):

    $NSSMPath=(Get-Command "C:\tools\nssm\win64\nssm.exe"). Источник $
    NewServiceName = "CheckADGroupSrv" $
    PoShPath = (Get-Command powershell). Источник
    $ PoShScriptPath = "C: \ tools \ CheckADGroup \ checkad.ps1"
    $ args = '-ExecutionPolicy Bypass -NoProfile -File "0"' -f $ PoShScriptPath
    & $ NSSMPath install $ NewServiceName $ PoShPath $ args
    & $ NSSMPath status $ NewServiceName

    Запустить новую службу:

    Start-Service $ NewServiceName

    Проверить состояние службы с помощью PowerShell:

    Get-Service $ NewServiceName

    Убедитесь, что он отображается в консоли управления службами services.msc

    Служба CheckADGroupSrv действительно появилась, настроена на автоматический запуск и в данный момент работает (работает). Как видите, скрипт PowerShell запускается в процессе nssm.exe.

    Помните, что служба работает под системной учетной записью. Если вы используете в своих PS-скриптах другие модули (в моем случае для получения состава доменной группы безопасности используется командлет Get-ADGroupMember из Active Directory для Windows PowerShell), то учетная запись должна иметь доступ к файлам модулей и права для подключения к AD (в моем почтовом ящике).Вы также можете запустить эту службу под другой учетной записью (или учетной записью gMSA) и предоставить пользователям право останавливать или перезапускать службу, если у них нет прав локального администратора.

    Чтобы служба отображала уведомления в сеансе пользователя (взаимодействует с рабочим столом), необходимо: Логин " (Вход) включить " Разрешить взаимодействие с компьютером " (Разрешить службе взаимодействовать с компьютером).

    Чтобы это работало в Windows 10 / Windows Server 2012 R2 / 2016, необходимо изменить значение DWORD параметра реестра NoInteractiveServices в HKLM\System\CurrentControlSet\Control\Windows на 0 и включить службу браузера интерактивных служб ( Интерактивные службы службы обнаружения ):

    Start-Service -Name ui0detect

    Однако в Windows 10 1803 служба обнаружения интерактивных служб была полностью удалена из системы, и вы больше не можете перейти к нулевому сеансу (сеанс 0 ), поэтому вы просто не увидите никаких окон, отображаемых в системной учетной записи.

    Описание сервиса можно изменить командой:

    & $NSSMPath set $ NewServiceName description "Мониторинг изменений в группе AD"

    Для удаления созданного сервиса можно использовать команду sc delete или

    nssm удалить CheckADGroupSrv

    .

    Сброс клиента Центра обновления Windows с помощью сценария PowerShell 2022

    В то время как Центр обновления Windows большую часть времени работает бесперебойно, пользователи могут иногда сталкиваться с проблемами при использовании Центра обновления Windows, например, несмотря на наличие обновлений, служба может не обнаруживать и не устанавливать их, обновления могут быть установлены неправильно, вызывая проблемы , служба Windows Update может зависнуть с "обновлениями" и вообще не зависать и т.д.

    Хотя вы можете попробовать перезагрузить систему, перезапустить службу Центра обновления Windows, откатить предыдущие обновления, если это возможно, устранить неполадки Центра обновления Windows, запустить средство устранения неполадок Центра обновления Windows, может не всегда работать. Мы уже видели, как вручную сбросить компоненты Центра обновления Windows по умолчанию. Сегодня мы рассмотрим Reset Windows Update Client Script, который полностью сбросит настройки клиента Центра обновления Windows.

    Сброс клиента Центра обновления Windows

    Этот сценарий полностью сбросит настройки клиента Центра обновления Windows. Он был протестирован на Windows 7, 8, 10 и Server 2012 R2. Он настроит службы, связанные с Центром обновления Windows, и ключи реестра для параметров по умолчанию. Он также очистит файлы, связанные с Центром обновления Windows, в дополнение к данным, связанным с BITS. Из-за определенных ограничений командлетов, доступных в PowerShell, этот скрипт вызывает некоторые старые инструменты (sc.exe, netsh.exe, wusa.exe и т. д.).

    Создайте резервную копию данных, перезапустите Windows и войдите в систему как администратор.

    Загрузите файл PowerShell с сайта Technet. Щелкните правой кнопкой мыши файл Reset-WindowsUpdate.psi и выберите «Выполнить с помощью PowerShell».

    Вас попросят подтвердить. После подтверждения скрипт запустится и сбросит клиент Центра обновления Windows.

    Утилита настраивает разделы реестра, параметры и службы на значения по умолчанию.Все обновления сбрасываются, и по завершении система может перезагрузиться, а обновления могут быть переустановлены.

    По завершении этого процесса окно PowerShell закроется.

    У нас также был другой инструмент, ранее называвшийся Сброс агента обновления Windows , который позволяет сбросить агент WU до значений по умолчанию. Этот инструмент был обновлен для совместимости с обновлением Windows Creator, и его скачали более 100 000 пользователей.

    .

    Интегрированная среда сценариев Windows PowerShell

    Интегрированная среда сценариев Windows PowerShell (ISE) — это графическое хост-приложение для Windows PowerShell. Windows PowerShell ISE позволяет выполнять команды, а также сохранять, редактировать, запускать, тестировать и отлаживать сценарии в среде с цветовой кодировкой и поддержкой Unicode.

    Windows PowerShell — это оболочка на основе языка сценариев командной строки, основанная на Microsoft.NET Framework. Он был разработан специально для администрирования Windows. Его простые командлеты и встроенная справочная система помогут вам сразу приступить к работе. Вы можете объединять командлеты в конвейеры с несколькими командами, а затем сохранять свои любимые последовательности команд как функции для автоматизации задач. Более опытные пользователи могут использовать Windows PowerShell в качестве платформы для разработки и расширять ее, добавляя функции, командлеты и поставщиков.

    Windows PowerShell ISE предназначена для пользователей всех уровней квалификации. Начинающие оценят цветное отображение синтаксиса и контекстную помощь. Многострочное редактирование позволяет легко опробовать примеры, скопированные из разделов справки и других источников. Опытные пользователи оценят наличие нескольких сред выполнения, встроенный отладчик и расширяемость объектной модели Windows PowerShell ISE.

    Windows PowerShell 2.0 — это функция Windows Server 2008 R2. Windows PowerShell ISE является дополнительной функцией. Чтобы установить его, используйте мастер добавления компонентов.

    Функции Windows PowerShell ISE

    Windows PowerShell ISE включает следующие функции:

    • Командное окно для запуска интерактивных команд.
    • Панель сценариев для написания, редактирования и запуска сценариев. Вы можете запустить весь скрипт или выбранные строки скрипта.
    • На панели «Выход», которую можно прокручивать, отображаются записи команд на панелях «Команда» и «Сценарий», а также результаты этих команд.
    • До восьми независимых сред выполнения Windows PowerShell в одном окне, каждая со своими панелями Command, Script и Exit. Среда просмотра с вкладками позволяет работать над несколькими задачами одновременно.
    • Многострочное редактирование на панели команд позволяет вставлять несколько строк кода, запускать их, а затем вызывать их как блоки.
    • Встроенный отладчик для отладки команд, функций и скриптов. Вы можете устанавливать и удалять точки останова, пошагово просматривать код, проверять значения переменных и просматривать результаты трассировки стека вызовов.
    • Настраиваемые функции позволяют настроить цвет, шрифт и макет.
    • Объектная модель сценариев позволяет дополнительно настраивать и расширять Windows PowerShell ISE. Вы можете добавлять функции, включая пункты меню.Вы также можете получить доступ к сеансам, файлам и редактору для создания собственных функций.
    • Благодаря номерам строк и столбцов, сочетаниям клавиш, дополнению с помощью табуляции, контекстной справке и поддержке Unicode Windows PowerShell ISE представляет собой эффективную и продуктивную среду для Windows PowerShell. Windows PowerShell даже позволяет открывать файлы с помощью операции перетаскивания.

    Требования к приложению Windows PowerShell ISE

    Windows PowerShell ISE работает в Windows XP и более поздних версиях Windows, за исключением установки Server Core Windows Server.

    Для Windows PowerShell ISE требуется Microsoft .NET Framework 3.5 с пакетом обновления 1 (SP1). Если эта версия Microsoft .NET Framework не установлена ​​в вашей системе, диспетчер серверов устанавливает ее при установке Windows PowerShell ISE.

    Дополнительные сведения о Windows PowerShell и Windows PowerShell ISE см. в статье о Windows PowerShell (https://go.microsoft.com/fwlink/?LinkID=107116 — эта страница может отображаться на английском языке).

    .

    Настройка Zoom Rooms с помощью Office 365 — Справка Zoom 9000 1

    Когда ресурс календаря интегрирован с Zoom Room, на телевизионном дисплее, контроллере и дисплее расписания комнаты будут отображаться собрания, запланированные для комнаты. Члены организации могут планировать собрания в Zoom Room, приглашая комнату на собрание. Комнаты собраний выделяются службой календаря в качестве ресурса календаря. Предоставление Zoom доступа к ресурсам календаря позволяет пользователям начинать собрания в комнате и присоединяться к ним одним касанием.

    Прежде чем можно будет добавить службу календаря в Zoom Rooms, администратор Office 365 должен создать выделенного пользователя в Office 365 для управления календарями, создания или поиска ресурсов календаря для каждой комнаты Zoom Room, а затем настроить пользователя и ресурсы с помощью персонализации или доступа. опубликовано.

    После того, как администратор Office 365 выполнит все шаги в каждом разделе, он сможет использовать выделенные учетные данные пользователя, чтобы убедиться, что Zoom Rooms авторизован в учетной записи для использования службы календаря и всех ее ресурсов.

    В этой статье рассматриваются следующие вопросы:

    Предварительные условия для настройки Zoom Rooms с Office 365

    • Учетная запись администратора Office 365 с разрешениями на создание новых пользователей
    • Возможность создавать и управлять календарями для
    • комнат
    • Доступ администратора к Windows PowerShell

    Как создать выделенного пользователя Zoom для доступа к календарям Office 365

    1. Войдите в Office 365 как администратор.
    2. Добавьте пользователя в учетную запись Office 365. Документация Microsoft «Добавление пользователей в Office 365» содержит подробные инструкции.
      Примечание: , поскольку у выделенного пользователя должен быть почтовый ящик, он должен быть лицензированным пользователем в Office 365.
    3. Запишите адрес электронной почты и пароль.
    4. Перейдите к следующему разделу, чтобы создать или найти ресурс календаря для каждой комнаты.

    Как создать или найти ресурсы календаря для каждой комнаты

    1. Войдите в центр администрирования Microsoft Exchange (EAC) в качестве администратора.
    2. В меню навигации нажмите Клиенты , затем Ресурсы .
    3. Нажмите на символ плюса (+), если вам нужно добавить комнату.
      Zoom рекомендует использовать префикс (например, «ZR») для каждой комнаты или выбрать собственный метод для простого поиска комнат Zoom.
    4. Запишите отображаемое имя и адрес электронной почты каждого ресурса календаря.
    5. Перейдите к следующему разделу, чтобы подключить пользователя и ресурсы к Zoom с помощью Application Level или Full Delegated Access .

    Как настроить права доступа

    Включить персонификацию приложения в EAC
    1. Войдите в центр администрирования Microsoft Exchange (EAC) в качестве администратора.
    2. В меню навигации щелкните Разрешения .
    3. Выберите Управление обнаружением , затем нажмите Изменить .
    4. В разделе Роли щелкните значок добавления (+) .
    5. Из списка адресов выберите Персонализация приложения , затем нажмите Добавить .
    6. Щелкните OK .
    7. Нажмите Сохранить в разделе «Управление обнаружением».
      Теперь Office 365 начнет обновлять настройки организации.
    Обновление управления ролями и назначениями
    1. Запустите Windows PowerShell с параметром «Запуск от имени администратора».
      Примечание . Этот параметр доступен, если щелкнуть правой кнопкой мыши приложение Windows PowerShell, не запуская его.
    2. Введите следующую команду:
       $ UserCredential = Get-Credential 
    3. Введите имя пользователя и пароль администратора Office 365 в диалоговом окне.
      Убедитесь, что у этой учетной записи есть разрешения «Управление организацией» и «Управление аудиторией».
    4. Подготовьте сеанс, выполнив следующую команду:
       $ Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $ UserCredential -Authentication Basic -AllowRedirection 
      Примечание. : Китайские пользователи должны вводить команду с немного другим содержанием.Введите следующую команду:
       $ Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://partner.outlook.cn/powershell-liveid/ -Credential $ UserCredential -Authentication Basic -AllowRedirection 
    5. Подключитесь к сеансу с помощью приведенной ниже команды.
       Import-PSSession $ Сеанс 
    6. Если вы видите сообщение, начинающееся с сообщения: «Если вы видите ошибку типа «Импорт-PSSession: Не удалось загрузить файлы... »», введите следующую команду:
       Set-ExecutionPolicy Unrestricted 
      Примечание . Эта команда завершится ошибкой, если Windows PowerShell не будет запущена от имени администратора, как это требуется на шаге 1.
    7. Выполните следующую команду, чтобы создать новую роль управления.
       New-ManagementRoleAssignment -Role: ApplicationImpersonation -User: "DedicatedUser" 
      Примечание : вместо DedicatedUser введите адрес почтового ящика выделенного пользователя учетной записи службы.
    8. Выполните следующую команду, чтобы создать область разрешений.
       New-ManagementScope -Name "ResourceMailboxes" -RecipientRestrictionFilter {RecipientTypeDetails -eq "RoomMailbox" -or RecipientTypeDetails -eq "EquipmentMailbox" -or Name -eq 'DedicatedUser'} 
    9. Выполните следующую команду, чтобы создать связь между учетной записью и областью действия.
       New-ManagementRoleAssignment — имя «ResourceImpersonation» — роль ApplicationImpersonation — пользователь «DedicatedUser» —CustomRecipientWriteScope «ResourceMailboxes» 
      Примечание . Вместо DedicatedUser введите адрес почтового ящика выделенного пользователя учетной записи службы.
    Добавление календарей ресурсов выделенному пользователю
    1. Войдите в качестве выделенного пользователя на веб-портале Outlook.
    2. Перейти в раздел Календари .
    3. Нажмите Импорт календаря .
    4. Нажмите Из каталога .
    5. Под записью Добавьте календарь из каталога , найдите адрес почтового ящика ресурса.
    6. Нажмите Добавить (Добавить).
    Передача комнат выделенному пользователю
    1. Войдите в Центр администрирования Microsoft Exchange (EAC) в качестве администратора.

    2. В меню навигации нажмите Клиенты , затем Ресурсы .

    3. Дважды щелкните имя комнаты.

    4. Нажмите Делегирование почтового ящика
      .

    5. Рядом с Отправить как щелкните символ плюса (+).

    6. Выберите выделенного пользователя и нажмите добавить->
      .

    7. Нажмите OK .

    8. Прокрутите вниз до Полный доступ и щелкните символ плюса (+).

    9. Выберите выделенного пользователя и нажмите добавить->.

    10. Нажмите OK .

    11. Нажмите на кнопку Сохранить .

    12. Повторите шаги 3-11 для каждой комнаты.

    13. Перейдите к следующему разделу, чтобы разрешить выделенному пользователю редактировать календари Zoom Rooms.

    Разрешить выделенному пользователю редактировать календари Zoom Rooms
    1. Войдите на портал https://login.microsoftonline.com, используя выделенный адрес электронной почты пользователя (например, [email protected]).
    2. Откройте «Календарь» выделенного пользователя и в верхнем меню навигации щелкните имя выделенного пользователя, чтобы открыть раскрывающееся меню.
    3. Выберите "Открыть другой почтовый ящик..."

      Откроется всплывающее диалоговое окно Microsoft.
    4. Введите имя созданного ресурса календаря.
      Это откроет почтовый ящик ресурса календаря.
    5. Щелкните календарь в левом нижнем углу панели навигации, чтобы перейти к ресурсу календаря.
    6. Щелкните правой кнопкой мыши Календарь в разделе «Мои календари» и выберите Разрешения на общий доступ .
      Откроется диалоговое окно Поделиться этим календарем: календарь .
    7. Введите адрес электронной почты выделенного пользователя, выберите Может редактировать из меню и нажмите Поделиться .
    8. Откройте выделенный почтовый ящик пользователя и примите приглашение от ресурса календаря.
      Откроется вкладка Календарь.
    9. Убедитесь, что вы видите ресурс календаря Zoom Room в списке слева в разделе Другие календари > Пользовательские календари .
    10. Перейдите к следующему разделу, чтобы обновить настройки ресурса календаря с помощью PowerShell.

    Как обновить параметры ресурсов календаря с помощью Windows PowerShell

    Чтобы платформа Zoom отображала информацию календаря и генерировала ссылку для присоединения к собраниям Zoom, необходимо обновить настройки ресурса календаря.

    1. Запустите Windows PowerShell с параметром «Запуск от имени администратора».
      Этот параметр доступен, если щелкнуть правой кнопкой мыши приложение Windows PowerShell, не запуская его.
    2. Введите следующую команду:
       Connect-ExchangeOnline -UserPrincipalName  
      Примечание : измените на имя пользователя администратора Office 365. Убедитесь, что у этой учетной записи есть разрешения «Управление организацией» и «Управление аудиторией».
    3. Подготовьте сеанс, выполнив следующую команду:
       Connect-ExchangeOnline -ExchangeEnvironmentName O365Default -ConnectionUri https://outlook.office365.com/powershell-liveid/ 
    4. Проверьте настройки ресурса календаря, введя команду ниже. Измените значение «room_name» на фактическое значение имени комнаты:
       Get-CalendarProcessing -Identity «room_name» | Идентификация списка форматов, DeleteComments, DeleteSubject, AddOrganizerToSubject, RemovePrivateProperty, DeleteAttachments 
    5. Проверьте ответы для следующих значений:
      "DeleteSubject", "AddOrganizerToSubject", "DeleteComments", "RemovePrivateProperty" и "DeleteAttachments"
      В большинстве случаев для этих значений установлено значение "True".
       Идентификация: portertest.com/Users/room_name 
      DeleteSubject: True
      AddOrganizerToSubject: True
      DeleteComments: True
      RemovePrivateProperty: True
      DeleteAttachments: True
    6. Измените настройки помещения с помощью следующей команды. Измените значение «room_name» на фактическое значение имени комнаты.
       Set-CalendarProcessing -Identity "room_name" -AddOrganizerToSubject $ false -OrganizerInfo $ true -DeleteAttachments $ true -DeleteComments $ false -DeleteSubject $ false -RemovePrivateProperty $ false 
      После выполнения этих команд будут настроены следующие параметры: portertest
      .com / Users / room_name 
      DeleteSubject: False
      AddOrganizerToSubject: False
      DeleteComments: False
      RemovePrivateProperty: False
      Note:
      • Если вы не хотите отображать тему календаря, измените «Delete «Subject $ false» на «Delete «Subject $ false» истинный".
      • Если вы видите ошибку типа "Операция не может быть выполнена, так как объект "Комната" не найден на сервере zoomwithus.onmicrosoft.com", это означает, что область действия группы ролей для предоставления разрешений командлету не включить "пользователя/"комнату".Убедитесь, что вы вошли в систему с учетной записью администратора, как это требуется на шаге 3.
      • Если вы видите ошибку, такую ​​как «Set-CalendarProcessing» not found», убедитесь, что учетная запись администратора, используемая для входа в PowerShell, имеет разрешения «Управление организацией» и «Управление аудиторией».
    7. Проверьте настройки помещения с помощью следующей команды. Измените значение «room_name» на фактическое значение имени комнаты.
       Get-CalendarProcessing -Identity "room_name" | Идентификация Format-List, deletesubject, addorganizertosubject, DeleteComments, RemovePrivateProperty 
    8. Убедитесь, что ответы для следующих значений изменены на «False»:
      «DeleteSubject», «AddOrganizerToSubject», «DeleteComments» и «RemovePrivatePropoerty».
       Идентификация: portertest.com/Users/room_name 
      DeleteSubject: False
      AddOrganizerToSubject: False
      DeleteComments: False
      RemovePrivateProperty: False
    9. Повторить шагов 4-8 для каждого календаря, изменяя имя комнаты в каждой команде.
    10. Отключите сеанс с помощью следующей команды:
       Disconnect-ExchangeOnline 
    11. Выйдите из Windows PowerShell.

    Как добавить службу календаря на платформу Zoom

    1. Войдите на веб-портал Zoom в качестве администратора Zoom Rooms.
    2. Выберите Интеграция календаря , а затем нажмите Добавить службу календаря .
      Появится диалоговое окно Добавить службу календаря .
    3. Нажмите Office 365 .
    4. Выберите вариант Авторизация с помощью EWS или Авторизация с OAuth 2.0 . Если вы хотите узнать больше об этих параметрах, см. эту документацию Microsoft.
      • При выборе Авторизация с помощью EWS введите адрес электронной почты и пароль выделенного пользователя службы календаря, а также URL-адрес EWS .
      • Если выбрать Авторизация с OAuth 2.0 , введите URL-адрес EWS .
    5. В записи Тип разрешения учетной записи выберите Персонификация уровня приложения или Полный делегированный доступ в зависимости от конфигурации разрешений, использованной выше.
    6. Нажмите Авторизация .
      Примечание . При использовании OAuth 2.0 и отключении пользователи Office 365 могут разрешить корпоративным приложениям доступ к корпоративным данным от их имени в настройках учетной записи , этот параметр необходимо включить в настройках или включить для Приложение Zoom в Azure.
    7. На странице интеграции с календарем отображается служба календаря, добавленная в данный момент.

    Примечание: см. статью Добавление Zoom Room для получения дополнительной информации о настройке ресурса календаря из Zoom Room.

    .

    PowerShell => удаленное взаимодействие Powershell

    Замечания

    Включить удаленное взаимодействие PowerShell

    Переадресация PowerShell должна быть сначала включена на сервере, к которому вы хотите подключиться удаленно.

      Включить-PSRemoting-Force  

    Эта команда выполняет следующие действия:

    • Запускает командлет Set-WSManQuickConfig, который выполняет следующие задачи:
    • Запускает службу WinRM.
    • Устанавливает тип запуска в службе WinRM на автоматический.
    • Создает прослушиватель для приема запросов на любой IP-адрес, если он еще не существует.
    • Включает исключение брандмауэра для связи WS-Management.
    • Записывает конфигурации сеансов Microsoft.PowerShell и Microsoft.PowerShell.Workflow, если они еще не зарегистрированы.
    • Регистрирует конфигурацию сеанса Microsoft.PowerShell32 на 64-разрядных компьютерах, если она еще не зарегистрирована.
    • Разрешает все конфигурации сеанса.
    • Изменяет дескриптор безопасности всех конфигураций сеанса, чтобы разрешить удаленный доступ.
    • Перезапускает службу WinRM, чтобы применить вышеуказанные изменения.

    Только в средах, отличных от домена

    Для серверов в домене AD удаленная аутентификация PS выполняется через Kerberos ("по умолчанию") или NTLM ("согласование"). Если вы хотите разрешить удаленную миграцию на сервер вне домена, у вас есть два варианта.

    Настройте связь WSMan через HTTPS (для чего требуется создание сертификата) или включите обычную аутентификацию, которая отправляет ваши учетные данные в проводной кодировке base64 (в основном это то же самое, что и обычный текст, поэтому будьте осторожны).

    В обоих случаях необходимо добавить удаленные системы в список доверенных узлов WSMan.

    Включить обычную аутентификацию

      Set-Item WSMan: \ localhost \ Service \ AllowUnencrypted $ true  

    Затем на компьютере, к которому вы хотите подключиться к , вы должны сказать, что доверяете компьютеру, к которому подключаетесь .

      Set-Item WSMan: \ localhost \ Client \ TrustedHosts '192.168.1.1,192.168.1.2'  
      Set-Item WSMan: \ localhost \ Client \ TrustedHosts * .contoso.com  
      Set-Item WSMan: \ localhost \ Client \ TrustedHosts *  

    Важно : вы должны указать клиенту доверять компьютеру, с которым вы хотите подключиться (например, если вы подключаетесь через IP, он должен доверять IP-адресу, а не имени хоста)

    Подключитесь к удаленному серверу, используя PowerShell

    Использование учетных данных локального компьютера:

      Enter-PSSession 192.168.1.1  

    Запрос учетных данных на удаленном компьютере

      Enter-PSSession 192.168.1.1 -Credential $ (Get-Credential)  

    Запуск команд на удаленном компьютере

    При включенной удаленной оболочке PowerShell (Enable-PSRemoting) Вы можете запускать команды на удаленном компьютере следующим образом:

      Invoke-Command -ComputerName "RemoteComputerName" -ScriptBlock { Напишите хост «Имя удаленного компьютера: $ ENV: ComputerName» }  

    Приведенный выше метод создает временный сеанс и закрывает его, как только команда или сценарий завершаются.

    Чтобы оставить сеанс открытым и выполнить в нем другую команду, необходимо сначала создать удаленный сеанс:

      $ Session = New-PSSession -ComputerName "RemoteComputerName"  

    Затем вы можете использовать этот сеанс всякий раз, когда вы выполняете команды на удаленном компьютере:

      Invoke-Command -Session $ Session -ScriptBlock { Напишите хост «Имя удаленного компьютера: $ ENV: ComputerName» } Invoke-Command -Session $ Session -ScriptBlock { Get-Date }  

    Если вы хотите использовать разные учетные данные, вы можете добавить их с помощью параметра -Credential :

      $ Cred = Get-Credential Invoke-Command -Session $ Session -Credential $ Cred -ScriptBlock {...}  

    Предупреждение об удаленной сериализации

    Примечание:

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

      $ output = Invoke-Command -Session $ Session -ScriptBlock { Get-WmiObject -Класс win32_printer } $ вывод | Метод Get-Member-MemberType Имя типа: десериализованный.System.Management.ManagementObject # root\cimv2\Win32_Printer Имя MemberType Определение ---- ---------- ---------- GetType Тип метода GetType() ToString Метод string ToString(), string ToString (строковый формат, System.IFormatProvi...  

    Хотя у вас есть методы для обычного объекта PS:

      Get-WmiObject -Class win32_printer | Метод Get-Member-MemberType Имя Типа: System.Management.ManagementObject # root\cimv2\Win32_Printer Имя MemberType Определение ---- ---------- ---------- Система методов CancelAllJobs.Management.ManagementBaseObject CancelAllJobs () Метод GetSecurityDescriptor System.Management.ManagementBaseObject GetSecurityDescriptor() Метод Pause System.Management.ManagementBaseObject Pause () Метод PrintTestPage System.Management.ManagementBaseObject PrintTestPage () Метод RenamePrinter System.Management.ManagementBaseObject RenamePrinter (System.String NewPrinterName) Метод сброса System.Management.ManagementBaseObject Reset () Метод возобновления System.Management.ManagementBaseObject Resume () Система методов SetDefaultPrinter.Management.ManagementBaseObject SetDefaultPrinter () Метод SetPowerState System.Management.ManagementBaseObject SetPowerState (System.UInt16 PowerState, System.String Time) Метод SetSecurityDescriptor System.Management.ManagementBaseObject SetSecurityDescriptor (System.Management.ManagementObject # Win32_SecurityDescriptor Descriptor)  

    Использование аргумента

    Чтобы использовать аргументы в качестве параметров для удаленного блока сценария, вы можете использовать параметр ArgumentList Invoke-Command или использовать синтаксис $ Using: :.

    Использование ArgumentList с неназванными параметрами (т.е. в порядке их передачи в блок сценария):

      $ servicesToShow = "service1" $fileName = "C:\temp\servicestatus.csv" Invoke-Command -Session $ session -ArgumentList $ servicesToShow, $ fileName -ScriptBlock { Write-Host «Удаленный вызов блока сценария с помощью $ ($ Args.Count)» Get-Service -Name $ args [0] Remove-Item -Path $ args [1] -ErrorAction SilentlyContinue -Force }  

    Использование ArgumentList с именованными параметрами:

      $ servicesToShow = "service1" $fileName = "C:\temp\servicestatus.CSV " Invoke-Command -Session $ session -ArgumentList $ servicesToShow, $ fileName -ScriptBlock { Параметр ($ serviceToShowInRemoteSession, $ fileToDelete) Write-Host «Удаленный вызов блока сценария с помощью $ ($ Args.Count)» Get-Service -Name $ serviceToShowInRemoteSession Remove-Item -Path $ fileToDelete -ErrorAction SilentlyContinue -Force }  

    Использование $ Использование: синтаксис:

      $ servicesToShow = "service1" $fileName = "C:\temp\servicestatus.csv" Invoke-Command -Session $ session -ScriptBlock { Get-Service $ Использование: servicesToShow Remove-Item -Path $ fileName -ErrorAction SilentlyContinue -Force }  

    Рекомендации по автоматическому удалению сеансов PSS

    Когда удаленный сеанс создается с помощью командлета New-PSsession New-PSsession , PSSession продолжается до завершения текущего сеанса PowerShell.Это означает, что по умолчанию PSSession и все связанные ресурсы будут использоваться до завершения текущего сеанса PowerShell.

    Несколько активных PSSessions могут стать нагрузкой на ресурсы, особенно для длительных или связанных сценариев, которые создают сотни PSSessions в одном сеансе PowerShell.

    Лучше всего явно удалять каждую PSSession после ее завершения. [1]

    Следующий шаблон кода использует try-catch-finally для достижения вышеуказанного, сочетая обработку ошибок с безопасным способом убедиться, что все созданных PSSessions удаляются после завершения их использования:

      try { $ session = New-PSsession -Computername "RemoteMachineName" Invoke-Command -Session $ session -ScriptBlock {write-host "Это работает на $ ENV: ComputerName"} } ловить { Запись-вывод "ОШИБКА: $_" } наконец { если ($ сессия) { Сеанс Remove-PSSession $ } }  

    Ссылки: [1] https: // msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/new-pssession

    .

    Смотрите также

    Только новые статьи

    Введите свой e-mail

    Видео-курс

    Blender для новичков

    Ваше имя:Ваш E-Mail: