天天看點

SCCM 2007用戶端安裝和修複腳本

這是一套腳本一個vbs一個cmd兩個腳本要一并使用

作用:

1、通過組政策的開機腳本去安裝SCCM 2007用戶端

2、判斷是否有使用者登入(本地登入),如果有使用者登入則等待10分鐘後開始檢測SCCM 2007服務,目的是為了避免影響到使用者登陸的時間。

3、如果SCCM 2007服務不存在啟動CMD腳本強制安裝SCCM 2007用戶端。

4、如果服務存在檢測服務是否運作,如果運作則直接将運作狀态寫到"c:\ccm_install.log"的日志中。

5、如果服務不運作強制将伺服器啟動,啟動後再檢測服務啟動狀态寫到"c:\ccm_install.log"的日志中。

VBS腳本内容,需要儲存為 ccm2007_install.vbs

'掃描是否有使用者登入,如果沒有10秒後重新掃描,直至有使用者登入為止

strComputer = "."

dim loginusername,loginnum

Do Until loginusername = "\"

Set objWMIService = GetObject("winmgmts:" _

    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colComputer = objWMIService.ExecQuery _

    ("Select * from Win32_ComputerSystem")

For Each objComputer in colComputer

   loginnum = InStr(objComputer.UserName,"\")

If loginnum > 0 Then

   loginusername = "\"

End If

Next

WScript.Sleep 10000

Loop

'檢查SCCM2007 Agent服務(ccmexec)是否存在

Set objWMIService = GetObject("winmgmts:" _

    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colRunningServices = objWMIService.ExecQuery("Select * from Win32_Service where Name = 'ccmexec'")

If colRunningServices.Count = 0 Then

'如果服務不存在執行ccm_install.bat批處理安裝SCCM2007 Agent程式

'msgbox "服務不存在"

Set run = CreateObject("Wscript.Shell")

run.run "ccm_install.bat" , 0

Else

'如果服務存在,繼續向下檢查服務是否是運作

'msgbox "服務存在"

For Each objService in colRunningServices

    'Wscript.Echo objService.DisplayName  & VbTab & objService.State & objService.StartMode

'如果服務停止,強制将服務啟動狀态改為"自動",并強制啟動服務

If objService.State = "Stopped" Then

   errReturnCode = objService.Change( , , , , "Automatic")

   objService.StartService

End  If

Next

End If

'重新檢查ccmexec服務狀态,并将狀态記錄到"C:\ccm_install.log"日志中

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFile = objFSO.CreateTextFile("C:\ccm_install.log")

For Each objService in colRunningServices

objFile.WriteLine("CCM_Service: " & objService.State)

Next

objFile.Close

CMD腳本内容,需要儲存為 ccm_install.bat

net use o: "\\file\Software\辦公軟體\安裝殺毒\SCCM_Client"

IF EXIST %windir%\ccm_client (

    echo aaaaaa

) ELSE (

    xcopy o:\. %windir%\ccm_client\ /s /a /d /y

)

net use o: /delete /y

%windir%\ccm_client\ccmsetup.exe

轉載于:https://blog.51cto.com/lukepeng/975342