Powershell выпускает группы чтения из txt файла - PullRequest
0 голосов
/ 01 марта 2019

Итак, с тем же кодом из моего последнего вопроса у меня возникла новая проблема.Возвращает счетчик, но есть две группы 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 в моем домене.Мое лучшее предположение - это как-то игнорировать кавычки в текстовом файле.Есть ли способ заставить его читать это как «Восточная группа» или какой-то другой обходной путь?

1 Ответ

0 голосов
/ 01 марта 2019

это как-то игнорирует кавычки в текстовом файле.

Не ставьте кавычки в текстовом файле с именами групп, если вы читаетеэто с 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<<

, демонстрирующее, что даже значение с пробелами было правильно прочитано как одно значение (строка).

Поэтому просто удалите кавычки из файла группы и повторите команду .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...