创建以下脚本以从 CSV 创建多个房间邮箱,但出现以下错误:
- 找不到与参数名称“Encoding”匹配的参数。
- 无法将参数绑定到参数“名称”,因为它是一个空字符串。
- 无法对参数“Identity”进行争论,因为它为空。
$roomlist = Import-csv C:\temp\rooms.csv -Encoding ASCII
$orgunit = "OU=************"
foreach($room in $roomlist){
$roomname = $room.Fullname
#write-host $roomname
$first = $room.Site
$last = $room.Room
$capacity = $room.cap
$mailalias = $room.Fullname -replace '\W',''
$mail = $mailalias + "@***email address***"
$samaccountname = $room.samaccountname
$upnname = $samaccountname + "@***email address***"
#write-host $roomname $mail $capacity $mailalias $samchop
write-host $samaccountname
New-Mailbox -Name $roomname -Room -SamAccountName $samaccountname -FirstName $first -LastName $last -UserPrincipalName $upnname -PrimarySmtpAddress $mail -alias $mailalias -ResourceCapacity $capacity -Database 'DBNAME' -OrganizationalUnit $orgunit
#set-CalendarProcessing $roomname -AutomateProcessing autoaccept
Set-Mailbox -HiddenFromAddressListsEnabled $true -Identity $roomname
}
答案1
你的 PowerShell 版本是多少?运行命令Get-Host
认为(Version
):
对于第一个错误
A parameter cannot be found the matches parameter name 'Encoding'.
,“PowerShell 3.0 中引入了参数 -Encoding“:来源因此,如果您的 PowerShell 版本低于 3.0,则无法使用此参数,您需要在脚本中删除它或升级 PowerShell 版本。对于第 2 和第 3 个错误,似乎与 .csv 文件的格式有关。请检查您的 .csv 文件的格式是否正确,转换为 .txt 后的 .csv 文件应如下所示(
"Object1", "Object2"
):
- 我的测试结果(格式正确)没有参数,
-Encoding
供大家参考:
编辑:但是,有两个属性(名和姓)无法通过Get-Mailbox
cmdlet,您需要运行以下命令来找到它们:
$roomlist = Import-csv C:\temp\rooms.csv
foreach($room in $roomlist){Get-ADUser -Identity $room.Fullname -Properties * | Select Name, GivenName, SN}