[英]Powershell: How to pass variable correctly to command
如果我為該術語不滿意,我深表歉意,並且了解我對PowerShell還是很陌生。 我已經閱讀了一些指南,但是這個概念顯然無法理解我。
概念:我想從Exchange 2010中的用戶刪除移動設備
從輸入中識別用戶
根據PhoneID的輸入創建變量
使用phoneID變量刪除Phone
我相信我的問題在於如何將這些數據傳遞給下一個命令。 我知道應該刪除添加的添加的“ @ [Identity”,並且我記得讀過一些有關如何傳遞數據的信息,例如Powershell沒有上下文? 這是我非常簡單的腳本。
腳本
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
. $env:ExchangeInstallPath\bin\RemoteExchange.ps1
Connect-ExchangeServer -auto
$PU = Read-Host "Enter Username"
$did = get-activesyncdevice -mailbox $PU | Select-Object identity
Remove-ActiveSyncDevice -Identity $did
錯誤
我的錯誤如下,我試圖研究我做錯了什么,但我沒有明白:-(,我用XX替換了帳戶的實際輸出。
Remove-ActiveSyncDevice : Cannot bind parameter 'Identity'. Cannot convert value "@{Identity=XX" to type
"Microsoft.Exchange.Configuration.Tasks.ActiveSyncDeviceIdParameter". Error: "Cannot convert the "@{Identity=XX}" value of type
"Selected.Microsoft.Exchange.Data.Directory.SystemConfiguration.ActiveSyncDevice" to type "Microsoft.Exchange.Configuration.Tasks.ActiveSyncDeviceIdParameter"."
At line:1 char:35
+ Remove-ActiveSyncDevice -Identity $did
+ ~~~~
+ CategoryInfo : InvalidArgument: (:) [Remove-ActiveSyncDevice], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Exchange.Management.Tasks.RemoveMobileDevice
任何幫助或建議,這將是驚人的!
當您使用Select-Object並給它一個屬性名稱時,您獲得和Object都只有一個屬性。 但是,即使它只有一個屬性,您仍然必須按名稱引用該屬性:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
. $env:ExchangeInstallPath\bin\RemoteExchange.ps1
Connect-ExchangeServer -auto
$PU = Read-Host "Enter Username"
$did = get-activesyncdevice -mailbox $PU | Select-Object identity
Remove-ActiveSyncDevice -Identity $did.identity
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.