@echo off
rem 管理者権限での実行確認
openfiles 2>&1
if not "%errorlevel%"=="0" (
  echo 必要な権限がありません。管理者として再実行してください。
  pause 
  exit
)
rem 実行確認
SET /P ANSWER="本batはESMPRO/ServerAgentServiceがインストールされている環境用のbatです。実行しますか？(y/n)？"
if /i {%ANSWER%}=={y} (goto :y)
rem y以外が入力された場合はbatを終了する
exit

:y
rem ServerManagerのインストールパスを取得
set SMPATH=""
FOR /F "TOKENS=1,2,*" %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\NEC\ESMPRO/SMSetup" /v "MainPath"') DO IF "%%A"=="MainPath" SET SMPATH=%%C
set SMPATH=%SMPATH:~0,-1%

:Stop_Service
echo ==========================================================================
echo  ESMPRO/ServerManagerに関するサービスを停止します。
echo        1) "DianaScope ModemAgent" 
echo        2) "ESMPRO/SM Web Container" 
echo        3) "ESMPRO/SM Event Manager" 
echo        4) "ESMPRO/SM Base AlertListener" 
echo        5) "ESMPRO/SM Common Component" 
echo        6) "ESM32BridgeService for AlertListener" 
echo        7) "ESM32BridgeService for NvAccessor" 
echo        8) "Alert Manager Socket(R) Service" 
echo        9) "ESMPRO/SM Base Service" 
echo        10) "Dmi Event Watcher" 
echo        11) "ESM Alert Service" 
echo        12) "ESM Command Service" 
echo        13) "ESM Remote Map Service" 
echo        14) "ESM Base Service" 
echo        15) "Alert Manager HTTPS Service" 
echo        16) "Alert Manager WMI Service"
echo ==========================================================================

net stop /y "DianaScope ModemAgent"
net stop /y "ESMPRO/SM Web Container"
net stop /y "ESMPRO/SM Event Manager"
net stop /y "ESMPRO/SM Base Alert Listener"
net stop /y "ESMPRO/SM Common Component"
net stop /y "ESM32BridgeService for AlertListener"
net stop /y "ESM32BridgeService for NvAccessor"
net stop /y "Alert Manager Socket(R) Service"
net stop /y "ESMPRO/SM Base Service"
net stop /y "Dmi Event Watcher"
net stop /y "ESM Alert Service"
net stop /y "ESM Command Service"
net stop /y "ESM Remote Map Service"
net stop /y "ESM Base Service"
net stop /y "Alert Manager HTTPS Service"
net stop /y "Alert Manager WMI Service"

echo ....finish

:reg_delete
:reg_delete_1
echo ==========================================================================
echo  ESMPRO/ServerManagerに関するWindowsOSのレジストリを削除します
echo ==========================================================================
rem バックアップファイルの保存先を設定
pushd "%~dp0"
set backupDir="backup"
mkdir %backupDir%

rem 各レジストリキーを個別のバックアップファイルにエクスポート
echo バックアップを作成中...

