Я пытаюсь убить NlaSvc, чтобы заставить домен повторно подключаться без перезагрузки или прерывания сети.Как настроить PID, который продолжает меняться?
Я могу сделать это с taskkill/F/IM 8076 (или любым другим), но PID всегда меняется. Этот процесс, к сожалению, находится под svchost.exe, я не хочу это заканчивать ...
Как перезапустить NlaSvc без перезагрузки, отсоединения адаптера и т. Д. Taskkill работает, но только если я знаю, PID раньше времени.
Любые идеи?
ОБНОВЛЕНИЕ Спасибо за решение! Мне нужно было добавить два %%, чтобы заставить его работать по какой-то причине. Ниже приведена полная летучая мышь, она поднимает uac, а затем запускает то, что мне нужно.
:::::::::::::::::::::::::::::::::::::::::
:: Automatically check & get admin rights
:::::::::::::::::::::::::::::::::::::::::
@echo off
CLS
ECHO.
ECHO =============================
ECHO Running Admin shell
ECHO =============================
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges)
:getPrivileges
if '%1'=='ELEV' (shift & goto gotPrivileges)
ECHO.
ECHO **************************************
ECHO Invoking UAC for Privilege Escalation
ECHO **************************************
setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp% \OEgetPrivileges.vbs"
ECHO UAC.ShellExecute "!batchPath!", "ELEV", "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs"
"%temp%\OEgetPrivileges.vbs"
exit /B
:gotPrivileges
::::::::::::::::::::::::::::
::START
::::::::::::::::::::::::::::
setlocal & pushd .
cmd /c FOR /F "usebackq tokens=2 skip=3" %%i IN (`tasklist /fi "services eq NlaSvc"`) DO taskkill /F /PID %%i&net start NlaSvc
фиксированной. потребовалось два %%, и ему пришлось перейти на cmd/c, чтобы добавить чистый старт. Теперь он отлично работает! –