Я легко могу сделать это с помощью отдельных команд, экспортировав их в 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 в качестве опции вместо этого?Я думаю, что это было бы немного более грязно, хотя.
Мысли?Беспорядки?Спасибо.