reg export "HKEY_CLASSES_ROOT\Installer\Features\AB6C6B314DF162B4E94101236168FF8D" "%backupDir%\Feature_AB6C6B314DF162B4E94101236168FF8D.reg" /y
reg export "HKEY_CLASSES_ROOT\Installer\Products\AB6C6B314DF162B4E94101236168FF8D" "%backupDir%\Product_AB6C6B314DF162B4E94101236168FF8D.reg" /y
reg export "HKEY_CLASSES_ROOT\Installer\UpgradeCodes\819E3F308EEA2C64EA1B6F0581391E45" "%backupDir%\UpgradeCode_819E3F308EEA2C64EA1B6F0581391E45.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Features\18A48B96E3600CB4F9EF37C8BF872697" "%backupDir%\Feature_18A48B96E3600CB4F9EF37C8BF872697.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Classes\Installer\Features\AB6C6B314DF162B4E94101236168FF8D" "%backupDir%\Feature_AB6C6B314DF162B4E94101236168FF8D_2.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Classes\Installer\Products\18A48B96E3600CB4F9EF37C8BF872697" "%backupDir%\Product_18A48B96E3600CB4F9EF37C8BF872697.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Classes\Installer\Products\AB6C6B314DF162B4E94101236168FF8D" "%backupDir%\Product_AB6C6B314DF162B4E94101236168FF8D_2.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Classes\Installer\UpgradeCodes\819E3F308EEA2C64EA1B6F0581391E45" "%backupDir%\UpgradeCode_819E3F308EEA2C64EA1B6F0581391E45_2.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\819E3F308EEA2C64EA1B6F0581391E45" "%backupDir%\Microsoft_UpgradeCode_819E3F308EEA2C64EA1B6F0581391E45.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\18A48B96E3600CB4F9EF37C8BF872697" "%backupDir%\UserData_18A48B96E3600CB4F9EF37C8BF872697.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\AB6C6B314DF162B4E94101236168FF8D" "%backupDir%\UserData_AB6C6B314DF162B4E94101236168FF8D.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{6342F89D-C2A1-480C-B76D-A9CDF25D1994}" "%backupDir%\Uninstall_6342F89D-C2A1-480C-B76D-A9CDF25D1994.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{69B84A81-063E-4BC0-9FFE-738CFB786279}" "%backupDir%\Uninstall_69B84A81-063E-4BC0-9FFE-738CFB786279.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield Uninstall Information\{69B84A81-063E-4BC0-9FFE-738CFB786279}" "%backupDir%\InstallShield_Uninstall_69B84A81-063E-4BC0-9FFE-738CFB786279.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_{13B6C6BA-1FD4-4B26-9E14-10321686FFD8}" "%backupDir%\InstallShield_{13B6C6BA-1FD4-4B26-9E14-10321686FFD8}.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\IS_ESMPRO_SM" "%backupDir%\IS_ESMPRO_SM.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\NEC\ESMPRO/SMSetup" "%backupDir%\ESMPRO_SMSetup.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\NEC\ESMSM" "%backupDir%\ESMSM.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\NEC\ESMWEB" "%backupDir%\ESMWEB.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\NEC\NBINSTALL" "%backupDir%\NBINSTALL.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\NEC\NVBASE" "%backupDir%\NVBASE.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AlertManagerHTTPSService" "%backupDir%\AlertManagerHTTPSService.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AlertManagerSocketReceiveService" "%backupDir%\AlertManagerSocketReceiveService.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AlertManagerWMIService" "%backupDir%\AlertManagerWMIService.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DianaScope ModemAgent" "%backupDir%\DianaScope_ModemAgent.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DmiEventWatcher" "%backupDir%\DmiEventWatcher.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESM32BridgeAlertListener" "%backupDir%\ESM32BridgeAlertListener.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESM32BridgeNvAccessor" "%backupDir%\ESM32BridgeNvAccessor.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMASVNT" "%backupDir%\ESMASVNT.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMBaseAlertListener" "%backupDir%\ESMBaseAlertListener.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMCommonComponent" "%backupDir%\ESMCommonComponent.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMDSVNT" "%backupDir%\ESMDSVNT.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMEventManager" "%backupDir%\ESMEventManager.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMWebContainer" "%backupDir%\ESMWebContainer.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Nvbase" "%backupDir%\Nvbase.reg" /y
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Nvcmd" "%backupDir%\Nvcmd.reg" /y
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\NEC\ESMAlertMan" "%backupDir%\ESMAlertMan.reg" /y



