我对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)