GPO启动脚本没有被运行

我无法让GPO在启动时运行脚本。 该脚本在一组Windows 8计算机中的每台计算机上创build一个共享文件夹。 剧本本身效果很好,但将其附加到GPO上给我一个问题。 即使在gpupdate / force命令和几次重新启动后,我也无法运行脚本。

以下是我所知道的:

  • RSOP显示正在应用该脚本的GPO
  • GPResult指出该脚本尚未运行(几次重启之后)
  • 计算机的应用程序或系统事件日志中没有相关的事件
  • 对自己的作品执行脚本很好
  • 使用psexec使用SYSTEM证书运行脚本也可以
  • 将脚本从networking共享移动到本地文件夹(例如C:\ GPOFiles \)没有差别,GPO仍然不执行脚本。
  • 我试过使用其他更简单的脚本来查看是否有问题的脚本,而且它们也不会运行
  • 我可以将其作为login脚本来运行,但如果可能,我宁愿将其应用于机器,而不是用户

我不知道如何解决这个,任何想法?

小组长,我对组策略有点新,所以我可能错过了一些明显的事情。

编辑:

我也尝试从Windows 7和Windows 8中创buildGPO,获得相同的结果。 域控制器是Windows Server 2008。

这是我试图运行的脚本。 :

'========================================================================== 'ShareSetup.vbs '========================================================================== Option Explicit Const FILE_SHARE = 0 Const MAXIMUM_CONNECTIONS = 25 Dim strComputer Dim objWMIService Dim objNewShare strComputer = "." Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objNewShare = objWMIService.Get("Win32_Share") Call sharesec ("C:\Shared", "Shared", "Work Center Share", "Domain Users") Sub sharesec(Fname,shr,info,account) 'Fname = Folder path, shr = Share name, info = Share Description, account = account or group you are assigning share permissions to Dim FSO Dim Services Dim SecDescClass Dim SecDesc Dim Trustee Dim ACE Dim Share Dim InParam Dim Network Dim FolderName Dim AdminServer Dim ShareName FolderName = Fname AdminServer = "\\" & strComputer ShareName = shr Set Services = GetObject("WINMGMTS:{impersonationLevel=impersonate,(Security)}!" & AdminServer & "\ROOT\CIMV2") Set SecDescClass = Services.Get("Win32_SecurityDescriptor") Set SecDesc = SecDescClass.SpawnInstance_() 'Set Trustee = Services.Get("Win32_Trustee").SpawnInstance_ 'Trustee.Domain = Null 'Trustee.Name = "EVERYONE" 'Trustee.Properties_.Item("SID") = Array(1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0) Set Trustee = SetGroupTrustee("LM", account) 'Replace ACME with your domain name. 'To assign permissions to individual accounts use SetAccountTrustee rather than SetGroupTrustee Set ACE = Services.Get("Win32_Ace").SpawnInstance_ ACE.Properties_.Item("AccessMask") = 2032127 ACE.Properties_.Item("AceFlags") = 3 ACE.Properties_.Item("AceType") = 0 ACE.Properties_.Item("Trustee") = Trustee SecDesc.Properties_.Item("DACL") = Array(ACE) Set Share = Services.Get("Win32_Share") Set InParam = Share.Methods_("Create").InParameters.SpawnInstance_() InParam.Properties_.Item("Access") = SecDesc InParam.Properties_.Item("Description") = "Public Share" InParam.Properties_.Item("Name") = ShareName InParam.Properties_.Item("Path") = FolderName InParam.Properties_.Item("Type") = 0 Share.ExecMethod_ "Create", InParam End Sub Function SetAccountTrustee(strDomain, strName) set objTrustee = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Trustee").Spawninstance_ set account = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Account.Name='" & strName & "',Domain='" & strDomain &"'") set accountSID = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_SID.SID='" & account.SID &"'") objTrustee.Domain = strDomain objTrustee.Name = strName objTrustee.Properties_.item("SID") = accountSID.BinaryRepresentation set accountSID = nothing set account = nothing set SetAccountTrustee = objTrustee End Function 

据我所知,GPO甚至没有触及剧本。 为了科学,我也尝试了下面的脚本,它也没有运行:

 Dim oShell Set oShell = WScript.CreateObject ("WScript.Shell") oShell.run "subst z: ""C:\Shared""" 

以下是我如何configuration这些脚本以在GPO中运行: 在这里输入图像说明

这在我看来有点愚蠢,但是我发现了这个问题。 而不是通过Windows重新启动,我会点击电源buttonclosures机器,再次点击它启动它。

我今天重新开始通过Windows,我终于开始在Windows日志中显示错误,告诉我为什么脚本没有被运行(misc WiFi连接问题到域控制器)。 经过一些故障排除(主要通过使用有线以太网连接)和适当的重新启动后,我得到脚本运行。