可以从一台远程服务器运行 SP2 安装程序Install.vbs_vbs

Install.vbs
发布者 Microsoft Corporation 脚本专家

此脚本由 scenario1.vbs 在一台网络主机上启动。Install.vbs 可以在安装了 SP2 的主机上以本地方式运行,它执行以下任务:

? 从一台远程服务器运行 SP2 安装程序。

? 在主机上设置 AutoAdmin 和 RunOnce 两个注册表项。

? 将结果记录到文本文件 computername-sp2-instlog.txt 并将该文件复制回管理工作站。

? 强制重新启动,随后 runonce.vbs 将自动启动。

在基本方案中,SP 2 安装程序文件位于列表中的所有网络主机均可访问的一台远程服务器上。在该方案的某种变化方案中,如果将 SP 2 安装程序复制到本地主机并从这里运行,则应重命名此脚本(例如重命名为 install-remote.vbs),然后将 install-local.vbs 重命名为 install.vbs。您还必须对这些脚本中提到的 scenario1.vbs 和新的 install.vbs 做一些细微更改。

有关方案 1 以及各个脚本的作用的进一步说明,请参见对这些脚本的介绍,网址是:

http://www.microsoft.com/technet/scriptcenter/solutions/appcompat.msxp

Install.vbs 对应于 install.cmd,但增加了一些新功能;install.cmd 是 Application Compatibility Testing and Mitigation Guide for Windows XP Service Pack 2(Windows XP Service Pack 2 应用程序兼容性测试和缓解指南)“附录”中介绍的附带脚本之一。您可以从以下网址下载用来安装该指南及其关联脚本的 Windows Installer (.msi) 文件:

http://www.microsoft.com/downloads/details.aspx?FamilyId=9300BECF-2DEE-4772-ADD9-AD0EAF89C4A7&displaylang=en

要使用此脚本,请复制代码,将代码粘贴到记事本中,然后将脚本另存为 install.vbs。此脚本被设计成了作为 scenario1.vbs 启动的进程的一部分自动运行。

脚本代码 

复制代码 代码如下:

'****************************************************************************** 
'install.vbs 
'Author: Peter Costantini, the Microsoft Scripting Guys 
'Date: 9/1/04 
'Must be deployed to a client and launched remotely by scenario1.vbs. 
'Assumes that runonce.vbs is in same directory as script. 
'Assumes that Windows XP Service Pack 2 setup program is on a remote server 
'and runonce.vbs are in same directory as script. 
'1. Runs Service Pack 2 setup program from remote server to install 
'   Windows XP Service Pack 2. This could take one or two hours. 
'2. Configures the AutoAdmin and RunOnce registry settings necessary 
'   to run runonce.vbs. 
'3. Logs results to text file, <computername>-sp2-instlog.txt and copies 
'   the file back to admin workstation. 
'4. Forces a reboot of the local machine so that the AutoAdmin and RunOnce  
'   registry settings take effect. 
'****************************************************************************** 

On Error Resume Next 

'Initialize global constants and variables. 
Const FOR_APPENDING = 8 
g_strLocalFolder = "c:\temp-ac" 
'Change name of computer to actual administrative workstation or local  
'path to which log should be copied. 
g_strRemoteFolder = "\\<adminwkstn>\c$\temp-ac" 

'Get computer name. 
g_strComputer = GetComputerName 
g_strLogFile = g_strComputer & "-sp2-instlog.txt" 

'Create log file. 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objTextStream = objFSO.OpenTextFile(g_strLogFile, FOR_APPENDING, True) 
objTextStream.WriteLine "Windows XP Service Pack 2 " & _ 
 "Installation and Configuration Log: Phase 1" 
objTextStream.WriteLine Now 
objTextStream.WriteLine g_strComputer 
objTextStream.WriteLine String(Len(g_strComputer), "-") 

'Handle logic of calling functions and sub-routines to install Service Pack 2 
'and configure AutoAdministration. 
blnInstallSP = InstallSP 
If blnInstallSP = False Then 
  CopyLog 
  WScript.Quit 
