PowerShell:如何正确传递变量以命令



如果我为此屠杀了术语,我深表歉意,并且了解我对PowerShell非常新。我已经阅读了一些指南,这个概念显然没有得到我。

概念:我想从Exchange 2010中的用户中删除移动设备

  1. 从输入中标识用户

  2. 从电话的输入中创建变量

  3. 使用电话变量删除电话

我相信我的问题在于如何将这些数据传递给下一个命令。我知道应删除附加的"@[IDENTITITY",并且我记得读过一些有关您如何通过此powershell没有上下文的数据时的信息?这是我非常简单的脚本。


脚本

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
. $env:ExchangeInstallPathbinRemoteExchange.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并仅给它一个属性名称时,只需一个属性就可以得到和对象。但是,即使它只有一个属性,您仍然必须按名称引用该属性:

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
. $env:ExchangeInstallPathbinRemoteExchange.ps1
Connect-ExchangeServer -auto
$PU = Read-Host "Enter Username"
$did = get-activesyncdevice -mailbox $PU | Select-Object identity
Remove-ActiveSyncDevice -Identity $did.identity

相关内容

  • 没有找到相关文章

最新更新