因此,使用上一个问题中的相同代码,我遇到了一个新问题。它返回一个计数,但是有两个AD组引起问题。我们将其称为“东组”和“西组”。两者都用空格完全这样写,因此需要加引号。当我跑步时:
(Get-ADGroup "East Group" -Properties *).member.count
它返回用户数没问题。但是,当我运行总计代码而忽略重复项时:
$script:cnt = 0
$Groups = Get-Content -Path $someFile
$Groups | Get-ADGroupMember | Select-Object -expand DistinguishedName -Unique | ForEach-Object { $script:cnt++ }
$script:cnt
它返回总计,但也出现一条错误,表明它无法在我的域下找到West Group或East Group。我最好的猜测是它以某种方式忽略了文本文件中的引号。有没有办法让它读为“东组”或其他解决方法?
答案 0 :(得分:2)
以某种方式忽略了文本文件中的引号。
如果您使用Get-Content
阅读,请不要在带有组名的纯文本文件中加上引号-这样的引号将成为值的部分,这不是您的意图-只需依靠Get-Content
逐行读取文件 即可,即使带有空格的值也可以正常工作。
# Create the group-list file - do NOT use quotation marks around the entries.
@'
NoSpacesGroup
East Group
'@ > Groups.txt
# Demonstrate that each group name is read correctly, even if it
# contains spaces.
Get-Content Groups.txt | ForEach-Object { "this group: >>$_<<" }
以上结果:
this group: >>NoSpacesGroup<<
this group: >>East Group<<
表明即使带空格的值也被正确读取为单个值(行)。
因此,只需从组文件中删除引号,然后重试命令。