我對SCCM 2007腳本應用程序部署沒有任何問題,但SCCM 2012讓我把頭髮拉出來,剩下的東西很少。 我們傾向於進行大量腳本安裝,並且SCCM 2012中安裝失敗的大部分時間都是失敗的,最新的失敗是賽門鐵克企業倉庫,我編寫了一個腳本來檢查主DLL插件版本並使用正確的卸載字符串刪除以前的版本,然後安裝最新版本。 我的腳本非常簡單,並且在SCCM之外工作良好,但在SCCM內部卻失敗了。 如果我將應用程序重新創建爲MSI部署並使用MSI文件,那麼它將安裝正常,因此SCCM可以正常工作到客戶端。 SCCM從MSI中放入的卸載失敗,但在下面的示例中將對此進行介紹。我檢查了所有客戶端日誌文件並找不到任何問題。 我甚至在腳本結尾處返回成功安裝返回碼1707和0,嘗試讓SCCM成功。 我已經在VB.net中首先編寫腳本作爲控制檯服務應用程序,然後在vb腳本中重寫它。兩個腳本都失敗了過去我曾經使用AutoIT編寫腳本,但那也失敗了,所以我想我會換用更多的微軟。 對於檢測,我使用Windows安裝程序選擇並指向獲取產品代碼的msi文件。 部署類型是腳本。 我唯一能想到的是SCCM 2012不喜歡腳本中的睡眠。 或者它只是不喜歡腳本。 :-( MSI卸載失敗,因爲它需要以管理員身份運行,正如您從下面的腳本中看到的那樣,我以管理員身份運行,它在SCCM之外運行,但不在SCCM中運行,安裝使用的代碼幾乎相同,但更多的邏輯和更多的卸載串 甚至卸載失敗,這裏是卸載腳本是多麼簡單;SCCM 2012應用程序部署腳本問題,任何想法?
`enter code here
Set WshShell = WScript.CreateObject("WScript.Shell")
If WScript.Arguments.length = 0 Then
Set ObjShell = CreateObject("Shell.Application")
ObjShell.ShellExecute "wscript.exe", """" &
WScript.ScriptFullName & """" & "RunAsAdministrator", , "runas", 1
Else
end if
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("MsiExec.exe /x{ADEBB592-4986-4FD1-868C-D59DB32F0BC2} /q")
WScript.Sleep 8000
returnValue = 1707
WScript.Quit(returnValue)