簡體   English   中英

PowerShell-將新用戶添加到選擇的AD組

[英]PowerShell - Adding New User to Selection of AD Groups

我創建了一個表單來創建新的AD帳戶。 腳本的一部分根據新用戶的角色(醫生,護士,管理員或其他)確定新用戶要添加到的組,該角色在以下代碼中以下拉選擇框的形式捕獲:

Write-Host "Based on this information" $FFN "has been added to the following Active Directory Groups:"
Write-Host 

$ADGroup01 = Get-ADGroup "_XA_App_XenApp" |select -expandproperty name -first 1
Write-Host $ADGroup01
$ADGroup02 = Get-ADGroup "Web Proxy Users" |select -expandproperty name -first 1
Write-Host $ADGroup02
if($RadioButton1.Checked -eq $true)
    {
    $ADGroup03 = Get-ADGroup "allrot" |select -expandproperty name -first 1
    Write-Host $ADGroup03
    }
Else
    {
    $ADGroup03 = Get-ADGroup "alltpo" |select -expandproperty name -first 1
    Write-Host $ADGroup03
    }
if ($Role -eq "Doctor" -Or $Role -eq "Nurse")
    {
    $ADGroup04 = Get-ADGroup "PACS Web Access" |select -expandproperty name -first 1
    Write-Host $ADGroup04
    }
if ($Role -eq "Doctor")
    {
    $ADGroup05 = Get-ADGroup "CH-MFD" |select -expandproperty name -first 1
    Write-Host $ADGroup05
    $ADGroup06 = Get-ADGroup "ED-MFP" |select -expandproperty name -first 1
    Write-Host $ADGroup06
    $ADGroup07 = Get-ADGroup "SU-MFD" |select -expandproperty name -first 1
    Write-Host $ADGroup07
    }
Write-Host 

在腳本中,進一步在實際帳戶創建過程中調用以下代碼:

Add-ADPrincipalGroupMembership -Identity $UN -memberof $ADGroup01, $ADGroup02, $ADGroup03, $ADGroup04, $ADGroup05, $ADGroup06, $ADGroup07

我面臨的問題是,如果用戶選擇Nurse,Admin或Other,則會出現以下錯誤:

“ Add-ADPrincipalGroupMembership:無法驗證參數'MemberO f'上的參數。參數為null,空或參數集合的元素包含空值。提供不包含任何空值的集合,然后嘗試命令再次。”

我知道這是因為在最后的$ ADGroup [x]中沒有捕獲任何值,並且缺少創建一堆if語句來檢查每個$ ADGroup是否包含數據的問題,我想知道是否有更優雅的解決方案。

與往常一樣,感謝您抽出寶貴時間進行審核,並樂意在需要時提供更多信息。

更新-根據@Martin的建議,我已在腳本中實現以下代碼

$UN = "zooz"
$Role = "Nurse"
$Department = "Surgical"

If ($Role -eq "Doctor" -and $Department -eq "Surgical")
{
$ADGroups = @(
"PACS Web Access"
"CH-MFD"
"ED-MFP"
"SU-MFD"
)
}

If ($Role -eq "Nurse" -and $Department -eq "Surgical")
{
$ADGroups = @(
"_XA_App_XenApp"
"Web Proxy Users"
"allrot"
)
}

for ($i=0; $i -lt $ADGroups.length; $i++) {
Add-ADPrincipalGroupMembership -Identity $UN -memberof $adgroups[$i] 
}

創建一個對象$adgroups並向其中添加所需的組。

$adgroups = @()

最后使用foreach循環:

$adgroups | Add-ADPrincipalGroupMembership -Identity $UN $adgroups | Add-ADPrincipalGroupMembership -Identity $UN或(天氣不是cmdlet喜歡管道輸入)

$adgroups | % { Add-ADPrincipalGroupMembership -Identity $UN -memberof $_ }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM