如何使用 powershell return 为用户交换所有通讯组
How to use powershell to return all exchange distribution groups for a user
我正在尝试使用 powershell 为特定用户提取 Office365 通讯组列表。当我为用户键入(或粘贴)捕获的 $DN 时,以下工作正常,但如果我捕获 $DN 并将其用作变量,则无法获得正确的结果。
这个有效:
$mailbox=get-Mailbox user@domain.com
$DN=$mailbox.DistinguishedName
$DLs=Get-DistributionGroup -ResultSize Unlimited -Filter {Members -like "CN=Lastname\, First M,OU=domain.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR02A003,DC=prod,DC=outlook,DC=com"}
这些不:
$DLs=Get-DistributionGroup -ResultSize Unlimited -Filter {Members -like $DN}
$DLs=Get-DistributionGroup -ResultSize Unlimited -Filter {Members -like '$DN'}
$DLs=Get-DistributionGroup -ResultSize Unlimited -Filter {Members -like "$DN"}
谁能告诉我如何让 $DN 的变量在脚本中工作?
这就是你需要的:
$Mailbox=get-Mailbox user@domain.com
$DN=$mailbox.DistinguishedName
$Filter = "Members -like ""$DN"""
Get-DistributionGroup -ResultSize Unlimited -Filter $Filter
Get-DistributionGroup
不是 recognize/expand 位于 {ScriptBlock}
中的过滤器
您应该创建一个 $Filter
变量,该变量不在 {ScriptBlock}
中,但它在外部的 "Quotes"
和内部的 ""DoubleQuotes""
中,以便变量扩展。
一行:
Get-DistributionGroup -ResultSize Unlimited -Filter "Members -like ""$((get-Mailbox NT_ID).DistinguishedName)""" | sort name
Avshalom 感谢这个很棒的脚本。
我添加这个是为了清理结果。只需将 "Domain" 替换为您公司的域名即可。
| Select-Object Name, @{label='PrimarySmtpAddress';expression={$_.PrimarySmtpAddress -replace '@domain.com'}}
注意:-filter {Members...} 可能在 get-distributiongroup 命令中被破坏。似乎不接受成员作为可过滤的 属性。 :(
我正在尝试使用 powershell 为特定用户提取 Office365 通讯组列表。当我为用户键入(或粘贴)捕获的 $DN 时,以下工作正常,但如果我捕获 $DN 并将其用作变量,则无法获得正确的结果。
这个有效:
$mailbox=get-Mailbox user@domain.com
$DN=$mailbox.DistinguishedName
$DLs=Get-DistributionGroup -ResultSize Unlimited -Filter {Members -like "CN=Lastname\, First M,OU=domain.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR02A003,DC=prod,DC=outlook,DC=com"}
这些不:
$DLs=Get-DistributionGroup -ResultSize Unlimited -Filter {Members -like $DN}
$DLs=Get-DistributionGroup -ResultSize Unlimited -Filter {Members -like '$DN'}
$DLs=Get-DistributionGroup -ResultSize Unlimited -Filter {Members -like "$DN"}
谁能告诉我如何让 $DN 的变量在脚本中工作?
这就是你需要的:
$Mailbox=get-Mailbox user@domain.com
$DN=$mailbox.DistinguishedName
$Filter = "Members -like ""$DN"""
Get-DistributionGroup -ResultSize Unlimited -Filter $Filter
Get-DistributionGroup
不是 recognize/expand 位于 {ScriptBlock}
您应该创建一个 $Filter
变量,该变量不在 {ScriptBlock}
中,但它在外部的 "Quotes"
和内部的 ""DoubleQuotes""
中,以便变量扩展。
一行:
Get-DistributionGroup -ResultSize Unlimited -Filter "Members -like ""$((get-Mailbox NT_ID).DistinguishedName)""" | sort name
Avshalom 感谢这个很棒的脚本。
我添加这个是为了清理结果。只需将 "Domain" 替换为您公司的域名即可。
| Select-Object Name, @{label='PrimarySmtpAddress';expression={$_.PrimarySmtpAddress -replace '@domain.com'}}
注意:-filter {Members...} 可能在 get-distributiongroup 命令中被破坏。似乎不接受成员作为可过滤的 属性。 :(