Я кодирую индикатор выполнения для своего сценария, и я столкнулся с проблемой, когда строка подается данные в неправильном формате.
foreach ($User in $Users) {
#Set UserPrincipalName for current user
$upn = $User
#Display progress bar
$percentage = [math]::Round($loopcount / $maxcount *100)
$message = "Applying changes for $upn ($loopcount of $maxcount)" -f $percentage
Write-Progress -Activity $message -ErrorAction SilentlyContinue -PercentComplete ($percentage) -Status "Progress $percentage% :"
Это основная частькод, который составляет индикатор выполнения (есть еще, но это не имеет значения). Он отлично работает, когда ему подают идентификационные данные пользователя (через $User
), такие как «delat» и «damo», но когда он попадает к пользователю с именем «DiscoverySearch {D919BA05-46A6-415f-80AD-XXXXXXXXXXXXXXXX}», он по понятным причинам выдаетошибка «Ошибка форматирования строки».
Как мне решить эту проблему?
Редактировать: Ниже приведен источник $User
, если этонеобходимо.
$MailboxRegionList = Get-Mailbox | Get-MailboxRegionalConfiguration
$Users += $MailboxRegionList | Select-Object -ExpandProperty Identity