【问题标题】:Powershell: How to pass variable correctly to commandPowershell:如何正确地将变量传递给命令
【发布时间】:2014-02-19 01:55:20
【问题描述】:

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

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

  1. 根据输入识别用户

  2. 根据 PhoneID 的输入创建变量

  3. 使用 phoneID 变量删除电话

我相信我的问题在于如何将这些数据传递给下一个命令。我知道添加的附加“@[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

对此的任何帮助或建议都会很棒!

【问题讨论】:

    标签: powershell activesync ems


    【解决方案1】:

    当您使用 Select-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
    

    【讨论】:

    • 或者你可以做Select-Object -ExpandProperty identity
    • 或者直接访问赋值中的属性$did = (get-activesyncdevice -mailbox $PU).identity
    • 很好的答案,这些都奏效了,我学到了一些东西 :-) 谢谢大家!
    猜你喜欢
    • 2012-11-07
    • 1970-01-01
    • 2020-09-08
    • 2022-12-13
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    相关资源
    最近更新 更多