[英]How do I set up a PowerShell script adding AD groups to PCs/user accounts in domain?
以下是我編寫的腳本(目的是是否將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
如果它需要在您的環境中工作,那么最好的測試方法是在您的環境中運行它。 大多數PowerShell cmdlet都有-WhatIf
參數來告訴它以確保它可以工作,但實際上並未進行任何更改。 因此,為了進行測試,可以將其添加到通常會更改某些內容的任何cmdlet中。 例如:
Add-ADPrincipalGroupMembership -Identity $ADGroups -Members $ComputerName -WhatIf
然后,一旦腳本運行無誤,您可以刪除-WhatIf
並對其進行實際運行。
就是說,我可以告訴您,至少有一些語法錯誤會完全阻止它運行:
Catch
之前缺少}
(似乎應該將Catch
塊下面的其中一個向上移動)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.