End If 
blnAutoAdmin = ConfigAutoAdmin 
If blnAutoAdmin = False Then 
  CopyLog 
  WScript.Quit 
End If 
Reboot 

'****************************************************************************** 

Function GetComputerName 

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\." _ 
 &"\root\cimv2") 
Set colSystems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem") 
For Each objSytem In colSystems 
  GetComputerName = objSytem.Name 
Next 

End Function 

'****************************************************************************** 

Function InstallSP 

'Edit this line to include the server and share name where the Windows XP 
'Service Pack 2 setup program is located. 
strInstallPath = "\\servername\xpsp2\WindowsXP-KB835935-SP2-ENU.exe " & _ 
 "/quiet /norestart /o" 

Set WshShell = CreateObject("Wscript.Shell") 
Set objExec = WshShell.Exec(strInstallPath)  
'This could take one or two hours. 
objTextStream.WriteLine "Installation started ..." 
If Err = 0 Then 
'Loop until Exec is finished - Status = 1. 
  Do While objExec.Status = 0 
'Pause for 10 seconds before checking. 
'To reduce network traffic, make interval longer. 
    WScript.Sleep 10000 
  Loop 
  objTextStream.WriteLine "Service Pack 2 installation completed." 
  InstallSP = True 
Else 
  objTextStream.WriteLine "Unable to install Service Pack 2." & VbCrLf & _ 
   "Error connecting to Service Pack 2 on server." & VbCrLf & _ 
   "Error number: " & Err.Number & VbCrLf & _ 
   "Error source: " & Err.Source & VbCrLf & _ 
   "Error description: " & Err.Description 
  InstallSP = False 
End If 
Err.Clear 

End Function 

'****************************************************************************** 

Function ConfigAutoAdmin 

Const HKEY_LOCAL_MACHINE = &H80000002 
strKeyPath1 = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" 
strKeyPath2 = "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" 
strDefaultUserName = "Administrator" 
strDefaultPassword = "P@ssw0rd" 
strDefaultDomainName = "Contoso" 
intAutoAdminLogon = 1 
strRunOnceEntry = "MyScript" 
strRunoncePath = g_strLocalFolder & "\runonce.vbs" 

Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
 g_strComputer & "\root\default:StdRegProv") 

'Set strDefaultUserName to user with Administrator credentials. 
intRet1 = objReg.SetStringValue(HKEY_LOCAL_MACHINE, strKeyPath1, _ 
 "DefaultUserName", strDefaultUserName) 
If intRet1 <> 0 Then 
  objTextStream.WriteLine "Error: DefaultUserName not configured." 
End If 

'Set strDefaultPassword to password of default username. 
intRet2 = objReg.SetStringValue(HKEY_LOCAL_MACHINE, strKeyPath1, _ 
 "DefaultPassword", strDefaultPassword) 
If intRet2 <> 0 Then 
  objTextStream.WriteLine "Error: DefaultPassword not configured." 
End If 

'Uncomment next 5 lines and edit last parameter if default domain 
'for the credentials is different from that already set. 
'intRet3 = objReg.SetStringValue(HKEY_LOCAL_MACHINE, strKeyPath1, _ 
' "DefaultDomainName", strDefaultDomainName) 
'If intRet3 <> 0 Then 
'  objTextStream.WriteLine "Error: DefaultDomainName not configured." 
'End If 

'Turn on AutoAdminLogon 
intRet4 = objReg.SetStringValue(HKEY_LOCAL_MACHINE, strKeyPath1, _ 
 "AutoAdminLogon", "1") 
If intRet4 <> 0 Then 
  objTextStream.WriteLine "Error: AutoAdminLogon not configured." 
End If 

'Add MyScript entry to RunOnce subkey. 
intRet5 = objReg.SetStringValue(HKEY_LOCAL_MACHINE, strKeyPath2, _ 
 strRunOnceEntry, strRunoncePath) 
If intRet5 <> 0 Then 
  objTextStream.WriteLine "Error: MyScript RunOnce entry not configured." 
End If 

