首页 > 解决方案 > 如何在powershell中将电话号码附加到国家代码

问题描述

我正在尝试创建脚本,该脚本将根据 Active Directory 中的国家/地区代码为用户显示正确的支持电话号码

$data = Get-ADUser $user -Properties * | Select-Object DisplayName, Country

它将根据用户的位置显示国家代码,例如 DE 或 NL。

我有大约 100 个电话号码保存为变量:

$Belgium = "Dutch support (+32) 270891501, French support (+49) 231967383987)"
$Brasil = "(Brasil) +46 42 44647 120"
$Canada = "FR Support: ​*844-66-HELPU (+1 8446643578)"
$Czech = "*55555 (+420 2345 585555)"
$China = "*119 or (021)333974899" ```

如何将用户的国家代码与适当的国家电话号码相匹配?我在想 if (($data.Country -like "*CN*")) {

Write-Host "$China" -ForegroundColor Green

但这很耗时。也许还有另一种调整脚本的方法?

标签: powershell

解决方案


除了变量,您可以创建一个哈希表,其中国家代码与电话号码匹配,如下所示

$countries = @{
    'be' = 'Dutch support (+32) 270891501, French support (+49) 231967383987)'
    'br' = 'Brasil) +46 42 44647 120'
    'ca' = 'FR Support: ​*844-66-HELPU (+1 8446643578)'
    'cz' = '*55555 (+420 2345 585555)'
    'ch' = '*119 or (021)333974899'
}

然后,您的 AD 选择可以在选择中使用此哈希表,就像对 Theo 的 cudo 一样,以进行性能优化

$data = Get-ADUser $user -Properties DisplayName, Country |
           Select-Object DisplayName, Country, @{n='tel';e={$countries[$_.Country]}}

推荐阅读