छिपे हुए / आभासी विंडोज उपयोगकर्ता खातों की सूची


44

मैं विंडोज 7 सिस्टम पर उपयोगकर्ता खातों की एक व्यापक सूची प्राप्त करने का एक तरीका खोजने की कोशिश कर रहा हूं, जिसमें छिपे हुए भी शामिल हैं। उपयोगकर्ता खाते संवाद ( >control userpasswords2) केवल सामान्य उपयोगकर्ता खातों पता चलता है, और यहां तक कि स्थानीय उपयोगकर्ता और समूह संपादक केवल सामान्य उपयोगकर्ता खाते और प्रशासक और गेस्ट की तरह मानक छिपा / विकलांग लोगों को दर्शाता है। का चयन करें उपयोगकर्ता या समूह संवाद एक है ढूँढें अब बटन जो जो जोड़ती उपयोगकर्ताओं और समूहों, लेकिन अफसोस, यह इतराना रूप में एक ही सामग्री है।

मैं एक और अधिक व्यापक सूची की तलाश कर रहा हूं जिसमें "सुपर-हिडन" / ट्रस्टेडइनस्टालर (या अधिक सटीक, NT Service \ TrustedInstaller -notice अलग "डोमेन" जैसे वर्चुअल उपयोगकर्ता खाते शामिल हैं )।

मैंने जाँच की HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList, लेकिन SpecialAccountsकुंजी मौजूद नहीं है।

मैंने भी जाँच की HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList, और जबकि इसमें SystemProfile, LocalService, और NetworkService खाते सूचीबद्ध हैं, इसमें अन्य (जैसे TrustedInstaller और इसके ilk) नहीं हैं।

TrustedInstaller विशेष रूप से थोड़ा भ्रमित है क्योंकि यह एक उपयोगकर्ता, एक सेवा और एक निष्पादन योग्य फ़ाइल है। मैं इसे एक उदाहरण के रूप में उपयोग कर रहा हूं क्योंकि यह "सुपर छिपा हुआ" है कि यह किसी भी प्रकार की उपयोगकर्ता सूची में सूचीबद्ध नहीं लगता है। (एक प्रयोग के रूप में, मैंने यह देखने के लिए "विश्वसनीय इंस्टालर" के लिए पूरी रजिस्ट्री को खोजने की कोशिश की कि क्या मुझे ऐसी जगह मिल सकती है जहाँ इसे एक उपयोगकर्ता के रूप में सूचीबद्ध किया गया है, लेकिन कोई भी नहीं मिला है।)

स्पष्ट होने के लिए, मैं जो देख रहा हूँ वह सभी की सूची है। उपयोगकर्ता इनपुट-फ़ील्ड में उपयोग किए जा सकते हैं जैसे अनुमतियाँ संवाद या runasतर्क के रूप में ।


जवाबों:


43

मुझे नहीं लगता कि सभी संभावित खातों की अंतिम सूची है।

उपयोगकर्ता इनपुट-फ़ील्ड में विभिन्न प्रकार के नाम हैं, जैसे कि अनुमतियाँ संवाद में।

पहले पूरी तरह से Win32_Accounts, एक पूरी सूची पाने के लिए एक PowerShell सत्र खोलें और चलाएं:

get-wmiobject -class "win32_account" -namespace "root\cimv2" | sort caption | format-table caption, __CLASS, FullName

ये सामान्य उपयोगकर्ता, समूह और बिलिन खाते हैं।

विस्टा के बाद से, खातों का एक नया वर्ग है, जिसे आभासी खाते कहा जाता है, क्योंकि वे सामान्य प्रबंधन टूल में नहीं दिखाई देते हैं। कभी-कभी सेवा खाते भी कहलाते हैं, और इनमें से कम से कम तीन अलग-अलग प्रकार होते हैं:

  • Windows सेवा खाते

विस्टा के बाद से हर विंडोज़ सेवा में एक वर्चुअल अकाउंट जुड़ा होता है, यहां तक ​​कि यह एक अलग उपयोगकर्ता खाते के तहत चलता है और भले ही यह बिल्कुल भी नहीं चलता हो। ऐसा लग रहा हैNT Service\MSSQLSERVER

उन उपयोगों की सूची प्राप्त करने के लिए:

get-service | foreach {Write-Host NT Service\$($_.Name)}
  • IIS अनुप्रयोग पूल

प्रत्येक IIS अनुप्रयोग पूल जो ApplicationPoolIdentity के अंतर्गत चलता है, एक विशेष खाते के अंतर्गत चलता है जिसे कहा जाता है IIS APPPOOL\NameOfThePool

