Я совершенно новый для PowerShell, а не самый лучший в работе с кодом и скриптами, но пытаюсь учиться. И теперь к проблеме!PowerShell export csv/Strange output
Я написал короткий сценарий, в котором перечислены все пользователи определенного подразделения с определенными свойствами.
Get-ADUser -Filter * -SearchBase “OU=XY,OU=XY,OU=XY,OU=XY,DC=XY,DC=XY” -Properties DisplayName, SAMAccountName, EmailAddress, msDS-UserPasswordExpiryTimeComputed, AccountExpirationDate, Company, StreetAddress, L, PostalCode, co |
select DisplayName, SAMAccountName, EmailAddress, @{ Name = "ExpiryDate"; Expression = { [datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") } }, AccountExpirationDate, Company, StreetAddress, L, PostalCode, co |
Sort-Object -Property Company |
Format-Table -Autosize -Property Company, DisplayName, SAMAccountName, EmailAddress, AccountExpirationDate, ExpiryDate, StreetAddress, L, Postalcode, co
Это прекрасно работает, когда в перспективе сценария в PowerShell, все получает отображается правильно, но когда я пытаюсь экспортировать информацию в CSV файл:
Get-ADUser -Filter * -SearchBase “OU=XY,OU=XYs,OU=XY,OU=XY,DC=XY,DC=XY” -Properties DisplayName, SAMAccountName, EmailAddress, msDS-UserPasswordExpiryTimeComputed, AccountExpirationDate, Company, StreetAddress, L, PostalCode, co |
select DisplayName, SAMAccountName, EmailAddress, @{ Name = "ExpiryDate"; Expression = { [datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") } }, AccountExpirationDate, Company, StreetAddress, L, PostalCode, co |
Sort-Object -Property Company |
Format-Table -Autosize -Property Company, DisplayName, SAMAccountName, EmailAddress, AccountExpirationDate, ExpiryDate, StreetAddress, L, Postalcode, co |
Export-Csv -Path c:\xy.csv
Я получаю некоторые странные caracters в файл
27c87ef9bbda4f709f6b4002fa4af63c,,,,,
Но это происходит только после того, как определенное количество свойств/столбцов было выбрано для таблицы. Я выбираю только 4 свойства, которые отлично работают. Что мне не хватает?
Любая помощь была бы любезно оценена!
Я думаю, что вам не нужен 'Format-Table' здесь, так как вы экспорт в CSV. Это лучше работает, если вы удалите этот бит? 'Format-Table -Autosize -Property Company, DisplayName, SAMAccountName, EmailAddress, AccountExpirationDate, ExpiryDate, StreetAddress, L, Postalcode, co | ' – sodawillow
В дополнение к комментарию @ sodawillow (который является правильным/является причиной вашего странного вывода), вы можете добавить переключатель' -notype' (или '-NoTypeInformation') в ваш вызов' Export-CSV'; что гарантирует, что первая строка будет заголовком, а не строкой '#TYPE ... '. См. Http://ss64.com/ps/export-csv.html. – JohnLBevan
Возможный дубликат [В Powershell, какой способ выбрать данные из FormatTable для управления им как строку?] (Http://stackoverflow.com/questions/29130603/in-powershell-what-is-the- надлежащий путь к выбору-данных-from-a-formattable-to-manip) – Matt