Function SetPersonAttributes
{
[CmdletBinding()]
Param (
[Parameter(Mandatory=$true)][string]$PersonID,
[Parameter(Mandatory=$false)][string]$FirstName,
[Parameter(Mandatory=$false)][string]$MiddleName,
[Parameter(Mandatory=$false)][string]$LastName,
[Parameter(Mandatory=$false)][string]$FullName,
[Parameter(Mandatory=$false)][string]$UserLogonName,
[Parameter(Mandatory=$false)][string]$EmployeeNumber,
[Parameter(Mandatory=$false)][string]$EmailAddress
)
If ($FirstName)
{
$Body = @{
name = FirstName
textValue = @{
value = $FirstName
}
}
$SetPersonAttributes = id_query -action SetPersonAttributes -PersonID $PersonID -Body $Body
}
If ($LastName)
{
$Body = @{
name = LastName
textValue = @{
value = $LastName
}
}
$SetPersonAttributes = id_query -action SetPersonAttributes -PersonID $PersonID -Body $Body
}
SetPersonAttributes -PersonID "1234" -FirstName "John" -LastName "Doe" -EmployeeID "9876"
Я пытаюсь создать общий сценарий, который можно использовать во многих средах.Проблема с подходом выше состоит в том, что имена атрибутов не обязательно одинаковы в каждой среде.Например, в одной среде это может быть «FirstName», а в другой «Firstname» или «EmployeeNumber» и «EmployeeID»
И для каждого атрибута должен быть создан оператор IF.Не очень масштабируемо.
Поэтому я изучаю создание функции, которая принимает общие параметры.например,
SetPersonAttributes -PersonID "1234" -AttributeName "FirstName" -Value "John" -AttributeName "Lastname" -Value "Doe" -AttributeName "EmployeeID" -Value "9876"
Я не уверен, как начать.Я читал о PowerShell, но я не уверен, что это правильный подход.
Кто-нибудь, кто может подтолкнуть меня в правильном направлении или есть пример того, как этого добиться?
Thx!