2010-12-07 19 views
5

मैं उपयोगकर्ता आईडी पुनर्मूल्यांकन प्रयास के लिए सभी उपयोगकर्ता रिकॉर्ड और उनके संबंधित समूहों का डंप प्राप्त करने का प्रयास कर रहा हूं। मेरा सुरक्षा अधिकारी इसे सीएसवी प्रारूप में चाहता है।सक्रिय निर्देशिका ऑब्जेक्ट्स का निर्यात-सीएसवी कैसे निर्यात करें?

यह महान काम करता है:

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 

मैं शायद कुछ सरल याद कर रहा हूँ। किसी भी मदद की सराहना की जाएगी। धन्यवाद!

+0

क्या ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं? विंडोज सर्वर? –

उत्तर

5
csvde -f test.csv 

यह आदेश आपके सक्रिय निर्देशिका सर्वर में प्रत्येक प्रविष्टि का एक CSV डंप निष्पादित करेगा। आपको पूर्ण डीएन उपयोगकर्ताओं और समूहों को देखने में सक्षम होना चाहिए।

आपको उस आउटपुट फ़ाइल के माध्यम से जाना होगा और अनावश्यक सामग्री से छुटकारा पाना होगा।

+0

हमारा ऑपरेशन जब भी संभव हो पावरहेल पर मानकीकृत करने की कोशिश कर रहा है। मैं जिस जानकारी की आवश्यकता है उसे खींच सकता हूं, मुझे केवल उपयोगकर्ता फ़ील्ड और उपयोगकर्ता की समूह सदस्यता को CSV फ़ाइल में एक ही पंक्ति पर दिखाई देने में परेशानी हो रही है ..... इसलिए 1 उपयोगकर्ता 1 रिकॉर्ड है। – Sean

7

वंशावली के लिए .... मुझे पता चला कि मुझे क्या चाहिए। यहां यह किसी और के लिए उपयोगी हो सकता है।

$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 
+0

कोई भी मौका आप टिप्पणी कर सकते हैं कि प्रत्येक पंक्ति क्या करती है या ऐसी साइट का संदर्भ देती है जो जानकारी दिखाती है? जवाब देने के लिए धन्यवाद। – Damainman

7

एक Windows सर्वर ओएस से पूरे सक्रिय निदेशक के एक डंप के लिए निम्न आदेश निष्पादित करें:

csvde -f test.csv 

यह आदेश बहुत व्यापक है और आप आवश्यक जानकारी की तुलना में अधिक दे देंगे। केवल उपयोगकर्ता रिकॉर्ड के रिकॉर्ड विवश करने के लिए, आप के बजाय चाहेगा:

csvde -f test.csv -r objectClass=user 

आप आगे आदेश सीमित कर सकते हैं आप केवल क्षेत्रों आप खोज के लिए प्रासंगिक जरूरत का अनुरोध देने के लिए जैसे:

csvde -f test.csv -r objectClass=user -l DN, sAMAccountName, department, memberOf 

यदि आपके पास एक एक्सचेंज सर्वर है और एक लाइव व्यक्ति से जुड़े प्रत्येक उपयोगकर्ता के पास मेलबॉक्स है (जैसा कि कियोस्क/लैब वर्कस्टेशन के लिए सामान्य खातों के विपरीत है) तो आप sAMAccountName के स्थान पर मेल नाम का उपयोग कर सकते हैं।

0

HI आप इस कोशिश कर सकते हैं ...

प्रयास करें ..

$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 

यह आप के लिए काम करता है आशा है।

0

पहले आदेश सही है लेकिन धर्मांतरित से परिवर्तन के रूप में नीचे, सीएसवी को निर्यात करने के लिए,

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 
संबंधित मुद्दे