我想寫一個PowerShell腳本,使用CSV文件作爲輸入,將關閉Office 365中的混亂功能。該CSV文件只有1列,並有2個目標我用於測試的電子郵件地址。當我用read-host行運行這個腳本並輸入一個有效的電子郵件地址時,它沒有任何錯誤。當我使用CSV文件錯誤時。訪問由PowerShell導入CSV重定向的數據
Import-Module MSOnline
$LiveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/PowerShell -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession -allowclobber $Session
Connect-MsolService -Credential $LiveCred
cd c:\scripts
Write-Host "This tool removes the Clutter feature from O365 "
$Clutter = Import-Csv .\Clutteroff.csv
foreach ($user in $Clutter){
Set-Clutter -Identity $User -Enable $false
}
當我運行此我得到以下錯誤:
Cannot process argument transformation on parameter 'Identity'. Cannot convert value "@{[email protected]}" to type "Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter". Error: "Cannot convert hashtable to an object of the following type: Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter. Hashtable-to-Object conversion is not supported in restricted language mode or a Data section."
+ CategoryInfo : InvalidData: (:) [Set-Clutter], ParameterBindin...mationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Set-Clutter
+ PSComputerName : ps.outlook.com
任何幫助,將不勝感激,並解釋將獲得額外的學分:)
CSV文件=用戶,XXXX @ MyCompany.com,[email protected]
電子郵件地址有效。
是您的CSV只有一個_column_的電子郵件地址? – Matt
'Set-Clutter -Identity $ User.UserID -Enable $ false'如果我可以讀入你的CSV結構。它看起來像你的-Identity是一個具有userid屬性的對象。您需要從對象中提取屬性。你也有一個空的'-Header',這可能是一個錯字。 – Matt
-header是以前嘗試修復腳本的錯誤。所以這個測試的CSV結構非常簡單。這五人建在excel中,有3個參賽作品。這些條目是我在單元格1A,2A,3A中的電子郵件地址,然後保存爲CSV文件。 $用戶只是應該=在1A,2A的文本...... –