Получить список с разделителями-запятыми, манипулировать значениями и заменить - PullRequest
0 голосов
/ 10 мая 2019

Я легко могу сделать это с помощью отдельных команд, экспортировав их в csv, а затем загрузив их обратно с измененными значениями, но выполнение этого в одном скрипте причиняет мне боль.А именно потому, что я не могу найти хороший ресурс / команду, которая может массово заменить значения в «памяти».Это очень простой в теории сценарий, но отсутствие навыков PS делает его немного сложнее.

Чтобы объяснить лучше, это с командами Skype ..

Get-CsTrustedApplicationEndpoint | select DisplayName, ApplicationId,  
      TrustedApplicationPoolFqdn, SipAddress, LineURI, DisplayNumber

Перечислим100+ результатов, и первые два объекта необходимо изменить.Начальный вывод может быть

DisplayName = "InitialSharedValue UniqueValue" (or "x y z") and 
SipAddress = "sip:InitialSharedValue.UniqueValue@domain.net" (or "sip:x.y@z")

, и их необходимо изменить на

DisplayName = "NewSharedValue UniqueValue" (or "c y z") and  
SipAddress = "sip:NewSharedValue.UniqueValue@domain.net" (or "sip:c.y@z")

В основном, поиск / замена значения x заменит оба значения x на c в обоих объектах.ApplicationId и TrustedApplicationPoolFqdn также необходимо изменить, но это может заменить целое значение.

В этот момент необходимо удалить старые результаты и добавить новые.Они не могут быть добавлены, пока старый не будет удален (уникальное значение для sip), и примерно через 3 минуты пройдет, чтобы очистить кеш.

Обычно делается с ..

Remove-CsTrustedApplicationEndpoint  "InitialSharedValue UniqueValue"

и

New-CsTrustedApplicationEndpoint -SipAddress sip:NewSharedValue.UniqueValue@domain.net -DisplayName "NewSharedValue UniqueValue" -ApplicationId urn:application:NewValue -TrustedApplicationPoolFqdn NewValue.domain.net -LineURI "tel:+11234567890" -DisplayNumber 123-456-7890

При использовании CSV я использовал:

Get-CsTrustedApplicationEndpoint | select DisplayName, ApplicationId, TrustedApplicationPoolFqdn, SipAddress, LineURI, DisplayNumber | export-csv -path c:\endpoints.csv -NoTypeInformation

Import-Csv C:\endpoints.csv | foreach {Remove-CsTrustedApplicationEndpoint $_.DisplayName}

Затем я нахожу / заменяю одно значение в CSV, затем,

Import-Csv C:\endpoints.csv | foreach {New-CsTrustedApplicationEndpoint -SipAddress $_.SipAddress -DisplayName $_.DisplayName -ApplicationId urn:application:NewValue -TrustedApplicationPoolFqdn NewValue.domain.com -LineURI $_.LineURI -DisplayNumber $_.DisplayNumber}

И этоЭто.Старые конечные точки удаляются, а новые добавляются с немного отличающимися отображаемыми именами и sipaddresses.

Существует Move-CsTrustedApplicationEdnpoint, но вы не можете манипулировать другими объектами, кроме poolfqdn.

Хорошо, может быть, это не так просто, как мне кажется?Задача для меня - сделать эти модификации.Я, вероятно, могу наткнуться на удаление, ожидание и повторное добавление.Я думал о том, чтобы выгрузить файл csv в любом случае во время процесса, просто чтобы создать резервную копию, поэтому я полагаю, что я мог бы сделать все это, используя модификацию Excel через powershell в качестве опции вместо этого?Я думаю, что это было бы немного более грязно, хотя.

Мысли?Беспорядки?Спасибо.

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