Chr*_*ski 2 powershell exchange exchange-2010
我想组合这些命令Get-user,get-casmailbox以便我可以从第一个输出中获取“公司”,并将后者中的“ActiveSyncStatus”合并到一个输出中。
我也明白我可以编写一个显式循环来生成所需的结果,但我认为使用 $_ 可以实现更紧凑的语法。命令(或类似)
有人可以向我展示演示使用 $_ 提供第二个命令的 Get-CasMailbox 的命令吗?属性,最后在命令之间做了一些属性组合的选择对象?
我问的原因是因为我经常必须以这种方式连接命令,而且 for 循环是明确的,而且帮助台难以复制和粘贴。我宁愿有一个可以粘贴的命令行。
每次使用 时Write-Host,Jeffrey Snover 都会杀死一只小狗。或者是唐琼斯?也许他们都在某种仪式上一起杀死了小狗。那会很奇怪。
[PS] C:\>"User1", "User2" | % { [PSObject]@{Name=$_; Company=$(Get-User $_).Company; ActiveSyncEnabled=$(Get-CASMailbox $_).ActiveSyncEnabled} }
Name Value
---- -----
Name User1
Company Contoso
ActiveSyncEnabled True
Name User2
Company Woodgrove
ActiveSyncEnabled True
Run Code Online (Sandbox Code Playgroud)
编辑:或者这个:
[PS] C:\>Foreach($_ In Get-Mailbox) { [PSObject]@{Name=$_; Company=$(Get-User $_).Company; ActiveSyncEnabled=$(Get-CASMailbox $_).ActiveSyncEnabled} }
Run Code Online (Sandbox Code Playgroud)
Exchange Cmdlets 处理管道输入的方式让您措手不及。
如果您希望输出对象看起来不那么挤在一起,您可以Format-Table在最后添加一个,就在最后一个之前}......但是,请注意这Format-*几乎和 一样糟糕Write-Host,因为它有能力打破输出,因此仅将输出格式化为您打算做的最后一件事。不要格式化输出,然后尝试将其通过管道传输到另一个 cmdlet。
| 归档时间: |
|
| 查看次数: |
8870 次 |
| 最近记录: |