Как получить информацию об отделе из Active Directory с помощью VBScript? - PullRequest
0 голосов
/ 21 сентября 2018

Я не являюсь сценарием, просто специалист по сети, пытающийся получить информацию о домене.

У меня есть домен с несколькими подразделениями, как обычно, с несколькими группами безопасности.Я пытаюсь заполнить поле «Отдел:» (на вкладке «Организация») учетной записи пользователя в AD на основании того, что он является членом определенных групп безопасности в домене.

Код, который я использую, находится здесь:

{
On Error Resume Next

Set objGroup = GetObject _
    ("LDAP://CN=LiveTimeCustomers,OU=Service Accounts,DC=domain,DC=com", group)
' WScript.Echo objGroup.Name

For Each objMember In objGroup.Members
    ' WScript.Echo vbCrlf & "    Name: " & objMember.Name
    arrGroups = objMember.GetEx("memberOf")
    If (Err.Number = 0) Then
        On Error GoTo 0 
          strGroups = LCase(Join(arrGroups))
' Update Department attribute for COMMUNITY SECTION members           

        If InStr(strGroups, "cn=community section,ou=community,ou=organisation,dc=domain,dc=com") Then 
            ' WScript.Echo vbCrlf & "    Name: " & objMember.Name & " is member of COMMUNITY SECTION"
            Set objUser = GetObject(objMember.ADsPath)
            objUser.department = "COMMUNITY SECTION"
            objUser.SetInfo
        End If

}

Ошибка, которую я получаю при запуске:

Строка: 23 Char: 5 Не удалось найти свойство каталога в кэше.Строка и символ ссылаются на это: arrGroups = objMember.GetEx ("memberOf")

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Ответ на это не делать это в VBScript!В любом случае, спасибо за помощь.После того, как я посоветовал обновить этот скрипт до Powershell, я сделал это.Мне нужно было запустить скрипт запуска, чтобы запустить PS от имени администратора, и вызвать скрипт, с помощью которого я хочу редактировать AD.

Запустить скрипт: Start-Process powershell '-NoProfile -File \\domain.com\SYSVOL\domain.com\scripts\SetDepartmentAttribute.ps1' -verb RunAs

Код Active Directory:

    `Import-Module ActiveDirectory

Get-ADGroupMember -Identity "COMMUNITY"| Set-ADUser -Replace @{Department="COMMUNITY"}`

Все это обеспечивает вашу политику выполнения на DC, позволяющую запускать сценарии - проверьте это.

0 голосов
/ 21 сентября 2018

Я не могу проверить AD на этом оборудовании.Однако, как я описал в этом ответе: Чтение следующей строки из файла данных VB Script эта библиотека сэмплов может помочь вам.

Верхкатегория " Active Directory ", как вы увидите. Может ли этот конкретный скрипт помочь ?

Я приведу пример скрипта для справки:

' List All the Members of a Group
On Error Resume Next

Set objGroup = GetObject _
  ("LDAP://cn=Scientists,ou=R&D,dc=NA,dc=fabrikam,dc=com")
objGroup.GetInfo

arrMemberOf = objGroup.GetEx("member")

WScript.Echo "Members:"
For Each strMember in arrMemberOf
    WScript.echo strMember
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...