Windows не может удалить файлы сразу после удаления службы - PullRequest
0 голосов
/ 28 сентября 2018

Я удаляю службу Windows с sc.exe delete <serviceName>.

Сразу после этого я удаляю файлы, принадлежащие службе ( exe и пару dlls ) и я не могу, потому что эти файлы все еще заблокированы.

Я обнаружил, что это работает, если я выполняю сон в течение 3 секунд (мне интересно, что Windows делает в течение 3 секунд!) Между службойудалить и удалить файлы.

Есть ли более элегантное и безопасное решение?

Возможно, бесполезные детали: я запускаю это с Inno Setup на Jenkins на Windows 7

1 Ответ

0 голосов
/ 28 сентября 2018

Первоначально вы можете убить процесс (ы) этих служб, чтобы высвободить ресурсы, которые у него есть, набрав эти команды;

> $ServicePID = (get-wmiobject win32_service | where { $_.name -eq 'service name'}).processID
> Stop-Process $ServicePID -Force

Затем вы можете удалить эту службу, набрав, как вы можете указать:

> sc.exe delete <serviceName>
...