我在比较变量时遇到问题。
有人可以告诉我我做错了什么吗?
在此示例中,“account.name”是 SamAccountName。
$DN = (获取邮箱帐户.名称).DistinguishedName
$DN
返回:CN=Account.Name,OU=Users,OU=IT,OU=Science Lab,DC=company,DC=com
$DN.GetType().名称
返回:字符串
获取分发组-结果大小无限-筛选器{成员-eq“$DN”}
返回:无
Get-DistributionGroup -ResultSize Unlimited -Filter {Members -eq“CN=Account.Name,OU=Users,OU=IT,OU=Science Lab,DC=company,DC=com”}
返回:正确结果
答案1
问题是该-Filter
参数使用了脚本块。请尝试以下方法:
$scriptBlock = [scriptblock]::Create("Members -eq ""$DN""")
Get-DistributionGroup -ResultSize Unlimited -Filter $scriptBlock
答案2
删除引号。
Get-DistributionGroup -ResultSize Unlimited -Filter {Members -eq $DN}
会做的。
它不返回任何内容的原因是,它使用引号专门查找 $DN,而不是变量包含的数据。
答案3
找到了另一种方法来做到这一点,使用“引号”而不是{scriptblock}:Get-DistributionGroup -ResultSize Unlimited -Filter“Members -eq '$DN'”