Модифицировать PowerShell для отображения номера телефона в международном формате без изменения атрибутов AD? - PullRequest
0 голосов
/ 28 ноября 2018

Мне нужно изменить приведенный ниже код с некоторым форматированием кода зоны международного телефона из Active Directory без изменения фактического значения атрибута AD:

$defaultTelephone = '1800 552 001'

#Get Active Directory information for the currently logged on user
$sysInfo = New-Object -ComObject 'ADSystemInfo'
$userDN = $sysInfo.GetType().InvokeMember('UserName', 'GetProperty', $null, $sysInfo, $null)
$adUser = [ADSI]"LDAP://$($userDN)"
[void][Runtime.InteropServices.Marshal]::FinalReleaseComObject($sysInfo)

#Get the phone number from the Active Directory and assign it into the International phone country code format
$IntlPhoneNumber = $(If ($ADUser.telephoneNumber) { $ADUser.telephoneNumber.ToString() }
    Else { $defaultTelephone })

$IntlPhoneNumber

в приведенном выше сценарии, он извлекает информацию как естьАтрибуты AD, которые теперь установлены 08 8211 8911

То, что я хотел отобразить как значение $ IntlPhoneNumber , равно + 1 8 8211 8911

Так что мне нужно:

  • Добавить + 1 в качестве кода страны
  • Удалить 0 из переменной, но не удалить или изменить значение Active Directory.
  • Еслиномер телефона НЕ имеет вид 2-значный 4-значный 4-значный , затем отобразите его, так как нет необходимости менять код страны на +1 и удалять ноль.

1 Ответ

0 голосов
/ 28 ноября 2018

После прочтения номера из Active Directory проверьте, нужно ли его изменить, и сделайте это при необходимости.Таким образом, номер не будет изменен в Active Directory (в любом случае операция записи не выполняется):

$IntlPhoneNumber = "08 8211 8911"

if($IntlPhoneNumber -match '^\d{2}(\s\d{4}){2}$'){
    $IntlPhoneNumber = $IntlPhoneNumber -replace '^0', '+1 '
}

$IntlPhoneNumber # +1 8 8211 8911

RegEx ^\d{2}(\s\d{4}){2}$ соответствует только телефонным номерам в формате 2 цифры4 цифры 4 цифры .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...