Как настроить скрипт PowerShell, добавляющий группы AD в ПК / учетные записи пользователей в домене? - PullRequest
0 голосов
/ 05 декабря 2018

Ниже приведено то, что я написал (цель, если добавить группы AD к указанным параметрам - имени компьютера и имени пользователя).У меня есть отдельный скрипт модуля AD, который успешно импортирован.Но скрипт ниже не работает.Коллега упомянул, что мне нужно сделать ссылку на домен нашей компании.Я добавил информацию, такую ​​как ниже (информация LDAP, но только информация о заполнителе там сейчас).Что еще нужно, чтобы это работало с нашей средой домена AD?

[ADSI] "LDAP://cn=VPNAdminUsers,ou=West,dc=MyDomain,dc=com


function Add-DevADGroup {

try {
    param (
        [Parameter(Mandatory = $True)]
        [string] $ComputerName,
        [Parameter(Mandatory = $True)]
        [string] $UserName
    )

[string]$LocalAdmin = (Get-ADGroup -Identity [ADSI] "LDAP://cn=GPP Computer Local Admin Exception,ou=West,dc=MyDomain,dc=com").DistinguishedName
[string]$RDP = (Get-ADGroup -Identity [ADSI] "LDAP://cn=GPP Computer RDP,ou=West,dc=MyDomain,dc=com").DistinguishedName
[string]$RDPException = (Get-ADGroup -Identity [ADSI] "LDAP://cn=GPP Computer RDP Exception,ou=West,dc=MyDomain,dc=com").DistinguishedName
[string]$VPNAdminUsers = (Get-ADGroup -Identity [ADSI] "LDAP://cn=VPNAdminUsers,ou=West,dc=MyDomain,dc=com").DistinguishedName

    $ADGroups = @()
    $ADGroups.Add($LocalAdmin)
    $ADGroups.Add($RDP)
    $ADGroups.Add($RDPException)


foreach ($group in $ADGroups){
            Add-ADPrincipalGroupMembership -Identity $ADGroups -Members $ComputerName
            Write-Output ("{0} has been added to {1}" -f $group.Name, $ComputerName)
    }

if ($ComputerName.Substring($ComputerName.Length -1) -match "L") {
            Add-ADGroupMember -Identity $VPNAdminUsers -Members $UserName
            Write-Output ("VPNAdminUsers has been added to {0}" -f $UserName)
    }

    Catch {

    Write-Error "Unable to add all members to the specified AD Group(s)." -verbose

    }
}
}

Add-DevADGroup

1 Ответ

0 голосов
/ 05 декабря 2018

Если он должен работать в вашей среде, то лучший способ проверить это - запустить его в вашей среде.Большинство командлетов PowerShell имеют параметр -WhatIf, который указывает, что он будет работать, но на самом деле ничего не изменится.Таким образом, для тестирования вы можете добавить это в любой командлет, который обычно что-то меняет.Например:

Add-ADPrincipalGroupMembership -Identity $ADGroups -Members $ComputerName -WhatIf

Затем, как только скрипт запустится без ошибок, вы можете удалить -WhatIf и запустить его по-настоящему.

Тем не менее, я могу сказать, что у вас есть впо крайней мере, пара синтаксических ошибок, которые могут помешать этому вообще:

  1. Вы пропускаете заключительную кавычку в первой строке, и
  2. Вы пропускаете }до Catch (похоже, что один из блоков под блоком Catch должен быть перемещен вверх)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...