PowerShell: 获取Exchange通讯组的说明

分享于 

8分钟阅读

互联网

  繁體 雙語

问题:

我想构建一个线框来获得特定分发组的注释,并将它的输出到分布组的名称和它的他信息。

我用谷歌搜索了它,发现了不同的解决方案。 这是我找到的解决方案之一:

https://richgski.blogspot.com/2012/03/powershell-get-exchange-distribution.html


Get-DistributionGroup Head-of-Operations | Select-Object Name, GroupType, ManagedBy, @{Name="Notes";Expression={(Get-Group $_).Notes}}



但是,带有注释的行始终保持空白,我不知道为什么:


Name GroupType ManagedBy Notes


---- --------- --------- -----


Head-of-Ops Universal {}



当我单独执行以下命令时:


Get-Group Head-of-Ops | Select-Object Notes



"。"。它给我正确的注释作为输出:


Notes


-----


Owner- Paul J.



我稍后检查是否有正确的参数,所以我尝试这样做:


$Result = Get-DistributionGroup Head-of-Operations


Get-Group $Result.Name | Select-Object Notes



工作正常。输出:


Notes


-----


Owner- Paul J.



我对我的命令做了一些修改,但是当我试图这样做时,它仍然不工作:


Get-DistributionGroup Head-of-Operations | Select-Object Name,GroupType,ManagedBy,@{Name="Notes";Expression={(Get-Group $_.Name | Select-Object Notes)}}



输出:


Name GroupType ManagedBy Notes


---- --------- --------- -----


Head-of-Ops Universal {}



之后,我在这里找到了另一个帖子: https://www.oxfordsbsguy.com/2014/04/21/exchange-powershell-how-to-enumerate-distribution-lists-managers-and-members/#comment-4452

所以我再次对命令做了一些修改。


Get-DistributionGroup Head-of-Ops | Select-Object Name,GroupType,ManagedBy,@{Expression={(Get-Group $_.Name).Notes};Label="Notes"}



,还是没有什么改变。 输出:


Name GroupType ManagedBy Notes


---- --------- --------- -----


Head-of-Ops Universal {}



我只是不明白:/

你们中有人看到这个问题并且能指出?

凯姆。Thiel 。

现在我已经使用-verbose参数运行了这个命令,我认为我现在已经更接近解决方案了。 我认为在某些时候它只是缺少一个参数,但我不知道哪个 one.This 是代码: ( 我使用 * Asterisk 标记敏感信息)


Get-DistributionGroup Head-of-Ops@h***.com -Verbose | Select-Object Name,GroupType,ManagedBy,@{Name="Notes";Expression={(Get-Group $_.Name).Notes}} -Verbose


VERBOSE: [16:04:28.885 GMT] Get-DistributionGroup : Active Directory session settings for 'Get-DistributionGroup' are: View Entire Forest: 'False', Default Scope: 'h***.de', Configuration Domain Controller: 'H***.h***.de',


Preferred Global Catalog: '***.h***.h***.de', Preferred Domain Controllers: '{ ****.h***.h***.de, H***.h***.de }'


VERBOSE: [16:04:28.916 GMT] Get-DistributionGroup : Runspace context: Executing user: h***.de/Companies/H***/D***/User/IT Service/****, Executing user organization:, Current organization:, RBAC-enabled: Enabled.


VERBOSE: [16:04:28.916 GMT] Get-DistributionGroup : Beginning processing &


VERBOSE: [16:04:28.932 GMT] Get-DistributionGroup : Current ScopeSet is: { Recipient Read Scope: {{, }}, Recipient Write Scopes: {{, }}, Configuration Read Scope: {{, }}, Configuration Write Scope(s): {{, }, }, Exclusive Recipient


Scope(s): {}, Exclusive Configuration Scope(s): {} }


VERBOSE: [16:04:28.932 GMT] Get-DistributionGroup : Resolved current organization:. 


VERBOSE: [16:04:28.932 GMT] Get-DistributionGroup : Searching objects"Head-of-Ops@h***.com" of type"ADGroup" under the root"$null".


VERBOSE: [16:04:28.932 GMT] Get-DistributionGroup : Previous operation run on domain controller 'H***.h***.de'.


VERBOSE: [16:04:28.932 GMT] Get-DistributionGroup : Previous operation run on domain controller 'H***.h***.de'.


VERBOSE: [16:04:28.932 GMT] Get-DistributionGroup : Preparing to output objects. The maximum size of the result set is"1000".



VERBOSE: [16:04:28.947 GMT] Get-DistributionGroup : Ending processing &


Name GroupType ManagedBy Notes


---- --------- --------- -----


Head-of-Ops Universal {}



下面是我认为这个问题被隐藏的地方:


VERBOSE: [16:04:28.932 GMT] Get-DistributionGroup : Searching objects"Head-of-Ops@h***.com" of type"ADGroup" under the root"$null".



谁知道它的缺失和原因?


回答 1:

使用 Select-Object 创建计算属性时需要

  • 表达式,可以缩写为e/e
  • 标签的名称或者,它们是 synonymic,也可以减少为 1st 字母。
  • 从你的问题中不清楚 Get-DistributionGroup Head-of-Operations 返回单个或者多个对象?

    也是 Head-of-OperationsHead-of-Ops 一样?

    通过选择对象添加属性的另一种方法是创建一个 [PSCustomObject]

    
    foreach($HeadOP in Get-DistributionGroup Head-of-Operations){
    
    
     [PSCustomObject]@{
    
    
     Name = $HeadOp.Name
    
    
     GroupType = $HeadOp.GroupType
    
    
     ManagedBy = $HeadOp.ManagedBy
    
    
     Notes = (Get-Group $HeadOp.Name | Select-Object Notes)
    
    
     }
    
    
    }
    
    
    
    

    最后你需要 -ExpandProperty Notes

    
     Notes = (Get-Group $HeadOp.Name | Select-Object -ExpandProperty Notes)
    
    
    
    

    或者短

    
     Notes = (Get-Group $HeadOp.Name).Notes
    
    
    
    

回答 2:

你使用哪种版本的交换?

我测试过" Get-DistributionGroup"group@domain.com" | Select-Object Name, GroupType, ManagedBy, @{Name="Notes";Expression={(Get-Group $_).Notes}} | ft -AutoSize "And在我的Exchange 2010和 2013实验室中工作。

根据你的描述,"managedby"属性是空的也很奇怪。 我不确定你是如何创建这个mtf的,但是我想你可以试试一个新的,。



相关文章