Из файла csv нет проблем в консоли PowerShell, чтобы увидеть значение атрибута, но когда я хочу экспортировать в файл csv, файл пуст, может быть, кто-то может мне помочь, пожалуйста?
$adusers = Import-Csv "c:\temp\adusers.csv" -Delimiter ";"
foreach ($item in $adusers) {
# Map variables from CSV
$adusers = $item.'ADUsers'
$Servers = $item.'Domain'
Get-ADUser -identity $adusers -Properties flags -Server $Servers | Select-
Object -Property samaccountname, userprincipalname, flags | export-csv
c:\temp\fdfdrff.csv -Encoding Unicode
}
Файл adusers.csv:
ADUsers;Domain
account1;Domain1
account2;Domain2
account3;Domain3
account4;Domain4
account5;Domain5
account6;Domain6
account7;Domain7
account8;Domain8
account9;Domain9
Выходной файл:
"#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser"
"samaccountname","userprincipalname","flags"
"account9","[email protected]",
Если вы используете Export-CSV
внутри цикла foreach
, вы должны помнить о параметре -Append
. В противном случае каждый раз файл будет заменяться, как в вашем примере.
Кроме того, вы можете удалить назначение переменных и напрямую использовать свойства $item
:
Get-ADUser -identity $item.ADUsers -Properties flags -Server $item.Domain
Более подробное устранение неполадок:
$adusers = Import-Csv "c:\temp\adusers.csv" -Delimiter ";"
$adusers
Если $adusers
не отображает объекты правильно, проверьте формат файла.
Только внутри foreach
запускается
Get-ADUser -identity $item.ADUsers -Properties flags -Server $item.Domain
Если пользователи AD указаны неправильно, проверьте, содержит ли файл правильные идентификаторы и / или серверы. Принятые идентификаторы и форматы имен серверов можно найти в Get-AdUser
документы.
На основе предоставленного вами файла:
The output file :
"#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser" "samaccountname","userprincipalname","flags" "account9","[email protected]",
Я вижу две вещи:
-NoTypeInformation
, чтобы избавиться от первой строки-Append
в вашем Export-CSV
.Пожалуйста, укажите подробности о ваших файлах в своем вопросе. Вы добавили -Append
?
Я предполагаю, что содержимое
$adusers
(коллекция объектов из вашего CSV) не соответствует ожидаемому формату для-Identity
. Учитывая ваш текущий код, вы фактически должны передавать$item
, но даже в этом случае это может быть неверно. Обратитесь к справке, чтобы узнать, что требуется: Get-ADUser