簡體   English   中英

Powershell:如何正確將變量傳遞給命令

[英]Powershell: How to pass variable correctly to command

如果我為該術語不滿意,我深表歉意,並且了解我對PowerShell還是很陌生。 我已經閱讀了一些指南,但是這個概念顯然無法理解我。

概念:我想從Exchange 2010中的用戶刪除移動設備

  1. 從輸入中識別用戶

  2. 根據PhoneID的輸入創建變量

  3. 使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM