参数和空字符串问题

参数和空字符串问题

创建以下脚本以从 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):

在此处输入图片描述

  1. 对于第一个错误A parameter cannot be found the matches parameter name 'Encoding'.,“PowerShell 3.0 中引入了参数 -Encoding“:来源因此,如果您的 PowerShell 版本低于 3.0,则无法使用此参数,您需要在脚本中删除它或升级 PowerShell 版本。

  2. 对于第 2 和第 3 个错误,似乎与 .csv 文件的格式有关。请检查您的 .csv 文件的格式是否正确,转换为 .txt 后的 .csv 文件应如下所示("Object1", "Object2"):

在此处输入图片描述

  • 我的测试结果(格式正确)没有参数,-Encoding供大家参考:

在此处输入图片描述

编辑:但是,有两个属性()无法通过Get-Mailboxcmdlet,您需要运行以下命令来找到它们:

$roomlist = Import-csv C:\temp\rooms.csv
foreach($room in $roomlist){Get-ADUser -Identity $room.Fullname -Properties * | Select Name, GivenName, SN}

在此处输入图片描述

相关内容