将哈希表值写入属性

时间:2017-04-28 17:42:47

标签: powershell

Powershell新手在这里,我的第一个剧本。

我的用户对象具有名为tvCode的AD自定义属性,其值为123456或6787682或983736等。

我想编写一些可以从用户对象中获取tvCode值的脚本

   When:
           123456 = Sony 

           6787682 = Samsung

           9837343 = LG

写下" Sony"的价值或"三星"或" LG"到了城市"用户对象的属性。

看起来我可能需要使用哈希表。

如果可能,请针对特定OU执行此操作

希望这是有道理的

感谢

1 个答案:

答案 0 :(得分:1)

function Convert-TVCode {
    Param
    (
    [parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true)]
    [String[]]
    $Code
    )
    Process {
        foreach ($C in $Code) {
            switch ($C) {
                "123456" {$brand = "Sony"}
                "6787682" {$brand = "Samsung"}
                "9837343" {$brand = "LG"}
                default {
                    $brand = $null
                    Write-Warning "$C not included in switch statement. Returning"
                    return
                }
            }
            if ($brand) {
                Write-Verbose "Code '$C' matched to Brand '$brand' -- searching for users to update"
                Get-ADUser -Filter "tvCode -eq '$C'" | Set-ADUser -Replace @{tvCode=$brand}
            }
        }
    }
}

此功能允许您更新将tvCode属性设置为目标数值之一的任何用户。您也可以同时点击多个代码。

示例:

Convert-TVCode -Code 123456
Convert-TVCode -Code 123456,6787682
Convert-TVCode -Code 123456,6787682,9837343 -Verbose

更新函数中的switch语句,将其自定义为您的实际值,如果您有任何问题,请告诉我们!