下面的函数应该将传递的参数和值添加到哈希表中,以便稍后在设置实际属性时使用。. . 由于我无法理解的原因,哈希表只显示一次,只有一组属性。
我试图让它为每个用户传递所有的值,但它只为一个用户做。
Function Change-DRAUserProperty {
Param (
[Parameter(Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[string[]]$UserName,
$Company,
$Department,
$DisplayName,
$Name,
$O,
$PhysicalDeliveryOfficeName,
$TelephoneNumber,
$Title
)
Begin
{
$OrgBoxOu = "*OU=XX, DC=XX"
$Parameters = $PSBoundParameters
$Properties = @{}
}
Process
{
foreach ($User in $UserName)
{
try {
$SelectedUser = $User
if ($SelectedUser) {
$Parameters.GetEnumerator() | Where-Object Key -ne 'UserName' |
ForEach-Object -Process `
{
if ($_.Key -eq 'DisplayName' -and $SelectedUser.DistinguishedName -notlike $OrgBoxOu) {
$Properties.Add('FirstNamePreferred', $_.Value)
}
$Properties.Add($_.Key, $_.Value)
}
$Properties
#Set-DRAUser -Identifier $SelectedUser.DistinguishedName -Properties $Properties @DRA_Server_Splat -ErrorAction Stop
}
else {
Write-Host -Object "No valid member selected!"
}
}
catch {
Write-Host -Object "$($_.Exception.Messge)" -ForegroundColor Red -BackgroundColor Black
continue
}
}
}
End { }
}
使用命令行参数:Change-DRAUserProperty -UserName Abe, Abe2, Abe3 -Company SSC -Department USSF
. . .only 显示:
Name Value
---- -----
Department USSF
Company SSC
而不是每个用户传递一个(结果应该是什么):
Name Value
---- -----
Department USSF
Company SSC
Name Value
---- -----
Department USSF
Company SSC
Name Value
---- -----
Department USSF
Company SSC
不太确定我可能做错了什么,我可以让其他人看看并指出我的错误吗?
我要疯了伙计们?