4

ほとんどの初心者のコンピューターユーザーは、問題が発生したときに困惑し、コンピューターをセーフモードで再起動する必要があります。では、これをスクリプト化して自動化するにはどうすればよいでしょうか。

4

2 に答える 2

4

これは、Windows XP、Vista、またはWindows7コンピューターをセーフモードで再起動するバッチスクリプトです。

Echo Off

REM Check Windows Version
ver | findstr /i "5\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "6\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
goto warn_and_exit

:ver_nt5x
:Run Windows 2000/XP specific commands here
bootcfg /raw /a /safeboot:network /id 1
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
SHUTDOWN -r -f -t 07
goto end

:ver_nt6x
:Run Windows Vista/7 specific commands here
bcdedit /set {current} safeboot network
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 07
goto end

Echo On

:warn_and_exit
echo Machine OS cannot be determined.

:end 

このスクリプトは、もともとChunkDogによってhttps://forum.ultravnc.net/viewtopic.php?f=50&t=29663に投稿されました。

私はそれを変更し、ユーザーにセーフモードで再起動するかどうかを尋ねるvbscriptを追加し、ユーザーの入力に基づいてバッチファイルを呼び出します。

Dim oShell, returnCode
Set objShell = CreateObject("Shell.Application")
Set oShell = WScript.CreateObject("WScript.Shell")

returnCode = oShell.Popup("Do you want to restart your computer in Safe Mode", 0, "Restart In Safe Mode", 4 + 48 + 256)

Select Case returnCode
case 6, -1
    objShell.ShellExecute "tryout.bat", "", "", "runas", 0
    case 7
    oShell.popup "Operation Canceled", 0, "Restart In Safe Mode", 0 + 64 + 0
End Select

これは、Windows8ではまだテストされていません。

于 2012-12-20T16:00:06.590 に答える
0

管理者としてcmdを開き、これらのパラメーター「bcdedit / set{current}safebootnetwork」を指定してbsdeditを実行します。

于 2015-06-24T20:57:17.690 に答える