如何更改大量共享邮箱的显示名称? 加重问题

我必须将大量共享邮箱重新命名为新格式,该脚本已准备就绪并可以正常工作,但脚本运行时,包含重音的名称未被正确更新,并且重音应该存在的地方会显示问号。

– – – – – – – – – – – – – – – – – – – – -input文件:

name,NewName BMS-cipatubarao,"CIPA Tubarão" BEL-liberacaeodelimbo-amd,"Liberação AMD" 

– – – – – – – – – – – – – – – – – – – – -脚本:

 $sharedChange = Import-Csv .\"SHAREDchange.csv" $sharedChange | foreach{ $sharedName = $_.name $sharedNewName = $_.newname try { # Change the DisplayName on Services Domain set-user $sharedname -displayname $sharedNewName "$(get-date -f MM/dd/yyyy-HH:mm:ss), $sharednewname, modified on, $sharedname`n" | out-file '.\SharedSuccess.txt' -append } catch { "$(get-date -f MM/dd/yyyy-HH:mm:ss), $sharednewname, NOT modified on, $sharedname`n" | out-file '.\SharedFailed.txt' -append } } 

– – – – – – – – – – – – – – – – – – – – -输出文件:

 09/04/2017-17:47:12, CIPA Tubar o, modified on, cipatubarao 09/04/2017-17:47:14, Libera  o AMD, modified on, liberacaeo-amd 

我该怎么办? 我已经尝试直接在我的shell上使用set-mailbox liberacaeo-amd -displayname "Liberação AMD"来使用命令,它可以工作,但是由于我有一批共享邮箱来执行这个更改,这是完全没有问题的。

起初,你真的应该停止使用这样的特殊字符,因为你已经看到这将是一个问题,当涉及到脚本…所以当你开始实施一个新的名称模式,确保这将消除这样丑陋的特殊字符。

1.)确保您的input格式具有正确的编码(例如带有BOM的UTF-8)

2.)你可以尝试转换它们:

  function ConvertTo-Encoding ([string]$From, [string]$To){ Begin{ $encFrom = [System.Text.Encoding]::GetEncoding($from) $encTo = [System.Text.Encoding]::GetEncoding($to) } Process{ $bytes = $encTo.GetBytes($_) $bytes = [System.Text.Encoding]::Convert($encFrom, $encTo, $bytes) $encTo.GetString($bytes) } } [System.Text.Encoding]::Default.Codepage $Title = "Liberação Tubarão" | ConvertTo-Encoding "UTF-8" "windows-1251" Write-Host $Title $Title = $Title.Replace(("Liberação" | ConvertTo-Encoding "UTF-8" "windows-1251"), "") Write-Host $Title 

3)你可能会尝试设置编码为UTF8首先通过(更多信息在这里 ):

 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 

Powershell 3.0及更高版本:

 $PSDefaultParameterValues['*:Encoding'] = 'utf8' 

感谢您的支持。 我已经做了一些testing,发现在input过程中,名称出错了,所以我把input文件保存为.csv UNICODE UTF-8。 再次testing,现在一切正常。 不知道,但现在是固定的。

谢谢!

更多信息: http : //blogs.catapultsystems.com/thernandez/archive/2015/09/20/how-to-export-and-import-foreign-characters-with-powershell/