'Check that all registry write operations succeeded. 
If (intRet1 + intRet2 + intRet3 + intRet4 + intRet5) = 0 Then 
  objTextStream.WriteLine "AutoAdminLogon and RunOnce configured." 
  ConfigAutoAdmin = True 
Else 
  objTextStream.WriteLine "Error: AutoAdminLogon and RunOnce not fully " & _ 
   "configured." 
  ConfigAutoAdmin = False 
End If 

End Function 

'****************************************************************************** 

Sub Reboot 

Const FORCED_REBOOT = 6 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate," & _ 
 "(Shutdown)}!\\" & g_strComputer & "\root\cimv2") 
Set colOSes = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem") 
objTextStream.WriteLine "Attempting to reboot ..." 
CopyLog 
For Each objOS In colOSes 'Only one objOS in collection 
  intReturn = objOS.Win32Shutdown(FORCED_REBOOT) 
  If intReturn <> 0 Then 
    Set objTextStream = objFSO.OpenTextFile(g_strLogFile, FOR_APPENDING, True) 
    objTextStream.WriteLine Now 
    objTextStream.WriteLine "Error: Unable to reboot. " & VbCrLf & _ 
     "Return code: " & intReturn 
  CopyLog 
  End If 
Next 

End Sub 

'****************************************************************************** 

Sub CopyLog 

'Close text file. 
objTextStream.WriteLine "Closing log and attempting to copy file to " & _ 
 "administrative workstation." 
objTextStream.WriteLine 
objTextStream.WriteLine String(80, "-") 
objTextStream.WriteLine 
objTextStream.Close 

'Copy log. 
If Not objFSO.FolderExists(g_strRemoteFolder) Then 
  objFSO.CreateFolder(g_strRemoteFolder) 
  If Err <> 0 Then 
    Err.Clear 
    Exit Sub 
  End If 
End If 
objFSO.CopyFile g_strLogFile, g_strRemoteFolder & "\" 

End Sub 

要获得在线同行支持,请加入 msnews.microsoft.com 新闻服务器上的 microsoft.public.windows.server.scripting 社区。要提供反馈或报告示例脚本或“脚本指南”中的错误,请联系 Microsoft TechNet。

免责声明

此示例脚本不受任何 Microsoft 标准支持计划或服务的支持。这里仅按原样提供示例脚本,而不作任何类型的担保。Microsoft 进一步明确拒绝所有的暗示担保,包括但不限于对适销性或对特定目的适用性的任何暗示担保。使用或执行示例脚本和文档所引起的全部风险应由您自己承担。在任何情况下,对于使用或不能使用示例脚本或文档所引起的任何损害(包括但不限于商业利润损失、业务中断、商业信息丢失或其他资金损失所造成的损害),Microsoft、其作者以及参与脚本创建、生产或传递的任何其他人员都概不负责,即使 Microsoft 已被告知存在这些损害的可能性。

时间: 2024-09-26 09:09:00

可以从一台远程服务器运行 SP2 安装程序Install.vbs_vbs的相关文章

配置vnc远程连接Linux和Unix远程服务器图形界面安装oracle

1.配置并开启vnc服务 [oracle@localhost ~]$ vncserver You will require a password to access your desktops. Password:              ---这里要求输入vnc客户端登录的密码并重复 Verify:               New 'localhost.localdomain:2 (oracle)' desktop is localhost.localdomain:2 Creating

在同一台机器上运行多个 MySQL 服务

mysql ********************************************************** 第一部分, 在一台服务器构建多mysql 服务. ********************************************************** 一,绪言 在Mysql中有一mysqld_multi命令,可用于在一台物理服务器运行多个Mysql服务,今天参考一些文档,亲自测试并通过,真高兴,现将操作过程共享给大家! 操作系统:Linux 2.6.

