Powershell

參數和空字元串問題

  • April 27, 2021

創建了以下腳本以從 CSV 創建多個房間郵箱,但出現以下錯誤:

  • 找不到與參數名稱“編碼”匹配的參數。
  • 無法將爭論綁定到參數“名稱”,因為它是一個空字元串。
  • 無法與參數“身份”爭論,因為它為空。
$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
}

你的 PowerShell 的版本是什麼?執行命令**Get-Host** 查看(Version):

在此處輸入圖像描述

  1. 對於第一個錯誤A parameter cannot be found the matches parameter name 'Encoding'.,“參數 -Encoding 在 PowerShell 3.0 中引入”:Source,因此,如果您的 PowerShell 版本低於 3.0,則無法使用此參數,您需要在腳本中將其刪除或升級 PowerShell 版本。
  2. 對於第二個和第三個錯誤,似乎它們與 .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}

在此處輸入圖像描述

引用自:https://serverfault.com/questions/1061589