より複雑であるが、純粋なバッチソリューション(Windows 8の中でここで働く)
あなたはyour_name.bat
ファイルとして保存いくつかのデフォルト値
@echo off
rem get arguments: these will be flushed to log file
set "action=%*"
rem log file name
set "logFile=%~dpn0.log"
rem check for delete keyword.
if /i "%~1" EQU "delete" (
call:deleteScripts && exit/B 0 || (echo/ Scripts deleted: Failed & exit/B 1)
) else (
call:testScripts || (echo/ Scripts created: Failed & exit/B 1)
)
rem language independent time
for /f "tokens=2 delims==" %%a in ('wmic os get localdatetime /value') do set "Tm=%%a"
set "timeStamp=%Tm:~0,4%-%Tm:~4,2%-%Tm:~6,2% %Tm:~8,2%:%Tm:~10,2%:%Tm:~12,2%"
if not exist "%logFile%" (
(
echo/----------------------------------------------------------------------------
echo/----------------------------------------------------------------------------
echo/
echo/Log registry [%~dpnx0]
echo/
)
)>>"%logFile%"
echo(%timeStamp% %action%>>"%logFile%"
exit/B
rem delete registry keys.
:deleteScripts
set "baseKey=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts"
set "machKey=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts"
reg delete "%baseKey%\Startup\0" /F >NUL 2>&1
reg delete "%machKey%\Startup\0" /F >NUL 2>&1
reg delete "%baseKey%\Shutdown\0" /F >NUL 2>&1
reg delete "%machKey%\Shutdown\0" /F >NUL 2>&1
echo/ Scripts deleted: Success
exit/B 0
rem check registry keys. if they don't exist create them
:testScripts
set/a msg=0
set "baseKey=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts"
set "machKey=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts"
reg query "%baseKey%\Startup\0">NUL 2>&1 || (call:createScript "Startup" || exit/B 1)
reg query "%machKey%\Startup\0">NUL 2>&1 || (call:createScript "Startup" || exit/B 1)
reg query "%baseKey%\Shutdown\0">NUL 2>&1 || (call:createScript "Shutdown" || exit/B 1)
reg query "%machKey%\Shutdown\0">NUL 2>&1 || (call:createScript "Shutdown" || exit/B 1)
if %msg% equ 1 echo/ Scripts created: Success
exit/B 0
:createScript
set/a msg=1
setlocal
set "scriptKey=%~1"
set "logMessage=Computer %%COMPUTERNAME%% [%~1]"
rem needed for creating registry keys
set "scriptName=%~dpnx0"
rem English users
set "GP_Name=Local group policy" & rem set "GP_Name=Local Computer policy"
rem Spanish users
rem set "GP_Name=Directiva de grupo local" & rem set "GP_Name=Directiva Equipo local"
reg add "%baseKey%\%scriptKey%\0" /V "GPO-ID" /T REG_SZ /D "LocalGPO" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%baseKey%\%scriptKey%\0" /V "SOM-ID" /T REG_SZ /D "Local" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%baseKey%\%scriptKey%\0" /V "FileSysPath" /T REG_SZ /D "C:\\Windows\\System32\\GroupPolicy\\Machine" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%baseKey%\%scriptKey%\0" /V "DisplayName" /T REG_SZ /D "%GP_Name%" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%baseKey%\%scriptKey%\0" /V "GPOName" /T REG_SZ /D "%GP_Name%" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%baseKey%\%scriptKey%\0" /V "PSScriptOrder" /T REG_DWORD /D "00000001" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%baseKey%\%scriptKey%\0\0" /V "Script" /T REG_SZ /D "%scriptName:\=\\%" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%baseKey%\%scriptKey%\0\0" /V "Parameters" /T REG_SZ /D "%logMessage%" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%baseKey%\%scriptKey%\0\0" /V "IsPowershell" /T REG_DWORD /D "00000000" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%baseKey%\%scriptKey%\0\0" /V "ExecTime" /T REG_BINARY /D "00000000000000000000000000000000" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%machKey%\%scriptKey%\0" /V "GPO-ID" /T REG_SZ /D "LocalGPO" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%machKey%\%scriptKey%\0" /V "SOM-ID" /T REG_SZ /D "Local" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%machKey%\%scriptKey%\0" /V "FileSysPath" /T REG_SZ /D "C:\\Windows\\System32\\GroupPolicy\\Machine" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%machKey%\%scriptKey%\0" /V "DisplayName" /T REG_SZ /D "%GP_Name%" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%machKey%\%scriptKey%\0" /V "GPOName" /T REG_SZ /D "%GP_Name%" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%machKey%\%scriptKey%\0" /V "PSScriptOrder" /T REG_DWORD /D "00000001" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%machKey%\%scriptKey%\0\0" /V "Script" /T REG_SZ /D "%scriptName:\=\\%" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%machKey%\%scriptKey%\0\0" /V "Parameters" /T REG_SZ /D "%logMessage%" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%machKey%\%scriptKey%\0\0" /V "ErrorCode" /T REG_DWORD /D "00000000" /F >NUL 2>&1 || (EndLocal & exit/B 1)
reg add "%machKey%\%scriptKey%\0\0" /V "ExecTime" /T REG_BINARY /D "00000000000000000000000000000000" /F >NUL 2>&1 || (EndLocal & exit/B 1)
EndLocal
exit/B 0
を編集して、一度に実行する必要があるかもしれません引数なし。 Local policy group
にstarting and shutting down scripts
が作成されます。 your_name.bat delete
を実行してスクリプトを削除することができます。
スクリプトの開始および/またはシャットダウンが既に設定されている場合は、それらが上書きされる可能性があることに注意してください。
あなたはgpedit.msc
を開くことができるなら、これはあなたがセットアップスクリプトを持っていたら、あなたはので、すべてif /i "%~1 ...
セクションを削除し、all the subroutines
でき
あなたのケースではありませんexecute registry operations
が、 に管理者権限が必要スクリプトは簡単です。
これらのスクリプトはどこで編集しましたか?右側のセクションはWindowsの設定>スクリプト>シャットダウン/スタートアップです – Steven
gpedit.msc-> start/shutdownに追加しました – user6746473
'windows settings/scripts'が見つかりません – user6746473