取消win7运行安装程序出现阻止窗口的方法

  相信很多win7系统用户,在运行某些安装程序时,系统自动弹出阻止运行的窗口对话,同时还提示该程序可能存在风险的问题,这时用户即选择继续或取消运行程序,对于win7系统下出现该问题,并不是所有程序都是不安全的,其实主要是原因是程序没有申请或者没有通过微软验证,如果你不想在安装程序时,让win7提示该窗口,那么我们可通过对安全级别进行调整,从而取消该出现窗口! 操作方法: 1.在开始菜单中打开控制面板,点击用户和家庭安全,再点击用户帐户; 2.接下来点击"更改用户帐户控制设置"选项;

在同一台机器上运行多个MySQL服务器

    有些情况下你可能想要在同一台机器上运行多个服务器.例如,你可能想要测试一个新的MySQL版本而让你现有生产系统的设置不受到干扰, 或你可能是想要为不同的客户提供独立的MySQL安装一个因特网服务供应商. 如果你想要运行多个服务器,最容易的方法是用不同的TCP/IP端口和套接字文件重新编译服务器,因此他们不是侦听同一个TCP/IP端口或套接字. 假设一个现存服务器配置为缺省端口号和套接字文件, 那么用一个这样configure命令行设置新的服务器: shell> ./configure -

重庆云计算基地今年实现 5万台服务器运行

本报讯 (记者 郭晓静)宽阔的道路两旁,平整好的土地一眼望不到边--短短几个月,位于水土工业园的云计算基地初具规模,从丘陵地带变成了阡陌交通.绿树成行的"平原".一个多月前,重庆"千万千瓦"发电工程专为云计算基地配套的华能两江燃机项目在这里开工,就在今年,5万台服务器将在云计算基地实现运行. 据悉,我市占地10平方公里的云计算基地为国际离岸云计算特别试验区,将开展离岸和在案数据存储和处理业务,并带动相关信息服务外包产业发展.该项目计划总投资70亿元,全部投产后达到5

远程登录-sco unix 5.0.7 ssh能够连接其他服务器,但其他服务器ssh连不上这台unix服务器

问题描述 sco unix 5.0.7 ssh能够连接其他服务器,但其他服务器ssh连不上这台unix服务器 sco unix 5.0.7安装好之后,可以既ssh连接其他服务器,但其他服务器ssh连不上这台unix服务器,不知道怎么回事

如何查看Windows服务器运行了多长时间

前言:有时候管理.维护Windows服务器需要定期重启服务器(为什么 需要重启,你懂的),但是这个"定期"有时候会受很多因素影响,例如某台服务器忘了重启:某台服务器那个时间段业务繁忙,不能重启:那个时间段你忘了重启 服务器...... 诸如此类.当你的Schedule被打乱了.这个时候,你就需要查看服务器运行了多长时间,下面介绍一下如何查看Windows服务器运行时间的方法 方法一:如果这台Windows服务器是数据库服务器,那么可以通过查看SQL SERVER启动时间来间接判断Win

登录远程服务器中的安全问题和连接提速技巧

最近单位要搞一个大型活动,领导要求在网站中添加一些栏目,为此整天忙个不停,往往忙不完,还 要带回家继续工作.在家中工作并不像在单位那样得心应手,制作好的网站无法测试,这样大大降低了工 作效率.其实如果能在家中或者其他环境下能随时登录服务器,这样就会给我们的工作带来方便. 为了在家中能方便登录单位服务器电脑,我们使用远程登录工具,这样我们就可以在家中对服务器进 行维护了.分析自己的工作,一般回到家将网站数据制作成功后,需要安装到服务器上进行测试,这样我 们需要的远程控制工具一般要具有远端桌面操作和

Git学习--&amp;gt;如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器?

一.背景 在我之前的博客 git学习--> Gitlab如何进行备份恢复与迁移? (地址:http://blog.csdn.net/ouyang_peng/article/details/77070977) 里面已经写清楚了如何使用Gitlab自动备份功能. 但是之前的备份功能只是备份到Gitlab服务运行的那台服务器上,如果哪一天那台服务器的磁盘损坏了的话,数据无法取出,那么对于公司来说是一匹无法想象的损失,因为 代码是公司的重要资产,需要以防万一. 代码是公司的重要资产,需要以防万一. 代码