none
Выполнение сценария у пользователей, которые входят в domain\group RRS feed

  • Вопрос

  • Помогите дописать скрипт

    Как сделать, чтобы в учетных записей пользователей которые входят в domain\group отрабатывал сценарий:

    ................................

    Dim WSHShell
    Set WSHShell = WScript.CreateObject ("WScript.Shell")
    Dim MyShortcut, MyDesktop, DesktopPath
    DesktopPath = WSHShell.SpecialFolders("Desktop")
    Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & "\Programm.lnk")
    MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings ("\\server\shared\programm.exe")
    MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings ("\\server\shared")
    MyShortcut.WindowStyle = 4
    MyShortcut.IconLocation = WSHShell.ExpandEnvironmentStrings ("\\server\shared\programm.exe, 0")
    MyShortcut.Save
    21 ноября 2008 г. 12:28

Ответы

  • Этот скрипт можно прописать в GPO и применять только на соответствующие группы.

    Или в самом скрипте можно задать условие:


    dim UserObj
    dim objNetwork

    set objNetwork=CreateObject("WScript.Network")

    set UserObj = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.UserName)
    For Each Group In UserObj.groups

    Select Case UCASE(Group.Name)
    Case "TESTGROUP"
    Wscript.Echo Bla-bla-bla
    End Select
    Next

    21 ноября 2008 г. 14:30
  • Думаю это должно помочь

    Code Snippet

    GroupName="domen/group" 'название группы в формате domen/group


    set objNetwork=CreateObject("WScript.Network")
    set UserObj = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.UserName)
    set GroupObj = GetObject("WinNT://" & GroupName)

    For Each usr In GroupObj.members
    if lcase(UserObj.ADsPath)=lcase(usr.ADsPath) then Wscript.Echo "a member"
    Next





    26 ноября 2008 г. 9:14
  •  exebit написано:
    VBScript не любит, когда убирают "лишние" переносы строки. Вот так надо писать:
    For Each Usr In GroupObj.members
    if lcase(UserObj.ADsPath)=lcase(usr.ADsPath) then Wscript.Echo "a member"


     

    Жестячек )) спасибо

     

    dim UserObj
    dim objNetwork
    Dim GroupObj
    GroupName="bank/group1" 'название группы в формате domen/group
    set objNetwork=CreateObject("WScript.Network")
    set UserObj = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.UserName)
    set GroupObj = GetObject("WinNT://" & GroupName)
    For Each Usr In GroupObj.members
    If lcase(UserObj.ADsPath)=lcase(usr.ADsPath) Then Wscript.Echo "a member"
    Next

    26 ноября 2008 г. 12:32

Все ответы

  • Этот скрипт можно прописать в GPO и применять только на соответствующие группы.

    Или в самом скрипте можно задать условие:


    dim UserObj
    dim objNetwork

    set objNetwork=CreateObject("WScript.Network")

    set UserObj = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.UserName)
    For Each Group In UserObj.groups

    Select Case UCASE(Group.Name)
    Case "TESTGROUP"
    Wscript.Echo Bla-bla-bla
    End Select
    Next

    21 ноября 2008 г. 14:30
  •  _MaZaY_ написано:
    Этот скрипт можно прописать в GPO и применять только на соответствующие группы.

    Или в самом скрипте можно задать условие:


    dim UserObj
    dim objNetwork

    set objNetwork=CreateObject("WScript.Network")

    set UserObj = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.UserName)
    For Each Group In UserObj.groups

    Select Case UCASE(Group.Name)
    Case "TESTGROUP"
    Wscript.Echo Bla-bla-bla
    End Select
    Next

     

    Условие не работает, попробывал так:

     

    On Error Resume Next
    dim objADSInfo, strUserDN, objUser
    Set objADSInfo = CreateObject("ADSystemInfo")
    strUserDN = objADSInfo.userName
    Set objUser = GetObject("LDAP://" & "strUserDN")  


    If IsMember(objUser, "bank\Group1") Then

    Wscript.Echo Bla-bla-bla
    end If

     

    Тоже не работает? ааааа, где не так?

    25 ноября 2008 г. 15:12
  • Пример приведенный _MaZaY_ работает, только имя группы надо указывать заглавными буквами (см. команду UCASE), без имени домена.
    25 ноября 2008 г. 15:20
  •  exebit написано:
    Пример приведенный _MaZaY_ работает, только имя группы надо указывать заглавными буквами (см. команду UCASE), без имени домена.

     

    У меня 40 доменов, как с группами с других доменов быть?

    Пример работает заглавными буквами, спасибо.

    25 ноября 2008 г. 15:23
  • Думаю это должно помочь

    Code Snippet

    GroupName="domen/group" 'название группы в формате domen/group


    set objNetwork=CreateObject("WScript.Network")
    set UserObj = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.UserName)
    set GroupObj = GetObject("WinNT://" & GroupName)

    For Each usr In GroupObj.members
    if lcase(UserObj.ADsPath)=lcase(usr.ADsPath) then Wscript.Echo "a member"
    Next





    26 ноября 2008 г. 9:14
  •  exebit написано:
    Думаю это должно помочь

    Code Snippet

    GroupName="domen/group" 'название группы в формате domen/group


    set objNetwork=CreateObject("WScript.Network")
    set UserObj = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.UserName)
    set GroupObj = GetObject("WinNT://" & GroupName)

    For Each usr In GroupObj.members
    if lcase(UserObj.ADsPath)=lcase(usr.ADsPath) then Wscript.Echo "a member"
    Next





    For Each usr In GroupObj.members - ругается на эту строчку (expected end of statement)


     

    26 ноября 2008 г. 10:57
  • Укажите, пожалуйста, Ваш код полностью, без купюр.
    26 ноября 2008 г. 11:22
  •  


    dim UserObj
    dim objNetwork
    Dim GroupObj
    GroupName="bank\group1" 'название группы в формате domen/group
    set objNetwork=CreateObject("WScript.Network")
    set UserObj = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.UserName)
    set GroupObj = GetObject("WinNT://" & GroupName)
    For Each Usr In GroupObj.members if lcase(UserObj.ADsPath)=lcase(usr.ADsPath) then Wscript.Echo "a member"
    Next
    26 ноября 2008 г. 11:40
  • В GroupName надо использовать слеш '/'  а не бакслеш '\'. Специально комментарий приписал!
    26 ноября 2008 г. 11:47
  •  exebit написано:
    В GroupName надо использовать слеш '/'  а не бакслеш '\'. Специально комментарий приписал!

    пробывал так и так та же ошибка

    26 ноября 2008 г. 12:05
  • VBScript не любит, когда убирают "лишние" переносы строки. Вот так надо писать:
    For Each Usr In GroupObj.members
    if lcase(UserObj.ADsPath)=lcase(usr.ADsPath) then Wscript.Echo "a member"

    26 ноября 2008 г. 12:12
  •  exebit написано:
    VBScript не любит, когда убирают "лишние" переносы строки. Вот так надо писать:
    For Each Usr In GroupObj.members
    if lcase(UserObj.ADsPath)=lcase(usr.ADsPath) then Wscript.Echo "a member"


     

    Жестячек )) спасибо

     

    dim UserObj
    dim objNetwork
    Dim GroupObj
    GroupName="bank/group1" 'название группы в формате domen/group
    set objNetwork=CreateObject("WScript.Network")
    set UserObj = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.UserName)
    set GroupObj = GetObject("WinNT://" & GroupName)
    For Each Usr In GroupObj.members
    If lcase(UserObj.ADsPath)=lcase(usr.ADsPath) Then Wscript.Echo "a member"
    Next

    26 ноября 2008 г. 12:32