मान लें कि आपके पास IIS प्रबंधन स्क्रिप्टिंग उपकरण स्थापित हैं, तो आप चला सकते हैं:

Get-WebConfiguration system.applicationHost/applicationPools/* /* | where {$_.ProcessModel.identitytype -eq 'ApplicationPoolIdentity'} | foreach {Write-Host IIS APPPOOL\$($_.Name)}
  • हाइपर- V वर्चुअल मशीन

सर्वर 2008+ और विंडोज 8+ पर आपके पास हाइपर-वी है, प्रत्येक वर्चुअल मशीन इसे खुद का वर्चुअल खाता बनाती है, जो इस तरह दिखता है: NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5

सूची उपयोग प्राप्त करने के लिए:

get-vm | foreach {Write-Host NT VIRTUAL MACHINE\$($_.Id) - $($_.VMName)}

कभी-कभी इन खातों को अनुमतियाँ संवाद में स्वीकार नहीं किया जाता है, आप अनुमतियाँ सेट करने के लिए icacls.exe के साथ इनका उपयोग कर सकते हैं।

एक विशेष समूह भी है NT Virtual Machine\Virtual Machines, जो कहीं और नहीं दिखता है। सभी वर्चुअल मशीन खाते इस समूह के सदस्य हैं, इसलिए आप इसका उपयोग सभी वीएम फ़ाइलों के लिए अनुमतियाँ सेट करने के लिए कर सकते हैं।

ये नाम भाषा विशिष्ट हैं, उदाहरण के लिए जर्मन में इसका नाम है NT Virtual Machine\Virtuelle Computer

  • डेस्कटॉप विंडो मैनेजर

DVm.exe प्रक्रिया (डेस्कटॉप विंडो मैनेजर) एक उपयोगकर्ता के तहत चलती है Windows Manager\DWM-1

फिर आप अनुमतियों के संवादों में इस प्रकार के उपयोगकर्ताओं का उपयोग नहीं कर सकते। यह वास्तव में इनकी गणना करना संभव नहीं है क्योंकि प्रत्येक 'डेस्कटॉप सत्र' के लिए मौजूद है, इसलिए दो आरडीपी सत्रों का उपयोग करते समय, आपके पास DWM-2और DWM-3इसके अतिरिक्त भी है DVM-1। तो वहां जितने भी डेस्कटॉप उपलब्ध हैं।

  • कंप्यूटर नाम

कुछ मामलों में आप अनुमतियों के संवाद में कंप्यूटर के नाम का भी उपयोग कर सकते हैं, आमतौर पर जब सक्रिय निर्देशिका डोमेन का हिस्सा होता है।

  • विंडोज रिमॉटिंग वर्चुअल यूजर्स

PowerShell और 'JEA (बस पर्याप्त प्रशासन)' का उपयोग करते समय और PS दूरस्थ सत्र वाले सर्वर से कनेक्ट होने पर, एक अस्थायी वर्चुअल उपयोगकर्ता बनाया जा सकता है।

इनका निम्न प्रारूप है:

winrm virtual users\winrm va_x_computername_username

और एक SID जो शुरू होता है S-1-5-94-

'x' एक पूर्णांक संख्या है।

NTFS अनुमतियों को असाइन करते समय इन खातों का उपयोग किया जा सकता है, लेकिन मुझे नहीं पता कि इन सभी संभावित आभासी उपयोगकर्ताओं को कैसे सूचीबद्ध किया जाए।

जबकि JEA सत्र में आप whoamiचालू खाता नाम का पता लगाने के लिए उपयोग कर सकते हैं ।

  • आखिरकार:

यहां तक ​​कि ये सूची आपको हर संभव खाता नहीं देती है।

उदाहरण के लिए, आप एक एप्लिकेशन पूल बना सकते हैं FooBarPoolफिर उसे हटा सकते हैं, आप अभी भी IIS APPPOOL\FooBarPoolअनुमतियों के संवाद में उपयोग कर सकते हैं , इसलिए कहीं न कहीं एक आंतरिक सूची होनी चाहिए।


बहुत अच्छा! पहली क्वेरी विशेष "उन" लौटे तरह everyone, restricted, आदि, और की अपनी चर्चा NT Service\*खातों दूसरों की तरह बताते हैं TrustedInstaller। आपने अधिक विदेशी विशेष मामलों के लिए भी कवर किया है, लेकिन ऐसा लगता है कि सभी सामान्य लोगों के लिए जिम्मेदार हैं।
Synetech

@ अहम् - कौन से उपयोगकर्ता? यदि आपको कोई समस्या है, तो आपको एक नया प्रश्न बनाना चाहिए और अपनी समस्या का विस्तार से वर्णन करना चाहिए। यह इसके लिए जगह नहीं है।
पीटर हहंडॉर्फ

क्षमा याचना, मैंने अपनी प्रशंसा हटा दी है। अगर उत्सुक है तो यहाँ मेरा सवाल है।
अहमद

3
नमस्ते, आईआईएस ऐप पूल उपयोगकर्ताओं को सूचीबद्ध करने के लिए PowerShell कोड मेरे लिए काम नहीं करता था इसलिए मैंने Get-WebConfiguration system.applicationHost/applicationPools/addइसके बजाय उपयोग करना समाप्त कर दिया।
ताहिर हसन

1
बहुत बढ़िया जवाब। सेवा खातों पर MS की अतिरिक्त जानकारी यहाँ है: docs.microsoft.com/en-us/windows/security/identity-protection/…
CJBS

10

ऐसा इसलिए है क्योंकि TrustedInstaller एक सेवा है और "उपयोगकर्ता" ऑब्जेक्ट नहीं है। विस्टा के साथ, सेवाएँ अब सुरक्षा प्रिंसिपल हैं और उन्हें अनुमतियाँ सौंपी जा सकती हैं।

http://technet.microsoft.com/en-us/magazine/2007.06.acl.aspx


हाँ; बिलकुल यही बात मैं कर रहा हूँ। मैं उन चीजों की एक व्यापक सूची की तलाश कर रहा हूं जिन्हें अनुमति दी जा सकती है वे उपयोगकर्ता, सेवाएं या आपके पास क्या हैं। क्या "सुरक्षा प्रिंसिपलों" की पूरी सूची है?
Synetech

मुझे नहीं लगता कि एसीएल में टैप करने और सुरक्षा प्रिंसिपलों की एक पूरी सूची को खोजने का एक तरीका है। मुझे यकीन नहीं है कि आप पहली बार सुरक्षा प्रिंसिपलों की पूरी सूची क्यों चाहते हैं। तकनीकी रूप से, Windows मॉड्यूल इंस्टॉलर (TRUSTEDINSTALLER का सेवा नाम) स्थानीय सिस्टम खाते के अंतर्गत चलता है।
21

4
> मुझे यकीन नहीं है कि आप पहली बार सुरक्षा प्रिंसिपलों की पूरी सूची क्यों चाहते हैं। जिज्ञासा। (क्या किसी के पास इन दिनों ऐसा है…?)
21

आप MSDN लाइब्रेरी के प्रति उस जिज्ञासा को इंगित कर सकते हैं।
सर्फ़

7
  1. अपनी हार्ड ड्राइव पर किसी भी फाइल पर जाएं, राइट-क्लिक करें, और गुणों का चयन करें।
  2. सुरक्षा टैब पर जाएं और क्लिक करें Edit

    सुरक्षा सेटिंग्स संपादित करें

  3. क्लिक करें Add...
  4. क्लिक करें Advanced...

    उपयोगकर्ताओं या समूहों का चयन करें

  5. क्लिक करें Object Types...और अनचेक करें Groups, फिर क्लिक करेंOK

    वस्तु प्रकार

  6. क्लिक करें Find Now। यह सभी नियमित उपयोगकर्ताओं और अंतर्निहित सिस्टम उपयोगकर्ताओं ("सुरक्षा सिद्धांतों में निर्मित", जैसा कि विंडोज उन्हें कहता है) को सूचीबद्ध करेगा।

    अभी खोजे

ध्यान दें कि इस पृष्ठ पर दिखाई देने वाले सभी खातों का उपयोग रन-अस कमांड में नहीं किया जा सकता है, हालांकि इन सभी का उपयोग अनुमतियों के संवाद में किया जा सकता है।


4
मैं उस संवाद से परिचित हूं, और पहले ही प्रश्न में इसका उल्लेख कर चुका हूं: "अब खोजो"। ध्यान दें कि जब "उपयोगकर्ता" SYSTEMहै (या कम से कम होना चाहिए), तो TrustedInstaller नहीं है
सिनटेक

क्षमा करें, मुझे लगा कि आप find nowउपयोगकर्ता और समूह नियंत्रण कक्ष के बटन का उल्लेख कर रहे हैं , जो समान है लेकिन थोड़ा अलग है। मेरी जानकारी के लिए, एकमात्र खाता जो यहाँ दिखाई नहीं देता है वह ट्रस्टेडइन्स्टालर है। ऐसा इसलिए है क्योंकि Microsoft आपको TrustedInstaller खाते के साथ / कभी भी कुछ भी करने से रोकने के लिए बहुत अधिक लंबाई में जाता है। यदि आप ऐसा करने के लिए किसी अन्य तरीके के बारे में सोचते हैं तो मैं आपको बता दूंगा।
nhinkle

इसलिए मैं पूछ रहा हूं; मैं सोच रहा हूं कि अन्य
अनजाने

उनमें से अधिकांश के बारे में जानकारी के साथ एक Microsoft TechNet आलेख है, लेकिन TrustedInstaller वहाँ पर नहीं है। support.microsoft.com/kb/243330
nhinkle

1
Locations...यदि आप डोमेन में हैं (लेकिन केवल अपना कंप्यूटर चाहते हैं) तो अपने कंप्यूटर पर सेट करना न भूलें ।
n611x007

4

Windows Vista से, सेवाओं को उपयोगकर्ताओं के रूप में माना जाता है। अर्थात्, प्रत्येक सेवा को एक सुरक्षा पहचानकर्ता (SID) सौंपा गया है। यह TrustedInstaller सेवा के लिए विशिष्ट नहीं है । आप sc showsidकमांड का उपयोग करके किसी भी सेवा को सौंपी गई SID देख सकते हैं :

उपयोग: sc showid [नाम]

वर्णन : एक मनमाना नाम के अनुरूप सेवा SID स्ट्रिंग प्रदर्शित करता है। नाम मौजूदा या गैर-मौजूद सेवा का हो सकता है।

ध्यान दें कि सिस्टम पर सेवा की आवश्यकता नहीं है। उदाहरण:

C:\> sc showsid TrustedInstaller
NAME: TrustedInstaller
SERVICE SID: S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464

या, सेवा के लिए Windows प्रबंधन इंस्ट्रूमेंटेशन ( Winmgmt):

C:\> sc showsid Winmgmt
NAME: Winmgmt
SERVICE SID: S-1-5-80-3750560858-172214265-3889451188-1914796615-4100997547

और, आखिरकार, एक नकली सेवा के लिए:

C:\> sc showsid FakeService
NAME: FakeService
SERVICE SID: S-1-5-80-3664595232-2741676599-416037805-3299632516-2952235698

ध्यान दें कि सभी SID शुरू होते हैं S-1-5-80, जहां उप-प्राधिकरण 80को सौंपा जाता है SECURITY_SERVICE_ID_BASE_RID। इसके अलावा, यह कार्य नियतात्मक है: कोई RID का उपयोग नहीं किया जाता है, और SID सभी प्रणालियों में समान होगा (अधिक जानकारी के लिए इस पोस्ट के अंत में संदर्भ देखें)।

एक उदाहरण के रूप में, मैं NT Service\Winmgmtसेवा प्रदान करूंगा , कुछ फ़ाइल की अनुमति लिखूंगा:

यहाँ छवि विवरण दर्ज करें

विंडोज नाम को रेखांकित करता है Winmgmt, पुष्टि करता है कि यह एक वैध पहचान है:

यहाँ छवि विवरण दर्ज करें

अब, ठीक पर क्लिक करें और फिर लिखित अनुमति दें:

यहाँ छवि विवरण दर्ज करें

यह पुष्टि करता है कि किसी भी सेवा नाम का उपयोग उपयोगकर्ता पहचान के रूप में किया जा सकता है। इसलिए, मैं उन्हें "सुपरर-हिडन" खाते नहीं कहूंगा: डी

अधिक जानकारी के लिए, कृपया निम्नलिखित लेख पढ़ें:


1
बहुत ही रोचक। जानकारी के लिए धन्यवाद!
Synetech

1

आप NetQueryDisplayInformation API का उपयोग कर सकते हैं, उपयोगकर्ता जानकारी फ़्लैग पर बिटवाइज़ चेक के साथ संयोजन कर सकते हैं। मेरे पास एक ही आवश्यकता है, इसलिए मैं एक नमूना कोड (MSDN ग्रुप क्वेरी से संशोधित) पकाना।

मेरे द्वारा उपयोग किया गया उपयोगकर्ता ध्वज UF_NORMAL_ACCOUNT UF_ACCOUNTDISABLE UF_PASSWD_NOTREQD ---> यह सुनिश्चित करता है कि हमें मानव खाता मिले, मानव खाते को हमेशा पासवर्ड की आवश्यकता होती है।

वर्किंग कोड: http://www.cceye.com/list-system-normal-user-account-only/


कृपया सीधे प्रश्न के प्रासंगिक जानकारी को शामिल करने के लिए अपने उत्तर का विस्तार करें। यदि यह लिंक कभी काम करना बंद कर दे तो आपका उत्तर उतना उपयोगी नहीं होगा।
Mxx
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.