VBScript:Office 2003の一括削除


これは先週の火曜日に書かれたスクリプトです.Office 2003の著作権の問題で、約800台のPCのOffice 2003の専門版と標準版(当時はインストール時に標準が統一されておらず、ADで公開されていなかった)を1週間で削除し、Open Office.org 3.2をインストールしなければなりません.
 
      スクリプトのコードを貼り付けてから、Officeを一括削除する手順を簡単に説明します.
 
 

  
  
  
  
  1. '*************************************************************    
  2. ' Script: Office 2003 Unistall Script (Office 2003 Pro & Std)   
  3. ' Last Modified : 2010-08-03   
  4. ' Version: 1.0   
  5. '*************************************************************    
  6.  
  7. Const HKLM  = &H80000002   
  8. Const strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall\"   
  9.  
  10. strComputer  = "."   
  11. Set Wshell  = CreateObject("Wscript.Shell")   
  12. Set objReg  = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")   
  13. objReg.EnumKey HKLM, strKeyPath,arrSubKeys   
  14.       
  15. For Each strSubKey In arrSubKeys   
  16.         intRet = objReg.GetStringValue(HKLM, strKeyPath & strSubKey,"DisplayName",strValue)           
  17.           
  18.         If strValue <> "" And intRet = 0 And inStr(1,strValue,"Office Professional Edition 2003",1) >0 Then   
  19.            Wshell.Run("MsiExec.Exe /x {90110804-6000-11D3-8CFE-0150048383C9} /qn REBOOT=ReallySuppress")   
  20.         ElseIf strValue <> "" And intRet = 0 And inStr(1,strValue,"Office Standard Edition 2003",1) >0 Then   
  21.    wshell.Run("MsiExec.Exe /x {90120804-6000-11D3-8CFE-0150048383C9} /qn REBOOT=ReallySuppress")   
  22.         End If   
  23. Next   
  24.  
  25. 'The end  

 
 以上のスクリプトは、コンピュータ上のソフトウェアインストールリストを検索し、ソフトウェアリスト名にOffice Professional Edition 2003またはOffice Standard Edition 2003が含まれている場合は、それぞれ異なるアンインストールコマンドを実行します.
 
MsiExecというコマンドはよく知られていると思いますが、ここでは/Xのスイッチを使って、ソフトウェアのGUIDで取り外しています.Office 2003 ProとStdのGUIDには少し違いがあります(数字が1つ足りません).
 
スクリプトの問題が解決すると、スクリプトを実行するにはローカル管理者権限を持つアカウントが必要なため、新しい問題に直面します.1台のPCがこのスクリプトを実行すると、スクリプトは意味を失います.
 
どうしよう?
 
私が使っているのはPSToolsツールキットの中のPsexecです.
 
まず、BATまたはCMDのバッチファイルを書きます.内容は以下の通りです.
 
@Echo off
SET VCSite=%computername:~0,2%
echo y| xcopy\\%VCSite%IT240\c$\Script\bin\Uninoffice.vbs c:\windows\system32
Uninoffice.vbs
 
このバッチの目的は、Officeスクリプトを目的のコンピュータにコピーした後、スクリプトを実行することです.
 
勝手にPC機を1台探し(上記バッチファイルのPC機名を変更する必要がある)、ローカル管理者権限を持つアカウントでログインし、以下のコマンドラインを実行する
 
psexec @pclist.txt -u administrator    -p xxxxxxx -c c:\script\bin\uninoffice.cmd
 
 
PClist.txtには、Office 2003のアンインストールを実行するコンピュータのリストが含まれています.
 
テスト結果:PC 50台のOffice 2003アンインストールタスクを5分以内に完了できます.