Мне нужно изменить приведенный ниже код с некоторым форматированием кода зоны международного телефона из 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 и удалять ноль.