Назад | Перейти на главную страницу

Сценарий запуска GPO не запускается

Я не могу заставить GPO запускать сценарий при запуске. Сценарий создает общую папку на каждом компьютере в группе компьютеров с Windows 8. Сам скрипт отлично работает, но прикрепление его к GPO вызывает у меня проблемы. Даже после команд gpupdate / force и нескольких перезапусков я не могу запустить скрипты.

Вот что я знаю:

Я не знаю, как это исправить, есть идеи?

Внимание, я новичок в групповых политиках, поэтому, возможно, я пропустил что-то очевидное.

РЕДАКТИРОВАТЬ:

Я также пробовал создавать объекты групповой политики как из окна 7, так и из окна 8 с одинаковыми результатами. Контроллеры домена - это 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"""

Вот как я настроил эти сценарии для запуска в GPO:

С моей стороны это немного глупо, но я обнаружил проблему. Вместо перезапуска через Windows я нажимал кнопку питания, чтобы выключить машину, и снова нажимал ее, чтобы запустить.

Я перезапустился через Windows сегодня, и я, наконец, начал получать ошибки в журналах Windows, показывающие мне, почему скрипты не запускались (различные проблемы с подключением WiFi к контроллеру домена). После устранения неполадок (в основном, с использованием проводного Ethernet-соединения) и правильной перезагрузки я получил скрипт для запуска.