Сценарий обновления номера факса, как отменить? - PullRequest
0 голосов
/ 25 января 2019

Я создал скрипт, который позволял бы добавлять значения «1-» в начало наших текущих номеров факсов AD.Я запускаю это в тестовой среде, и скрипт запускается именно так, как я хочу.Я ищу восстановление после сбоя, и мне не удается заставить этот сценарий удалить «1-», вместо этого он удаляет 1 из начала и последнего номера из конца факса, поэтому вывод выглядит так: «-(###) - ### - ### "вместо того, чтобы выглядеть как правильный числовой формат" (###) - ### - #### "

Get-ADUser -Filter {facsimileTelephoneNumber -like "*"} -Properties facsimileTelephoneNumber| foreach {Set-ADUser -Identity $_ –replace @{facsimileTelephoneNumber="1-$($_.facsimileTelephoneNumber)"}}


Get-ADUser -Filter {facsimileTelephoneNumber -like "*"} -Properties facsimileTelephoneNumber| foreach {Set-ADUser -Identity $_ –replace @{facsimileTelephoneNumber="$(($_.facsimileTelephoneNumber).Substring(1,($_.facsimileTelephoneNumber.length) -2 ))"}}

1 Ответ

0 голосов
/ 26 января 2019

После моего ответа на ваш предыдущий вопрос, где 1- равно , добавлено к номеру факса, вы можете изменить это.

Я вижу в вашем вопросе, что вы пытаетесь сделать все это в одну строку, тем самым упуская все возможности для проверки вашего кода шаг за шагом. Использование первого oneliner в вашем вопросе также добавляет 1- к простому каждому найденному факсимильному номеру , независимо от того, нужен он или нет.

Особенно, когда вы только запускаете PowerShell, писать вещи - это хорошо.

Сказав это, вот код для удаления начальных 1- из номеров факсов

# Remove leading '1-' from ADUsers faxnumbers

Import-Module ActiveDirectory

# get all users in the specified OU that have a fax number starting with '1-'
Get-ADUser -LdapFilter '(facsimileTelephoneNumber=1-*)' -SearchBase 'OU=UserAccounts,DC=YourDomain,DC=com' -Properties 'Fax' | ForEach-Object {
    # using Substring() to remove the first two characters. See: https://ss64.com/ps/substring.html
    $newFax = ($_.Fax).Substring(2)
    Write-Host "Setting Faxnumber to '$newFax' for user $($_.Name)"
    # remove the '-WhatIf' if you are sure the number may be changed
    $_ | Set-ADUser -Fax $newFax -WhatIf
}

Надеюсь, это поможет

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