可以從一臺(tái)遠(yuǎn)程服務(wù)器運(yùn)行 SP2 安裝程序Install.vbs
Install.vbs
發(fā)布者 Microsoft Corporation 腳本專家
此腳本由 scenario1.vbs 在一臺(tái)網(wǎng)絡(luò)主機(jī)上啟動(dòng)。Install.vbs 可以在安裝了 SP2 的主機(jī)上以本地方式運(yùn)行,它執(zhí)行以下任務(wù):
? 從一臺(tái)遠(yuǎn)程服務(wù)器運(yùn)行 SP2 安裝程序。
? 在主機(jī)上設(shè)置 AutoAdmin 和 RunOnce 兩個(gè)注冊(cè)表項(xiàng)。
? 將結(jié)果記錄到文本文件 computername-sp2-instlog.txt 并將該文件復(fù)制回管理工作站。
? 強(qiáng)制重新啟動(dòng),隨后 runonce.vbs 將自動(dòng)啟動(dòng)。
在基本方案中,SP 2 安裝程序文件位于列表中的所有網(wǎng)絡(luò)主機(jī)均可訪問(wèn)的一臺(tái)遠(yuǎn)程服務(wù)器上。在該方案的某種變化方案中,如果將 SP 2 安裝程序復(fù)制到本地主機(jī)并從這里運(yùn)行,則應(yīng)重命名此腳本(例如重命名為 install-remote.vbs),然后將 install-local.vbs 重命名為 install.vbs。您還必須對(duì)這些腳本中提到的 scenario1.vbs 和新的 install.vbs 做一些細(xì)微更改。
有關(guān)方案 1 以及各個(gè)腳本的作用的進(jìn)一步說(shuō)明,請(qǐng)參見(jiàn)對(duì)這些腳本的介紹,網(wǎng)址是:
http://www.microsoft.com/technet/scriptcenter/solutions/appcompat.msxp
Install.vbs 對(duì)應(yīng)于 install.cmd,但增加了一些新功能;install.cmd 是 Application Compatibility Testing and Mitigation Guide for Windows XP Service Pack 2(Windows XP Service Pack 2 應(yīng)用程序兼容性測(cè)試和緩解指南)“附錄”中介紹的附帶腳本之一。您可以從以下網(wǎng)址下載用來(lái)安裝該指南及其關(guān)聯(lián)腳本的 Windows Installer (.msi) 文件:
http://www.microsoft.com/downloads/details.aspx?FamilyId=9300BECF-2DEE-4772-ADD9-AD0EAF89C4A7&displaylang=en
要使用此腳本,請(qǐng)復(fù)制代碼,將代碼粘貼到記事本中,然后將腳本另存為 install.vbs。此腳本被設(shè)計(jì)成了作為 scenario1.vbs 啟動(dòng)的進(jìn)程的一部分自動(dòng)運(yùn)行。
腳本代碼
'******************************************************************************
'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
要獲得在線同行支持,請(qǐng)加入 msnews.microsoft.com 新聞服務(wù)器上的 microsoft.public.windows.server.scripting 社區(qū)。要提供反饋或報(bào)告示例腳本或“腳本指南”中的錯(cuò)誤,請(qǐng)聯(lián)系 Microsoft TechNet。
免責(zé)聲明
此示例腳本不受任何 Microsoft 標(biāo)準(zhǔn)支持計(jì)劃或服務(wù)的支持。這里僅按原樣提供示例腳本,而不作任何類型的擔(dān)保。Microsoft 進(jìn)一步明確拒絕所有的暗示擔(dān)保,包括但不限于對(duì)適銷性或?qū)μ囟康倪m用性的任何暗示擔(dān)保。使用或執(zhí)行示例腳本和文檔所引起的全部風(fēng)險(xiǎn)應(yīng)由您自己承擔(dān)。在任何情況下,對(duì)于使用或不能使用示例腳本或文檔所引起的任何損害(包括但不限于商業(yè)利潤(rùn)損失、業(yè)務(wù)中斷、商業(yè)信息丟失或其他資金損失所造成的損害),Microsoft、其作者以及參與腳本創(chuàng)建、生產(chǎn)或傳遞的任何其他人員都概不負(fù)責(zé),即使 Microsoft 已被告知存在這些損害的可能性。
上一篇:用vbs找到映射到共享的所有驅(qū)動(dòng)器并重新映射它們
欄 目:vb
本文標(biāo)題:可以從一臺(tái)遠(yuǎn)程服務(wù)器運(yùn)行 SP2 安裝程序Install.vbs
本文地址:http://mengdiqiu.com.cn/a1/vb/7872.html
您可能感興趣的文章
- 01-10vbscript 可以按引用傳遞參數(shù)嗎?
- 01-10VBS教程:方法-Read 方法
- 01-10VBS教程:方法-Remove 方法
- 01-10VBS教程:函數(shù)-Mid 函數(shù)
- 01-10Restart.vbs源代碼可以重啟遠(yuǎn)程電腦的vbs
- 01-10可以得到當(dāng)前系統(tǒng)信息的腳本sysinfo.vbs
- 01-10可以定時(shí)自動(dòng)關(guān)機(jī)的vbs腳本
- 01-10一個(gè)可以更換windows xp or 2003的序列號(hào)的vbs腳本
- 01-10一個(gè)可以刪除指定天數(shù)文件的vbs腳本
- 01-10提供個(gè)可以顯示農(nóng)歷的VBS代碼


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個(gè)高效的軟件
- 01-10VBS中的正則表達(dá)式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語(yǔ)法速查及實(shí)例說(shuō)明
隨機(jī)閱讀
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子