VBScript 小筆記2

來源:互聯網
上載者:User

        儘管每天都在操作window的系統,但是瞄了下MSDN中的相關資料,尼瑪,頭都大了,英語一項不好。其次對windows上面的一些類庫完全沒有眼熟的,畢竟更多的時候是在跟JAVA打交道。看了那麼多類庫,但是用不曉得如何去調用,真是灰常無奈,一個個的去學,目前又有點不切實際。慢慢積累吧...

       這次CP讓我寫個VBS指令碼來檢查終端裝置是否打了指定的補丁,是否開啟了遠端桌面服務,無奈中只好到處搜羅資料最終出了下面這麼個指令碼。

      關鍵資料出處:

                     http://community.spiceworks.com/scripts/show/349-check-if-a-windows-update-is-installed-on-a-pc-vbs

                    http://msdn.microsoft.com/en-us/library/aa387287%28v=vs.85%29.aspx

                    http://www.w3school.com.cn/vbscript/index.asp


Set ws = CreateObject("WScript.Shell")host = WScript.FullNameIf LCase( right(host, len(host)-InStrRev(host,"\")) ) = "wscript.exe" Then    ws.run "cscript """ & WScript.ScriptFullName & chr(34), 0    WScript.QuitEnd IfSet oexec = ws.Exec("netstat -ano")Dim allInputallInput = ""DoallInput = allInput & oExec.StdOut.ReadLine & vbCRLFLoop While Not oExec.StdOut.AtEndOfStream Set objFSO = CreateObject("Scripting.FileSystemObject")Set objTextFile = objFSO.OpenTextFile ("checkResult", 2, True)If InStr(allInput,"3389")>0 Then '開通了遠端桌面則要檢查補丁是否安裝 ckinfo = checkOS() If InStr(ckinfo,"indows 7")>0 Then 'win7是否安裝了補丁 status1 = CheckParticularHotfix("2621440") 'KB2621440 status2 = CheckParticularHotfix("2667402") 'KB2621440   status =  status1 And status2If status = true Then'MsgBox "1", 64, "檢查結果"objTextFile.WriteLine(1)ElseIf status = false Then'MsgBox "0", 64, "檢查結果"objTextFile.WriteLine(0)End If  Else status = CheckParticularHotfix("2621440") 'KB2621440  If status = true then'MsgBox "1", 64, "檢查結果"objTextFile.WriteLine(1)ElseIf status = false Then'MsgBox "0", 64, "檢查結果"objTextFile.WriteLine(0)End If   End IfElse'MsgBox "1", 64, "檢查結果"objTextFile.WriteLine(1)End If status = CheckParticularHotfix(HotFixID)If status = true thenwscript.Echo "The Microsoft KB" & HotFixID & " IS installed."ElseIf status = false Thenwscript.Echo "The Microsoft KB" & HotFixID & " is NOT installed."Else 'Errorwscript.Echo "Error, unable to check for Microsoft KB. Error is: " & statusEnd Ifprivate Function CheckParticularHotfix(strHotfixID)'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Version 1.0' Checks if a particular hotfix is installed or not. ' This function has these 3 return options:' TRUE, FALSE, <error description> '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' On error resume nextSet objWMIService = GetObject("winmgmts:" _    & "{impersonationLevel=impersonate}!\\.\root\cimv2")if err.number <> 0 thenCheckParticularHotfix = "WMI could not connect to computer 'localCompute'"exit function 'No reason to continueend ifstrWMIforesp = "Select * from Win32_QuickFixEngineering where HotFixID = 'Q" & strHotfixID &_     "' OR HotFixID = 'KB" & strHotfixID & "'"Set colQuickFixes = objWMIService.ExecQuery (strWMIforesp)if err.number <> 0 Then'if an error occursCheckParticularHotfix = "Unable to get WMI hotfix info"else 'Error number 0 meaning no error occured tal = colQuickFixes.countif tal > 0 thenCheckParticularHotfix = True'HF installedelse CheckParticularHotfix = False'HF not installedend Ifend ifSet colQuickFixes = NothingErr.ClearOn Error GoTo 0End Function'檢查作業系統版本private Function checkOS() Set objWMIService = GetObject("winmgmts:" _    & "{impersonationLevel=impersonate}!\\.\root\cimv2")Set colOperatingSystems = objWMIService.ExecQuery _    ("Select * from Win32_OperatingSystem")For Each objOperatingSystem in colOperatingSystems    osInfo = objOperatingSystem.Caption NextcheckOS = osInfoEnd Function

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.