Я пытаюсь импортировать файл .csv, содержащий несколько групп AD, и хочу получить только поля примечаний и описания. В настоящее время я получаю ошибки, и я не уверен, что я делаю неправильно. Любая помощь будет оценена.
$ADGroups = import-csv "C:\Users\User\Documents\ADNotesField.csv"
foreach ($ADGroup in $ADGroups)
{ Get-ADGroup -Identity $ADGroup -Properties info, description
}
$ADGroup | Export-CSV -Path "C:\Users\User\Documents.csv" -NoTypeInformation
Это ошибка, которую я получаю:
Get-ADGroup : Cannot convert 'System.Object[]' to the type 'Microsoft.ActiveDirectory.Management.ADGroup' required by parameter 'Identity'. Specified method is not supported.
At line:3 char:25
+ { Get-ADGroup -identity $ADGroups -Properties info, description
+ ~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-ADGroup], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.GetADGroup
Первые несколько строк файла CSV, начиная с ячейки A1 и заканчивая ячейкой A2 и т. д. Все это группы AD:
Domain Users
Washington Techs
California Techs
Nevada Techs
Замените Get-ADGroup -identity $ADGroups
на Get-ADGroup -identity $ADGroup
(обратите внимание, что вы добавили s
в конце)
@SantiagoSquarzon, я отредактировал свой код с изменениями, которые вы предложили, и похоже, что возникает та же ошибка.
Каковы заголовки вашего CSV и какой из заголовков имеет имя или личность группы?
@SantiagoSquarzon, в моем текущем CSV-файле нет заголовков, только группы AD. Должен ли я иметь заголовки в нем?
не могли бы вы скопировать и вставить несколько строк вашего CSV на свой вопрос? нужно лучше понять, с чем вы имеете дело
@SantiagoSquarzon, я вставил несколько строк из своего CSV-файла. Если в этом случае файл .txt будет проще, я могу попробовать изменить его на этот формат.
То, что вы опубликовали может быть в TSV (значения, разделенные табуляцией), вам нужно будет подтвердить, действительно ли это вкладки или нет, заголовки кажутся Domain
и Users
. Если это на самом деле вкладки, я могу опубликовать ответ, чтобы показать вам, как это сделать. Дело в том, что у вас 100% Users
колонка есть AD Groups
не те AD Users
?
@SantiagoSquarzon, это файл CSV, а не TSV. Должен ли быть заголовок в моем файле .csv, прежде чем я перечислю группы AD? Отключенные пользователи домена — это все группы AD, а не пользователи AD.
Расширение может быть CSV, но то, что вы разместили в вопросе, не разделено запятыми, следовательно, не является CSV, если только то, что вы показываете, не является буквальной копией того, что у вас есть.
@SantiagoSquarzon, правильно, это не дословная копия того, что у меня есть, так как я не могу найти способ опубликовать свой файл .csv на свой вопрос. Я определенно могу изменить это на файл .txt, если вы думаете, что это будет проще.
Если у вас действительно есть CSV (с разделителями-запятыми) и учитывая, что в столбце Users
есть группы объявлений, которые вам нужно запросить, следующее должно работать:
Import-Csv "C:\Users\User\Documents\ADNotesField.csv" | ForEach-Object {
try {
Get-ADGroup -Identity $_.Users -Properties info, description
}
catch {
Write-Warning $_.Exception.Message
}
} | Select-Object Name, Info, Description |
Export-CSV -Path "C:\Users\User\Documents.csv" -NoTypeInformation
Если вы обнаружите, что запускаете это и в нем отсутствует первый элемент или нет вывода, попробуйте добавить параметр -Header 'Users'
к вызову Import-Csv
.
-identity $ADGroups
должно быть-identity $ADGroup
, аExport-Csv
должно быть передано в результирующий объект вышеуказанного цикла.