VBScript:批量删除Office 2003 推荐
2010-08-07 16:08
197 查看
这是上周二写的脚本,由于Office 2003版权的问题,不得不在一周内删除完约800台PC上的Office 2003专业版和标准版(当时安装时未统一标准,且未通过AD进行发布),并且安装上Open Office.org 3.2 。
先贴脚本的代码,然后简要的描述一下批量删除Office的过程。
以上脚本通过查找计算机上的软件安装列表,如果软件列表名称中包含Office Professional Edition 2003或Office Standard Edition 2003,则分别执行不同的卸载命令。
MsiExec这个命令相信大家都比较熟悉了,这里使用是/X的开关,通过软件的GUID进行卸,Office 2003 Pro和Std的GUID有些许差别(就差一个数字)。
脚本的问题解决后,即将面临一个新的问题,因为执行该脚本需要具备本地管理员权限的账号才可以执行,倘若一台台的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机(需修改上述批处理文件中的PC机名相同),使用具有本地管理员权限的账号下登录,运行以下命令行
psexec @pclist.txt -u administrator -p xxxxxxx -c c:\script\bin\uninoffice.cmd
pclist.txt中包含你要执行Office 2003 卸载的计算机列表。
测试结果:五分钟内可完成50台PC的Office 2003卸载任务。
先贴脚本的代码,然后简要的描述一下批量删除Office的过程。
'************************************************************* ' Script: Office 2003 Unistall Script (Office 2003 Pro & Std) ' Last Modified : 2010-08-03 ' Version: 1.0 '************************************************************* Const HKLM = &H80000002 Const strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall\" strComputer = "." Set Wshell = CreateObject("Wscript.Shell") Set objReg = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv") objReg.EnumKey HKLM, strKeyPath,arrSubKeys For Each strSubKey In arrSubKeys intRet = objReg.GetStringValue(HKLM, strKeyPath & strSubKey,"DisplayName",strValue) If strValue <> "" And intRet = 0 And inStr(1,strValue,"Office Professional Edition 2003",1) >0 Then Wshell.Run("MsiExec.Exe /x {90110804-6000-11D3-8CFE-0150048383C9} /qn REBOOT=ReallySuppress") ElseIf strValue <> "" And intRet = 0 And inStr(1,strValue,"Office Standard Edition 2003",1) >0 Then wshell.Run("MsiExec.Exe /x {90120804-6000-11D3-8CFE-0150048383C9} /qn REBOOT=ReallySuppress") End If Next 'The end
以上脚本通过查找计算机上的软件安装列表,如果软件列表名称中包含Office Professional Edition 2003或Office Standard Edition 2003,则分别执行不同的卸载命令。
MsiExec这个命令相信大家都比较熟悉了,这里使用是/X的开关,通过软件的GUID进行卸,Office 2003 Pro和Std的GUID有些许差别(就差一个数字)。
脚本的问题解决后,即将面临一个新的问题,因为执行该脚本需要具备本地管理员权限的账号才可以执行,倘若一台台的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机(需修改上述批处理文件中的PC机名相同),使用具有本地管理员权限的账号下登录,运行以下命令行
psexec @pclist.txt -u administrator -p xxxxxxx -c c:\script\bin\uninoffice.cmd
pclist.txt中包含你要执行Office 2003 卸载的计算机列表。
测试结果:五分钟内可完成50台PC的Office 2003卸载任务。
相关文章推荐
- Office PDF如何批量删除书签
- Word如何删除尾注的横线(Office 2003)
- Office 2003/XP 加载项:删除隐藏数据
- Office PDF如何批量删除书签
- 事半功倍 批量删除OfficeExcel空行
- office word excel 2010 2003 批量 转换
- Office 2003安装自带的Microsoft Office Document Writer Driver虚拟打印机删除后的重新安装方法
- 安装visio 2010:您的计算机上的Office 2003安装已损坏,安装程序无法继续。请删除或修复office 2003产品并重新运行安装程序
- KVM脚本批量添加删除虚拟机版本2 推荐
- [高效]office里的图片批量删除和导出
- Outlook Express与Microsoft Office Outlook 2003/2007数据互导的方法 推荐
- Office 2003无法删除,报错“无法打开此修补程序包”解决方法.
- 您的计算机上的 Office 2003 安装已损坏,安装程序无法继续。请删除或修复 Office 2
- KVM脚本批量添加删除虚拟机 推荐
- 搭建linux RIS服务器批量布署windows 2003系统 推荐
- office -word -批量删除回车、制表符、分页符、换行符、分栏符等
- Exchange 2003 实战5- 批量添加用户 推荐
- 您的计算机上的 Office 2003 安装已损坏,安装程序无法继续。请删除或修复 Office 2003 产品并重新运行安装程序。
- DML风格的批量更新/删除 推荐
- 您的计算机上的Office 2003安装已损坏,安装程序无法继续。请删除或修复office 2003产品并重新运行安装程序