Войти

Показать полную графическую версию : [решено] Удаление служб по маске


Страниц : 1 [2]

Iska
10-12-2019, 12:28
а на самом деле просто потерян $ перед services
и этого бы не случилось, если бы не городили на пустом месте кучу переменных, а писали бы конвейером »
Да нет, это просто язык такой. Желание объять всё зараз вот к такому и приводит.

DJ Mogarych
10-12-2019, 13:20
скрипты надо писать однозначно »
Для этого надо нормально формулировать задачу.
И неплохо бы иметь любознательность хотя бы чтобы попробовать понять, что делает элементарный скрипт в две строки, я уж не говорю о том, чтобы попробовать самому попробовать их написать.

kirillius
10-12-2019, 13:24
$services = get-service service_*
foreach ($service in $services) {
write-verbose $service.name -Verbose
stop-service -InputObject $service
& sc.exe delete $service.name
} »
Получилось, спасибо!
А теперь это можно в некое подбие BAT-файла преобразовать, чтобы запуском в один клик вся эта процедура проделывалась? К сожалению с PowerShell не знаком совершенно...

Busla
10-12-2019, 17:15
kirillius,
Попробуйте так:
powershell.exe -Command { Stop-service service_* -PassThru | % { & sc.exe delete $_.name } }
не проверял, т.к. лишних служб у меня нет :-)

kirillius
13-12-2019, 10:56
Попробуйте так: »
Не сработало, выдало:

"%" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

DJ Mogarych
13-12-2019, 10:59
Busla, теперь ваша очередь демонстрации написания однозначных скриптов.

kirillius
13-12-2019, 13:17
Пока решил задачу так:

$services = get-service service_*
foreach ($service in $services) {
write-verbose $service.name -Verbose
stop-service -InputObject $service
& sc.exe delete $service.name
}

- Это поместил в файл .ps1, а в BAT прописал:

powershell "D:\Desktop\DelServices.ps1"

Busla
13-12-2019, 15:24
kirillius, для bat удобнее будет использовать wmi:
wmic.exe service where "name like 'service_%' and started = true" call stopservice
wmic.exe service where "name like 'service_%'" call delete

kirillius
13-12-2019, 15:51
wmic.exe service where "name like 'service_%' and started = true" call stopservice
wmic.exe service where "name like 'service_%'" call delete »

А так не работает - No Instance(s) Available.

Iska
13-12-2019, 16:54
А так не работает »
А так:
wmic.exe service where "name like 'service_%%' and started = true" call stopservice
wmic.exe service where "name like 'service_%%'" call delete »
?

kirillius
14-12-2019, 00:31
А так: »
Так работает! Благодарю!




© OSzone.net 2001-2012