2008/10/27

批次移除網域內電腦的特定檔案/資料匣/登錄檔


需求條件:
  1. 程式執行人需有 domain admins 權限
  2. 需具備 psexec.exe
  3. 需具備 regedit.exe
  4. 需具備 pskill.exe
  5. 遠端電腦需啟動 remote registry 服務
檔案:
@echo off

:: 名稱:giti_rm.bat
:: 用途:移除 ERP 應用程式、登錄檔、程式集、桌面捷徑
:: 作成:archer @ 2008/10/27
:: 用法:將 giti_rm.bat 與 giti_rm.reg 放置於 \\\ ,並確定一般使用者可以使用這個資料匣,直接執行即可
:: 備註:測試過的系統 - vista sp1
:: xp sp3
:: 2000 sp4
:: 2000 server sp4
:: 2003 server r2


::以下三個變數需視情況修改
:: 一般使用者的設定檔所在位置
set PROFILE=%SystemDrive%\Documents and Settings
:: All users的設定檔所在位置
set ALLUSERPROFILE=%PROFILE%\All Users
::giti_rm.bat 所在目錄
set WORKDIR=\\192.168.123.5\tmp\gtwin_rm

if exist "%SYSTEMDRIVE%\wingiti" (
::移除 ERP 應用程式
echo Terminating gitiwin.exe
\\192.168.123.5\cmn\pskill.exe gitiwin.exe
echo.
ping -c 3 127.0.0.1>nul

echo Removing DIRs and FILEs
echo "%SYSTEMDRIVE%\wingiti"
rd /s /q "%SYSTEMDRIVE%\wingiti"
echo.

::移除 all users 程式集中的 ERP 功能表

echo Removing %ALLUSERPROFILE%\「開始」功能表\程式集\ERP電腦資訊整合系統
FOR /R "%ALLUSERPROFILE%" %%A in (ERP電腦資訊整合系統) do @if exist %%A echo %%A is removed
FOR /R "%ALLUSERPROFILE%" %%A in (ERP電腦資訊整合系統) do @if exist %%A rd /q /s "%%A"
echo.

::移除所有使用者的遊樂場功能表

echo Removing %PROFILE%\「開始」功能表\程式集\遊樂場
FOR /R "%PROFILE%" %%A in (遊樂場) do @if exist %%A echo %%A is removed
FOR /R "%PROFILE%" %%A in (遊樂場) do @if exist %%A rd /q /s "%%A"
echo.

::移除每個使用者桌面的 ERP更新.bat

echo Removing %PROFILE% ERP更新.bat for each user
FOR /R "%PROFILE%" %%A in (ERP更新.bat) do @if exist %%A echo %%A is removed
FOR /R "%PROFILE%" %%A in (ERP更新.bat) do @if exist %%A del /f "%%A"
echo.

::移除每個使用者桌面的 ERP電腦資訊整合系統.lnk

echo Removing %PROFILE% ERP電腦資訊整合系統.lnk for eath user
FOR /R "%PROFILE%" %%A in (ERP電腦資訊整合系統.lnk) do @if exist %%A echo %%A is removed
FOR /R "%PROFILE%" %%A in (ERP電腦資訊整合系統.lnk) do @if exist %%A del /f "%%A"
echo.

::移除登錄檔中的反安裝及程式資訊

echo Removing related keys/values in registry
regedit /s %WORKDIR%\giti_rm.reg
echo.

echo Remove GITIWIN operation is complete!
ping -n 3 127.0.0.1 > nul
) else ( echo GITIWIN is not exist! Do nothing. )

giti_rm.reg

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu2\Programs\ERP電腦資訊整合系統]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ERP電腦資訊整合系統_is1]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache\ERP電腦資訊整合系統_is1]

[-HKEY_USERS\S-1-5-21-1614895754-861567501-725345543-1115\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu2\Programs\ERP電腦資訊整合系統]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Forms]
"支票"=-
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Forms]
"支票"=-
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Control\Print\Forms]
"支票"=-

步驟:
  1. 調查 gitiwin 安裝後會產生哪些檔案、哪些登錄檔
  2. 將找到的登錄檔其父階匯出(key),並在每一個 key 之前加上 - ,標示為欲移除的 key;value
  3. 將找到的檔案、路徑寫進批次檔,並強制移除
  4. 以 net view >pc 將網域內所有電腦列出;記得把開頭的 \\ 拿掉
  5. 其他細節請參考 giti_rm.bat 的註解
  6. 將附件放置於所有人皆可讀取的共用資料匣,並執行以下指令
    psexec @pc \\server\folder\giti_rm\giti_rm.bat