ユーザーIDの再検証作業のために、すべてのユーザーレコードとそれに関連するグループのダンプを取得しようとしています。私のセキュリティ担当者はCSV形式でそれを望んでいます。
これはうまくいきます:
Get-ADUser -Filter * -Properties * | Select-Object -Property Name,SamAccountName,Description,EmailAddress,LastLogonDate,Manager,Title,Department,whenCreated,Enabled,Organization | Sort-Object -Property Name | ConvertTo-CSV
ただし、これにはユーザーがメンバーになっているグループは含まれません。
次のような試みは失敗しました:
Get-ADUser -Filter * -Properties * | Select-Object -Property Name,SamAccountName,Description,EmailAddress,LastLogonDate,Manager,Title,Department,whenCreated,Enabled,Organization, @{$_.MemberOf |Get-Group|ForEach-Object {$_.Name}} | Sort-Object -Property Name | ConvertTo-CSV
これも失敗しました:
Get-ADUser -Filter * -Properties * | Sort-Object -Property Name | ForEach-Object {
$_ | Format-List -Property Name,SamAccountName,Description,EmailAddress,LastLogonDate,Manager,Title,Department,whenCreated,Enabled
$_.MemberOf | Get-ADGroup | ForEach-Object {$_.Name} | Sort-Object
} | ConvertTo-CSV
おそらく私は何か単純なものを見逃しているでしょう。どんな助けでも大歓迎です。ありがとう!
Windows Server OSから次のコマンドを実行して、Active Director全体のダンプを取得します。
csvde -f test.csv
このコマンドは非常に幅広く、必要以上の情報を提供します。レコードをユーザーレコードのみに制限するには、代わりに次のようにします。
csvde -f test.csv -r objectClass=user
コマンドをさらに制限して、要求された検索に関連する次のような必要なフィールドのみを提供できます。
csvde -f test.csv -r objectClass=user -l DN, sAMAccountName, department, memberOf
Exchangeサーバーがあり、実在する人物に関連付けられた各ユーザーがメールボックスを持っている場合(キオスク/ラボワークステーションの一般的なアカウントではなく)、sAMAccountNameの代わりにmailNicknameを使用できます。
後世のために....必要なものを手に入れる方法を見つけました。これは、他の誰かに役立つかもしれない場合に備えています。
$alist = "Name`tAccountName`tDescription`tEmailAddress`tLastLogonDate`tManager`tTitle`tDepartment`tCompany`twhenCreated`tAcctEnabled`tGroups`n"
$userlist = Get-ADUser -Filter * -Properties * | Select-Object -Property Name,SamAccountName,Description,EmailAddress,LastLogonDate,Manager,Title,Department,Company,whenCreated,Enabled,MemberOf | Sort-Object -Property Name
$userlist | ForEach-Object {
$grps = $_.MemberOf | Get-ADGroup | ForEach-Object {$_.Name} | Sort-Object
$arec = $_.Name,$_.SamAccountName,$_.Description,$_.EmailAddress,$_LastLogonDate,$_.Manager,$_.Title,$_.Department,$_.Company,$_.whenCreated,$_.Enabled
$aline = ($arec -join "`t") + "`t" + ($grps -join "`t") + "`n"
$alist += $aline
}
$alist | Out-File D:\Temp\ADUsers.csv
csvde -f test.csv
このコマンドは、Active DirectoryサーバーのすべてのエントリのCSVダンプを実行します。ユーザーとグループの完全なDNを表示できるはずです。
その出力ファイルを調べて、不要なコンテンツを取り除く必要があります。
こんにちは、これを試すことができます...
試して.
$Ad = Get-ADUser -SearchBase "OU=OUi,DC=company,DC=com" -Filter * -Properties employeeNumber | ? {$_.employeenumber -eq ""}
$Ad | Sort-Object -Property sn, givenName | Select * | Export-Csv c:\scripts\ceridian\NoClockNumber_2013_02_12.csv -NoTypeInformation
または
$Ad = Get-ADUser -SearchBase "OU=OUi,DC=company,DC=com" -Filter * -Properties employeeNumber | ? {$_.employeenumber -eq $null}
$Ad | Sort-Object -Property sn, givenName | Select * | Export-Csv c:\scripts\cer
それがあなたのために働くことを願っています。
最初のコマンドは正しいですが、以下のように変換からcsvへのエクスポートに変更します、
Get-ADUser -Filter * -Properties * `
| Select-Object -Property Name,SamAccountName,Description,EmailAddress,LastLogonDate,Manager,Title,Department,whenCreated,Enabled,Organization `
| Sort-Object -Property Name `
| Export-Csv -path C:\Users\*\Desktop\file1.csv