2010-12-28 5 views
18

मैं सभी स्थानीय उपयोगकर्ताओं और उनके रिश्तेदार समूहों (उपयोगकर्ता, बिजली उपयोगकर्ताओं, प्रशासकों और इतने पर के साथ एक रिपोर्ट करना चाहते हैं सूचीpowershell - स्थानीय उपयोगकर्ताओं और उनके समूहों

मैं इस तरह से उपयोगकर्ताओं को मिलता है। :।।

$adsi = [ADSI]"WinNT://." 
$adsi.psbase.children | where {$_.psbase.schemaClassName -match "user"} | select @{n="Name";e={$_.name}} 

लेकिन मैं कैसे अग्रिम में अपने समूहों धन्यवाद पुनः प्राप्त करने के पता नहीं है

उत्तर

26
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME" 
$adsi.Children | where {$_.SchemaClassName -eq 'user'} | Foreach-Object { 
    $groups = $_.Groups() | Foreach-Object {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)} 
    $_ | Select-Object @{n='UserName';e={$_.Name}},@{n='Groups';e={$groups -join ';'}} 
} 
26

Googlers के लिए, एक और तरीका है उपयोगकर्ताओं की सूची प्राप्त करने के लिए उपयोग करने के लिए है:

Get-WmiObject -Class Win32_UserAccount 

से 2010 से उत्कृष्ट जवाब देने के लिए एक विकल्प के रूप http://buckeyejeeps.com/blog/?p=764

+2

आप केवल स्थानीय सूची कि qury करने के लिए फिल्टर जोड़ना चाहते हैं खाते: -filter "LocalAccount = True" –

10

अद्यतन:

अब आप प्राप्त करने के लिए Get-LocalGroupMember, Get-localgroup, Get-LocalUser आदि का उपयोग कर सकते हैं और नक्शा उपयोगकर्ताओं और समूहों

उदाहरण:

PS C:\WINDOWS\system32> Get-LocalGroupMember -name users 

ObjectClass Name        PrincipalSource 
----------- ----        --------------- 
User  DESKTOP-R05QDNL\someUser1  Local   
User  DESKTOP-R05QDNL\someUser2  MicrosoftAccount 
Group  NT AUTHORITY\INTERACTIVE   Unknown 

आप गेट-लोकलयूसर के साथ गठबंधन कर सकते हैं। उपनाम ग्लू का उपयोग भी इसके बजाय किया जा सकता है। नए cmndlets के बहुमत के लिए उपनाम मौजूद है।

मामले में कुछ सोच रहे हैं (मैं जानता हूँ कि आप इस के बारे में नहीं पूछा) जोड़ा जा रहा है उन उदाहरण के लिए तो जैसे किया जा सकता है:

$description = "Netshare user" 
$userName = "Test User" 
$user = "test.user" 
$pwd = "pwd123" 

New-LocalUser $user -Password (ConvertTo-SecureString $pwd -AsPlainText -Force) -FullName $userName -Description $description 
+2

बस एक नोट, यह PowerShell 5.1 के बाद उपलब्ध है। –

+0

Get-LocalUser सही cmdlet है। Get-LocalUser ** ** ** मौजूद नहीं है – Vish