2017-12-20 424 views
1

すべてのADユーザーアカウントをエクスポートし、CSVファイルに書式設定し、管理者が希望する方法でソートします。 Departmentフィールドでソートし、Departmentコードなしですべてのアカウントを削除します。私はフォーマットされたCSVファイルを取得するために一緒にスクリプトを石畳いるPowerShell Import-CSV「空白行を除外する」Export-CSV

:私はCSVをインポートし、我々はしたくない行を削除すると

Import-Module ActiveDirectory 

Get-ADUser -filter * -properties Name, Title, Department, SamAccountName | 
    Select-Object GivenName, Surname, Title, Department | 
    Export-CSV -Path "\\Server\Share\file.csv" -NoTypeInformation 

'Filter only users with DEPARTMENT populated' 
$BlankColumns = "Department" 

Import-CSV \\JXWFILEPRD01\Les$\file.csv | 
    Where-Object { 
     $line = $_ 
     ($BlankColumns | ForEach-Object{ 
      ![string]::IsNullOrEmpty(($line.$_.Trim('"'))) 
     }) -notcontains $false 
    } | Export-CSV -Path "\\Server\Share\out.csv" 

はしかし、それはコンソールに出力をこぼします。私はどのように動作する方法でExport-CSVを使用するかを考え出していません。それはエラーを出力するか、コンソールにダンプしてからエラーを出し続けます。あなたは開始時に複数回、フィルターをエクスポート/インポートせずに行うことができます

答えて

2

Import-Module -Name ActiveDirectory 

Get-ADUser -Filter 'Department -like "*"' -Properties Name,Title,Department,SamAccountName | 
    Select-Object -Property GivenName,Surname,Title,Department | 
    Sort-Object -Property Department | 
    Export-CSV -Path '\\Server\Share\file.csv' -NoTypeInformation 
+0

が、これは完全に働いたと私は実際にそれがどのように動作するかを理解し、ありがとうございます! (ボーナス) –

0

これを試してみてください。

Import-Module ActiveDirectory 

Get-ADUser -filter * -Properties Name,Title,Department,SamAccountName | where {![string]::IsNullOrWhiteSpace($_.Department)} | 
    Select GivenName, Surname, Title, Department | 
     Export-CSV "\\Server\Share\file.csv" -NoType 
+0

これはエラーではありませんが、CSVファイルは空です。 –

+0

Get-ADUser -filter * | {![string] :: IsNullOrWhiteSpace($ _。Department)} print何か? – Esperento57

+0

遅れて申し訳ありません...人生が起こった... 私は実行しました Get-ADUser -filter * |ここで{![string] :: IsNullOrWhiteSpace($ _。Department)} 20秒間何か作業をした後、コマンドプロンプトが表示されました。だから、何かをやっているが出力はない。 –

関連する問題