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