वर्तमान डोमेन उपयोगकर्ता का पूरा नाम पुनः प्राप्त करें


23

PowerShell का उपयोग करते हुए, मैं ActiveDirect मॉड्यूल की आवश्यकता के बिना वर्तमान में डोमेन उपयोगकर्ता के पूर्ण नाम (न केवल इसके उपयोगकर्ता नाम) पर कैसे लॉग इन कर सकता हूं?

जवाबों:


24
$dom = $env:userdomain
$usr = $env:username
([adsi]"WinNT://$dom/$usr,user").fullname

यह दिखाता है:

John Doe

कुछ अन्य (अधिकतर) अस्पष्ट गुण भी उपलब्ध हैं। कुछ उपयोगी:

  • घर का काम यूएनसी
  • होमरेड लेटर
  • विवरण
  • लॉगिन स्क्रिप्ट

प्रयत्न:

[adsi]"WinNT://$dom/$usr,user" | select *

3
अच्छा उत्तर। बेशक, यह है ई क्वेरी करने ... :)
मास्सिमो

1
क्या मुझे इस आदेश को चलाने के लिए डोमेन व्यवस्थापक अधिकारों की आवश्यकता है? या क्या डोमेन उपयोगकर्ता स्वयं इस कमांड को चला सकता है?
जोनाथन रिओक्स

1
इस तरह की जानकारी के लिए कोई भी डोमेन उपयोगकर्ता विज्ञापन को क्वेरी कर सकता है।
मासिमो

1
@Massimo इस तरह की जानकारी के लिए कोई भी डोमेन उपयोगकर्ता विज्ञापन को क्वेरी नहीं कर सकता है। उपयोगकर्ताओं को "पढ़ें खाता प्रतिबंध" अनुमति नहीं दी जा सकती (या अस्वीकृत), और सक्रिय निर्देशिका से किसी भी डेटा को क्वेरी करने में असमर्थ हो सकते हैं
इयान बॉयड

15

मुझे स्वीकृत उत्तर पसंद है, लेकिन सिर्फ इसलिए कि मैं खुद इसे आज़माना चाहता था:

$user = whoami
Get-WMIObject Win32_UserAccount | where caption -eq $user | select FullName

रिटर्न:

FullName
--------
TheCleaner

या यदि आप शीर्ष लेख की जानकारी और सिर्फ परिणाम नहीं चाहते हैं:

$user = whoami
Get-WMIObject Win32_UserAccount | where caption -eq $user | select FullName | ft -hide

मैं इसे बहुत जल्दी पढ़ता हूं, यह क्वेरी AD करता है । मैं मौखिक रूप से अपना वोट वापस लेता हूं।
MDMoore313

2
लेकिन AD PS मॉड्यूल की आवश्यकता नहीं है
स्क्वील्मन

3
@squillman यह नहीं है, बस क्लीनर को एक कठिन समय दे रहा है।
एमडीमोइरे 313

पकड़ लिया। क्षमा करें, निश्चित रूप से डिकैफ़िनेटेड हो गया होगा ...
स्क्विलमैन

7

Powershell 3.0 का उपयोग कर एक लाइनर:

gwmi win32_useraccount | where {$_.caption -match $env:USERNAME} | select fullname | ft -HideTableHeaders

3

Craig620 के स्वीकृत उत्तर पर आपकी टिप्पणी के आधार पर,

क्या मुझे इस आदेश को चलाने के लिए डोमेन व्यवस्थापक अधिकारों की आवश्यकता है? या क्या डोमेन उपयोगकर्ता स्वयं इस कमांड को चला सकता है?

ऐसा लगता है कि आप उपयोगकर्ता कार्यस्थानों पर पॉवरशेल मॉड्यूल स्थापित करने से बचने की कोशिश कर रहे हैं, हां, लेकिन यह भी, नहीं, आपको AD में अपना नाम देखने के लिए एक डोमेन व्यवस्थापक होने की आवश्यकता नहीं है। आप एक मानक उपयोगकर्ता के रूप में पूर्ण नाम सहित, आउटलुक में GAL में दिखाई देने वाली बहुत अधिक जानकारी देख सकते हैं।

आप AD में एक मानक उपयोगकर्ता के रूप में अन्य लोगों का पूरा नाम देख सकते हैं ( Get-WmiObject Win32_userAccountयदि आप AD मॉड्यूल से बचना चाहते हैं)। सेवा खाते जो क्वेरी AD (अच्छी तरह से, प्रबंधित सेवा खातों से पहले ) आमतौर पर मानक, अप्रभावित AD उपयोगकर्ता हैं।


1

का उपयोग करना -मैच एक अच्छा विकल्प नहीं है क्योंकि एक $ en: USERNAME of "ed" "fred" और "edit" से मेल खाएगा। इसके बजाय एक सटीक मैच के लिए -q का उपयोग करें और यदि आवश्यक हो तो डोमेन में जोड़ें। मैं एक अनुगामी व्हाट्सएप को "एक पूर्ण चयन | फुलनाम | ft -HideTableHeaders" के विकल्प के रूप में बंद करने के लिए अंत में एक फॉर्च लूप का उपयोग करता हूं जो एक अग्रणी और अनुगामी न्यूलाइन प्रिंट करता है।

gwmi win32_useraccount | where {$_.caption -eq $("domain\" + $env:USERNAME)} | foreach {$_.fullname}

1

यदि आपको हमेशा .Net 3.5 या अधिक मिलता है (जो आपको PowerShell v4.0 और उच्चतर के साथ चाहिए):

Add-Type -AssemblyName System.DirectoryServices.AccountManagement;
$DisplayName = [System.DirectoryServices.AccountManagement.UserPrincipal]::Current.DisplayName;

वह वर्ग सभी सामान्य LDAP संपत्तियों तक बहुत आसान पहुँच प्रदान करता है, इसलिए आपको दो बार (एक बार WinNT और फिर LDAP के साथ) लुकअप करने की आवश्यकता नहीं है या [ADSISearcher]यदि आप कुछ विस्तारित गुण जो WinNT लागू नहीं करते हैं, तो LDAP खोज करने के लिए उपयोग करें ।


0

यदि आप सक्रिय निर्देशिका मॉड्यूल का उपयोग नहीं करना चाहते हैं, तो आप नहीं कर सकते हैं; जब तक आप और भी गहरे जाना चाहते हैं और एक डोमेन नियंत्रक के खिलाफ वास्तविक LDAP क्वेरी निष्पादित करते हैं।

उपयोगकर्ता नाम के अलावा किसी भी उपयोगकर्ता जानकारी को सक्रिय निर्देशिका में संग्रहीत किया जाता है, और इसे फिर से प्राप्त करना होगा।


लेकिन जब मैं स्टार्ट मेनू खोलता हूँ, तो उपयोगकर्ता का पूरा नाम यहाँ दिखाया गया है! मेरा मतलब है, यह कहीं संग्रहीत किया जाना चाहिए?
जोनाथन रिउक्स

4
हाँ, यह कहीं संग्रहीत है। इसे सक्रिय निर्देशिका में संग्रहीत किया जाता है।
कैथरीन विलिअर्ड

यह शायद रजिस्ट्री में संग्रहीत / कैश किया गया है, लेकिन मुझे यह आसानी से नहीं मिला और छोड़ दिया।
mfinni

1
यह सच है कि यह AD में संग्रहीत है, लेकिन [ADSI]इंटरफ़ेस AD मॉड्यूल की तुलना में बहुत अधिक लंबा है, और वास्तव में यह सभी जटिल नहीं है, जैसे स्वीकृत डेटा शो।
हंटर ईडनसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.