echo バックアップが完了しました。レジストリを削除します。
reg delete "HKEY_CLASSES_ROOT\Installer\Features\AB6C6B314DF162B4E94101236168FF8D" /f
reg delete "HKEY_CLASSES_ROOT\Installer\Products\AB6C6B314DF162B4E94101236168FF8D" /f
reg delete "HKEY_CLASSES_ROOT\Installer\UpgradeCodes\819E3F308EEA2C64EA1B6F0581391E45" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Features\18A48B96E3600CB4F9EF37C8BF872697" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Classes\Installer\Features\AB6C6B314DF162B4E94101236168FF8D" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Classes\Installer\Products\18A48B96E3600CB4F9EF37C8BF872697" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Classes\Installer\Products\AB6C6B314DF162B4E94101236168FF8D" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Classes\Installer\UpgradeCodes\819E3F308EEA2C64EA1B6F0581391E45" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\819E3F308EEA2C64EA1B6F0581391E45" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\18A48B96E3600CB4F9EF37C8BF872697" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\AB6C6B314DF162B4E94101236168FF8D" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{6342F89D-C2A1-480C-B76D-A9CDF25D1994}" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{69B84A81-063E-4BC0-9FFE-738CFB786279}" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield Uninstall Information\{69B84A81-063E-4BC0-9FFE-738CFB786279}" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_{13B6C6BA-1FD4-4B26-9E14-10321686FFD8}" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\IS_ESMPRO_SM" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\NEC\ESMPRO/SMSetup" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\NEC\ESMSM" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\NEC\ESMWEB" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\NEC\NBINSTALL" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Wow6432Node\NEC\NVBASE" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AlertManagerHTTPSService" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AlertManagerSocketReceiveService" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AlertManagerWMIService" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DianaScope ModemAgent" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DmiEventWatcher" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESM32BridgeAlertListener" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESM32BridgeNvAccessor" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMASVNT" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMBaseAlertListener" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMCommonComponent" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMDSVNT" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMEventManager" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESMWebContainer" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Nvbase" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Nvcmd" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Nvrmapd" /f
popd
echo ....finish



echo ==========================================================================
echo  ESMPRO/ServerManagerに関するWindowsOSレジストリの下記のバリューを削除します。
echo    ※指定のキーではなく、キー選択時に表示される以下の名前のパラメータを削除します。
echo    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\NEC\ESMAlertMan
echo     ・InstLISM
echo     ・InstManager
echo ==========================================================================
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\NEC\ESMAlertMan" /v "InstLISM" /f >nul
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\NEC\ESMAlertMan" /v "InstManager" /f >nul
echo ....finish


echo ==========================================================================
echo  %SMPATH%フォルダ配下のAlertManフォルダを除いて
echo  その配下ごと(ファイル,フォルダ含む)削除します。
echo ==========================================================================
for /d %%A in ("%SMPATH%\*") do (
   if not "%%A" == "%SMPATH%\AlertMan" (
     echo %%A 2>nul
     rmdir /s /q "%%A" 2>nul
   )
)
echo ....finish


echo ==========================================================================
echo  次のフォルダを削除します。
echo    C:\Program Files (x86)\InstallShield Installation Information\
echo        +- {6C0B147E-EC72-46B4-95B8-84CC8274C462}
echo        +- {13B6C6BA-1FD4-4B26-9E14-10321686FFD8}
echo        +- {69B84A81-063E-4BC0-9FFE-738CFB786279}
echo        +- {6342F89D-C2A1-480C-B76D-A9CDF25D1994}
echo ==========================================================================
rd /s /q "C:\Program Files (x86)\InstallShield Installation Information\{6C0B147E-EC72-46B4-95B8-84CC8274C462}" 2>nul
rd /s /q "C:\Program Files (x86)\InstallShield Installation Information\{13B6C6BA-1FD4-4B26-9E14-10321686FFD8}" 2>nul
rd /s /q "C:\Program Files (x86)\InstallShield Installation Information\{69B84A81-063E-4BC0-9FFE-738CFB786279}" 2>nul
rd /s /q "C:\Program Files (x86)\InstallShield Installation Information\{6342F89D-C2A1-480C-B76D-A9CDF25D1994}" 2>nul
echo ....finish


echo ==========================================================================
echo  C:\Windows\EXPRESS.INI を削除します。
echo ==========================================================================
del "C:\Windows\EXPRESS.INI" 2>nul
echo ....finish


echo ==========================================================================
echo  システムを再起動してください
echo ==========================================================================
pause