Powershell 6.2 и Get-CimInstance для удаленной остановки / запуска / перезапуска сервисных проблем - PullRequest
0 голосов
/ 10 апреля 2019

Так что я сейчас на большом контрольно-пропускном пункте. Я работал в PowerShell 5.1, и класс Get-WmiObject с классом Win32_Service прекрасно работал для удаленной остановки / запуска / перезапуска служб. Однако я обнаружил, что метод .StopService() был удален в PowerShell 6 (который я использовал для обхода проблем с зависимостями, с которыми я продолжал работать). Кроме того, я обнаружил, что переменная -ComputerName также была удалена из множества различных командлетов.

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

Пытался быть настолько подробным, насколько смог. Я знаю, что упускаю что-то глупо маленькое, но все мои поиски в Google, кажется, возвращают все с PowerShell 5, но так мало на 6.

Спасибо.

1 Ответ

1 голос
/ 10 апреля 2019

Хорошо, не обращайте внимания на этот вопрос. Я решил подойти к поиску в Google по-другому и наткнулся на нужный мне синтаксис. Для тех, кто интересуется, вы не можете запускать команды прямо из возвращаемого объекта. Так, например, вы могли бы сделать «$ service.StopService ()» прямо на сервисе ранее. Однако теперь вам нужно вызвать этот метод StopService, выполнив «Invoke-CimMethod -Name StopService», и это только после того, как вы передадите ему возвращенный объект Get-CimInstance. Таким образом, полный синтаксис будет выглядеть примерно так:

get-ciminstance win32_service -filter "Name='spooler'" | Invoke-CimMethod -Name StartService

Действительно хороший сайт, который я нашел, чтобы объяснить и привести действительно хорошие примеры того, почему и как инстансы Cim такие, какие они есть.

https://4sysops.com/archives/managing-services-the-powershell-way-part-7

...