PowerShell взять последние 4 символов

Нужно из телефонного номера вырезать последние четыре цыфры добавочного номера и вставить их в аргемент ip телефон. Сам телефон записан так +7 495 xxxxxxx-xxxx. Пробовал -replace '*.-','', но без успешно

Get-ADUser -SearchBase "DC=omnicare,DC=int" -Filter "telephoneNumber -like '+7 495*'" -Properties telephoneNumber |
ForEach-Object {
    $User = $_

    $telephoneNumber = $User.telephoneNumber -replace '*.-',''
   

    Set-ADUser -Identity $User.DistinguishedName -Replace @{IPPhone=$IPPhoneNumber}

}

Ответы (2 шт):

Автор решения: PotroNik

Парочку способов как бы это сделал, в примере использовал стринг:

$telephoneNumber = "+7 495 1234567-8910"

Первый вариант, преобразовать в массив, используя разделитель - и использовать второй элемен массива с индексом 1

$telephoneNumber.Split("-")[1]

PS C:\Users\Root> $telephoneNumber.Split("-")[1]
8910


Второй вариант, удалить необходимое количество символов от начала строки, в данном случае 15

$telephoneNumber.Substring(15)

PS C:\Users\Root> $telephoneNumber.Substring(15)
8910


Можно еще так же распечатать с конца 4 последних символа

$OFS=''; [string]$telephoneNumber[-4..-1]
#Вернуть OFS при необходимости, по умолчанию является пробелом
$OFS = " "

$OFS=''; [string]$telephoneNumber[-4..-1]
8910

Для чего нужно менять системную переменную OFS. Связано это с тем, что строка преобразовывается в массив и печатаются элементы с конца строки, т.е. каждый элемент при печати будет на следующей строке, поэтому мы тип данных [string] и меняем разделитель на пустоту, иначе получим элементы перечисленные через пробел 8 9 1 0

→ Ссылка
Автор решения: Алексей Семенов

до кучи

(([regex]"\d{4}$").Matches("+7 495 1234567-8910")).Value

Для решения данной задачи можно использовать регулярные выражения.
Регулярные выражения

Паттерн "\d{4}$" означает “точно четыре цифры за которыми идет окончание строки”

Обращение к объекту в скобках позволят обратиться к создаваемому объекту сразу, без его объявления ([regex]“\d{4}$”) получаем объект “System.Text.RegularExpressions“, обращаемся к его методу Matches получаем экземпляр класса ”Match”, в котором содержаться строки совпадающие с шаблоном, заключаем его в скобки и забираем свойство “Value” профит.

→ Ссылка