Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление служб по маске

Ответить
Настройки темы
CMD/BAT - [решено] Удаление служб по маске

Пользователь


Сообщения: 136
Благодарности: 1

Профиль | Отправить PM | Цитировать


Здравствуйте.

Просьба помочь в написании скрипта по удалению служб по маске.
Например, есть список служб типа: service_1, service_2 и т.д.
Необходимо удалить все службы с именем service_*

Отправлено: 14:00, 03-12-2019

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Powershell, должно работать:
Код: Выделить весь код
(get-service service_*).name.foreach({sc.exe delete $_})

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 03-12-2019 в 15:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:05, 03-12-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


опять нет виндовой машины под рукой, но на пошике это делается +- ванлайном
Код: Выделить весь код
Get-Service "service_*" | Remove-Service
насчет маски не уверен т.к. пишу по памяти
Однако должен отметить что удаление служб вижу весьма сомнительным действием.

Отправлено: 15:11, 03-12-2019 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Elven, Remove-Service появился только в Powershell v.6.

А был бы в общеупотребительных версиях, наверное, можно было бы так:
Код: Выделить весь код
Remove-Service "service_*"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 15:13, 03-12-2019 | #4


Пользователь


Сообщения: 136
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Powershell, должно работать: »
Не работает.
Код: Выделить весь код
Нельзя вызвать метод для выражения со значением NULL.
строка:1 знак:40
+ (get-service AmmyyAdmin_*).name.foreach <<<< ({sc.exe delete $_})
    + CategoryInfo          : InvalidOperation: (foreach:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
Цитата Elven:
Get-Service "service_*" | Remove-Service »
Тоже не работает
Код: Выделить весь код
Нельзя вызвать метод для выражения со значением NULL.
строка:1 знак:40
+ (get-service service_*).name.foreach <<<< ({cmd.exe /c "sc delete $_"})
    + CategoryInfo          : InvalidOperation: (foreach:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
Возможно маска неправильная, в имени службы вместо звёздочки может быть от 4 до 6 символов

Последний раз редактировалось kirillius, 03-12-2019 в 15:40.


Отправлено: 15:27, 03-12-2019 | #5


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


kirillius,
Цитата DJ Mogarych:
Remove-Service появился только в Powershell v.6. »
У вас какая версия powershell?

Команда
Код: Выделить весь код
$psversiontable
Можно вот так попробовать, если версия старая:
Код: Выделить весь код
(get-service service_*).name |foreach {sc.exe delete $_}
Цитата kirillius:
Нельзя вызвать метод для выражения со значением NULL. »
Вы уверены, что у вас существуют службы с именами service_*? Что показывает
Код: Выделить весь код
get-service service_*
?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 03-12-2019 в 15:44.


Отправлено: 15:36, 03-12-2019 | #6


Пользователь


Сообщения: 136
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
$psversiontable »
Код: Выделить весь код
CLRVersion                     2.0.50727.8806
BuildVersion                   6.1.7601.17514
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

Отправлено: 15:42, 03-12-2019 | #7


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Да, это очень старая версия.

Так работает?
Код: Выделить весь код
(get-service service_*).name |foreach {sc.exe delete $_}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 16:43, 03-12-2019 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


DJ Mogarych, а Wbem — Win32_Service → .Delete() (мне пробовать не на чем — нет «лишних» служб), не?!

Цитата kirillius:
Не работает. »
Метод .foreach() появился позже версии 2.0, которая у Вас (можете смело обновиться как минимум до версии 5.1, если у Вас Windows 7/Server 2008 R2 и выше).

Отправлено: 17:41, 03-12-2019 | #9


Пользователь


Сообщения: 136
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Так работает? »
Нет, не получилось
Код: Выделить весь код
Описание:
        Удаление записи службы из реестра.
        Если служба запущена либо для нее открыт дескриптор
        другим процессом, эта служба будет помечена
        для удаления.
Использование:
        sc <сервер> delete [имя службы]
Цитата DJ Mogarych:
get-service service_* »
Ну "service_*" я привёл для примера. Если подставить то что реально нужно, выводит список служб по маске.
При проверке скрипта я разумеется меняю всё на то как нужно.

Отправлено: 16:00, 05-12-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление служб по маске

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Удаление каталогов по маске. mishgan2004 Скриптовые языки администрирования Windows 4 20-07-2017 14:00
CMD/BAT - Удаление по маске X.509 Скриптовые языки администрирования Windows 13 06-05-2014 00:24
CMD/BAT - Удаление файлов по маске IlyaBarkov Скриптовые языки администрирования Windows 6 15-10-2013 05:03
CMD/BAT - Удаление скрытых папок по маске chatlaninsan Скриптовые языки администрирования Windows 5 07-09-2009 17:22




 
Переход