Estou usando um script para escalar para direitos de administrador (porque desejo desativar a proteção contra gravação na unidade c: usando ewfmgr
). O script funciona bem quase todas as vezes. Mas às vezes, depois de executar o script, recebo uma tela azul como abaixo:
Meuscript:
::::::::::::::::::::::::::::::::::::::::::::@echooffCLSECHO.REMECHO=============================REMECHORunningAdminshellREMECHO=============================:initsetlocalDisableDelayedExpansionsetcmdInvoke=0setwinSysFolder=System32set"batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
ECHO.
REM ECHO **************************************
REM ECHO Invoking UAC for Privilege Escalation
REM ECHO **************************************
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
ECHO Next >> "%vbsGetPrivileges%"
if '%cmdInvoke%'=='1' goto InvokeCmd
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
goto ExecElevation
:InvokeCmd
ECHO args = "/c """ + "!batchPath!" + """ " + args >> "%vbsGetPrivileges%"
ECHO UAC.ShellExecute "%SystemRoot%\%winSysFolder%\cmd.exe", args, "", "runas", 1 >> "%vbsGetPrivileges%"
:ExecElevation
"%SystemRoot%\%winSysFolder%\WScript.exe" "%vbsGetPrivileges%" %*
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
REM Newly Added Code
@echo off
if "%ProgramFiles(x86)%" == "" goto MainCode
if not exist %SystemRoot%\Sysnative\cmd.exe goto MainCode
%SystemRoot%\Sysnative\cmd.exe /C "%~f0" %*
goto :EOF
:MainCode
ewfmgr c: -commitanddisable -live
Meu script pode ser um culpado por trás desse problema de tela azul?
UPDATE-1: SO: Windows Embedded Standard. ewfmgr
é uma ferramenta de proteção contra gravação. Basicamente, com a ajuda do script acima, estou desabilitando a proteção contra gravação na unidade C :.