簡體   English   中英

Powershell 設置具有特定屬性的新用戶

[英]Powershell setting up a new user with a specific attribute

我有一個腳本可以創建可用於不同操作的新用戶。

Param(
[Parameter(Mandatory=$True,Position=1)]
  [string]$GivenName, #=givenName

[Parameter(Mandatory=$True,Position=2)]
  [string]$Name, # =sn

[Parameter(Mandatory=$True,Position=9)]
  [string]$ADuser, 

[Parameter(Mandatory=$True,Position=4)]
  [string]$Description, #=title


[Parameter(Mandatory=$True,Position=4)]
  [string]$AdministrationUser,

[Parameter(Mandatory=$True,Position=4)]
  [string]$SamAccManager
)

在這些參數之后我有一個新用戶名等等,但我想使用最后一個參數 SamAccManager 添加到 adminDisplayName,所以我可以搜索誰負責那個 AD 用戶,因為會有用戶擁有沒有登錄權限,僅用於測試目的。

new-aduser -name $DisplayName -DisplayName $DisplayName -Description $Description -GivenName $GivenName -Surname $Name -SamAccountName $usr -UserPrincipalName $UserPrincipalName -Path $OU_AD

如何集成以將該信息添加到特定的 adminDisplayName 字段中? 例如,我想在最后一段代碼中添加 -admindisplayname $samaccmanager,但我不能這樣做,因為它是無效參數。 有任何想法嗎?

我注意到的第一件事是您將Position的重復值添加到參數中。 此外,還有一個您似乎沒有使用的參數: $AdministrationUser並且就個人而言,我會更改其中一些參數的名稱,以便更清楚它們代表什么。

下面的代碼使用Splatting將參數提供給 New-ADUser cmdlet。 這是調用具有許多屬性的 cmdlet 的一種很好的可讀性和可維護性。

Param(
    [Parameter(Mandatory=$True,Position=0)]
    [string]$GivenName,    # =givenName

    [Parameter(Mandatory=$True,Position=1)]
    [string]$SurName,      # =SurName

    [Parameter(Mandatory=$True,Position=2)]
    [string]$AccountName,  # =SamAccountName

    [Parameter(Mandatory=$True,Position=3)]
    [string]$Description,  # =title

    [Parameter(Mandatory=$True,Position=4)]
    [string]$OU,           #= distinguishedName of the OU

    [Parameter(Mandatory=$True,Position=5)]
    [string]$SamAccManager #= AdminDisplayName
)

# create a hashtable for the New-ADUser parameters
$userParams = @{
    Name              = "$GivenName $SurName"
    DisplayName       = "$GivenName $SurName"
    Description       = $Description
    GivenName         = $GivenName
    Surname           = $SurName
    SamAccountName    = $AccountName
    UserPrincipalName = "$AccountName@yourdomain.com"
    Path              = $OU
    # add the AdminDisplayName attribute as hashtable
    OtherAttributes   = @{AdminDisplayName = $SamAccManager}
}

# create the user by splatting the parameters
New-ADUser @userParams

當然,你也可以在創建用戶后設置 AdminDisplayName 屬性,使用

Set-ADuser -Identity $AccountName -Add @{AdminDisplayName = $SamAccManager}

暫無
暫無

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

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