none
Скрипт добавления новых пользователей в группу RRS feed

  • Вопрос

  • Добрый день! Появилась необходимость создания скрипта, который бы включал новых пользователей определенного контейнера в определенную группу. Необходимо для обновления  RODC Password Replication Group, может каким-нибудь другим путем можно решить вопрос?

    Спасибо!


    • Изменено ska84 15 мая 2012 г. 12:20 описка

Ответы

  • На VBScript это выглядит примерно так:

    On Error Resume Next

    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

    objCommand.CommandText = _
        "SELECT ADsPath FROM 'LDAP://ou=RODC-OU,dc=YourDomain,dc=COM' WHERE objectCategory='user' "
    Set objRecordSet = objCommand.Execute

    objRecordSet.MoveFirst

    Set objGroup = GetObject _
        ("LDAP://cn=RODC-Group,ou=OUwithGroup,dc=YourDomain,dc=COM")

    Do Until objRecordSet.EOF
        objGroup.Add(objRecordSet.Fields("ADsPath").Value)
        objRecordSet.MoveNext
    Loop


    • Изменено Evgenii Alekseev 15 мая 2012 г. 12:24
    • Помечено в качестве ответа ska84 15 мая 2012 г. 13:11
  • вот веть не лень велосипед изобретать:

    C:\Windows\system32>dsmod group /?

    ~~~~BLA-BLA-BLA~~~~

    To add all users from the OU "Marketing" to the exisitng group
    "Marketing Staff":

    dsquery user ou=Marketing,dc=microsoft,dc=com | dsmod group "cn=Marketing Staff,ou=Marketing,dc=microsoft,dc=com" -addmbr

    ~~~~BLA-BLA-BLA~~~~


Все ответы

  • На VBScript это выглядит примерно так:

    On Error Resume Next

    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

    objCommand.CommandText = _
        "SELECT ADsPath FROM 'LDAP://ou=RODC-OU,dc=YourDomain,dc=COM' WHERE objectCategory='user' "
    Set objRecordSet = objCommand.Execute

    objRecordSet.MoveFirst

    Set objGroup = GetObject _
        ("LDAP://cn=RODC-Group,ou=OUwithGroup,dc=YourDomain,dc=COM")

    Do Until objRecordSet.EOF
        objGroup.Add(objRecordSet.Fields("ADsPath").Value)
        objRecordSet.MoveNext
    Loop


    • Изменено Evgenii Alekseev 15 мая 2012 г. 12:24
    • Помечено в качестве ответа ska84 15 мая 2012 г. 13:11
  • Спасибо! Пока вроде работает. Буду тестировать.
  • вот веть не лень велосипед изобретать:

    C:\Windows\system32>dsmod group /?

    ~~~~BLA-BLA-BLA~~~~

    To add all users from the OU "Marketing" to the exisitng group
    "Marketing Staff":

    dsquery user ou=Marketing,dc=microsoft,dc=com | dsmod group "cn=Marketing Staff,ou=Marketing,dc=microsoft,dc=com" -addmbr

    ~~~~BLA-BLA-BLA~~~~


  • Вариант на Powershell:

    Get-ADUser -Filter * -SearchBase "ou=Marketing,dc=microsoft,dc=com" | % { Add-ADGroupMember -Identity "cn=Marketing Staff,ou=Marketing,dc=microsoft,dc=com" -Members $_}


    Сазонов Илья http://isazonov.wordpress.com/

    Модератор