Windows 10: nascondere Arresta il sistema, Riavvia il sistema, Disconnetti

| |

Ma che titolo del piffero! Hai ragione, eppure credo che renda perfettamente l’idea. Ma ciao, bentrovato! Hai visto? Ogni tanto mi faccio vivo. Sì, ho una marea di contenuti in bozze che devo ancora finire e non so se finirò mai, rilassati e goditi questi appunti di oggi. Sono dedicati esattamente a ciò che ho scritto nel titolo: far sparire la voce che permette all’utente di arrestare il sistema, riavviarlo o disconnettere il proprio utente. Ho scritto un batch semplicissimo.

Windows notebook on brown wooden table

Perché?

La domanda è “perché no?“. Nel senso: ci possono essere tanti buoni motivi per farlo. Nel mio caso si trattava di far sparire quelle voci agli occhi delle persone che usano una serie di macchine Windows 10 virtuali perché sui loro macOS non possono fare determinate operazioni. Sia chiaro: nulla che non si possa fare ugualmente con un minimo di conoscenza e un prompt dei comandi, lo so bene, ma lo scopo non è quello di inibire in sé l’operazione quanto di evitare che un clic distratto possa spegnere una macchina sul Data Center e causare una chiamata all’assistenza di primo livello che non dovrà fare altro che riaccenderla. Una scocciatura che puoi provare ad aggirare tu stesso, facilmente, ammesso tu abbia almeno Windows 10 1809 (ci sono metodi per farlo anche con le versioni precedenti, ma non ho approfondito perché non ne avevo la necessità).

Come?

Presto detto: tramite Registro di Sistema. Per la precisione con una chiave di registro che ne racchiude diverse altre, per modellare il funzionamento del menu di Start in base alle esigenze dell’utente finale: HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start. Sotto questa chiave, troverai diverse sottochiavi che interessano certamente l’arresto del sistema, ma anche altre voci che ho volutamente ignorato perché fuori dallo scopo prefisso (e da questo articolo). Ti basterà dare una sbirciata per scoprire di cosa sto parlando.

Nel frattempo, parliamo di batch. Ne ho scritto uno che – una volta avviato – ti permetterà di scegliere se nascondere o mostrare il pulsante per arrestare il sistema, riavviarlo o disconnettere l’utente connesso alla macchina. Ti basterà specificare che opzione vuoi applicare e lo script penserà al resto. Se il pulsante interessato è attualmente visibile nel sistema, verrà fatto scomparire, diversamente verrà fatto ricomparire. Ho pubblicato il codice dello script su GitHub, è questo qui:


@echo off
:: Windows 10 Start Options Disable
:: https://gioxx.org/tag/StartOptionDisable
:: GSolone 2021 (ult.mod. 15112021-rev5)
:: Check Windows Version
for /f "tokens=4,5,6 delims=[]. " %%G in ('ver') Do (set _major=%%G& set _minor=%%H& set _build=%%I)
if '%_major%' NEQ '10' (
echo Windows 10 non rilevato, premi un tasto per terminare lo script.
pause > NUL
goto END
) else (
echo Windows 10 rilevato.
echo Major Version: [%_major%]
echo Minor Version: [%_minor%]
echo Build: [%_build%]
if %_build% LEQ 17134 (
echo La versione minima di compatibilità con lo script è Windows 10 1809.
echo Rilevata versione inferiore, premi un tasto per terminare lo script.
pause > NUL
goto END
)
)
:: BatchGotAdmin
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo Richiedo utente amministratore …
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:: Menu Deactivator
:gotAdmin
cls
echo Microsoft Windows 10 (1809+) Options Deactivator
echo.
:menu
echo 1 – Hide/Restore Shutdown.
echo 2 – Hide/Restore Reboot.
echo 3 – Hide/Restore SignOut.
echo.
echo 4 – Exit from batch.
echo.
choice /C 1234 /M "Desired option:"
if errorlevel 4 goto END
if errorlevel 3 goto SignOut
if errorlevel 2 goto Reboot
if errorlevel 1 goto Shutdown
:Shutdown
echo.
echo Option Selected: Hide/Restore Shutdown
reg query "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown" /v value | find "0x0"
if %errorlevel% == 0 (
echo Hide Shutdown
REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown" /V value /T REG_DWORD /D 1 /F
) else (
echo Show Shutdown
REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown" /V value /T REG_DWORD /D 0 /F
)
echo.
goto menu
:Reboot
echo.
echo Option Selected: Hide/Restore Reboot
reg query "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideRestart" /v value | find "0x0"
if %errorlevel% == 0 (
echo Hide Reboot
REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideRestart" /V value /T REG_DWORD /D 1 /F
) else (
echo Show Reboot
REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideRestart" /V value /T REG_DWORD /D 0 /F
)
echo.
goto menu
:SignOut
echo.
echo Option Selected: Hide/Restore SignOut
reg query "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideSignOut" /v value | find "0x0"
if %errorlevel% == 0 (
echo Hide SignOut
REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideSignOut" /V value /T REG_DWORD /D 1 /F
) else (
echo Show SignOut
REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideSignOut" /V value /T REG_DWORD /D 0 /F
)
echo.
goto menu
:END

Per tua comodità metto a disposizione anche il batch già pronto da scaricare e usare: go.gioxx.org/win10disableshutdown. Ha necessità dei diritti di amministratore (locale o di dominio, poco importa), se li prenderà da solo (chiederà ovviamente a te tramite prompt UAC di farlo) nel caso si accorga di non averli.

In caso di dubbi amletici, suggerimenti o per farmi notare eventuali errori, l’area commenti è a tua totale disposizione, come sempre :-) (sì, quelli sono più facili da seguire rispetto allo scrivere nuovi articoli!).

#StaySafe


La foto nel corpo dell’articolo è di Piero Nigro.

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Inline Feedbacks
View all comments