क्या उपयोगकर्ता क्रेडेंशियल्स को सत्यापित करने के लिए एक विंडोज कमांड लाइन उपयोगिता है?


19

एक Windows मंच पर, वहाँ किसी भी कमांड लाइन उपयोगिता है कि मैं एक से पारित सकता है username, password domain nameक्रम क्रेडेंशियल की पुष्टि करने में करने के लिए (या संभवतः एक त्रुटि दे कि खाता अक्षम है मौजूद है या समाप्त हो नहीं है,)?


2
आपको किसी के क्रेडेंशियल्स को सत्यापित करने की आवश्यकता क्यों होगी, लेकिन आपकी अपनी। एक जिम्मेदार और सम्मानजनक SysAd के रूप में, आपको किसी और के क्रेडेंशियल (शायद रूट या डोमेन व्यवस्थापक खातों को छोड़कर) को जानने की कोई आवश्यकता नहीं है।
ग्वेल्डो

6
@gWaldo: मैं यहां एक सॉफ्टवेयर इंजीनियर के रूप में आया था जो एक इंस्टॉलर प्रोग्राम लिख रहा है, जो किसी उपयोगकर्ता को किसी मौजूदा मशीन खाते की साख के लिए पूछता है, जिसे हम बाद में कोड-स्तर Win32 एपीआई प्रतिरूपण कॉल के लिए स्टोर (एन्क्रिप्टेड) ​​करते हैं। मुझे यह प्रश्न और उत्तर प्रासंगिक और उपयोगी लगे, साथ ही वैध भी।
माइक एटलस

1
मैंने उपयोगकर्ताओं को एक डिफ़ॉल्ट पासवर्ड सेट किया और उन्हें इसे बदलने के निर्देश दिए। अब कुछ हफ़्ते बाद, मैं जानना चाहता हूं कि कौन है और कौन नहीं।
मार्क बेरी

@ मार्केबरी आपको अगले लॉगऑन पर अपना पासवर्ड बदलने के लिए मजबूर कर उपयोगकर्ता प्रोफ़ाइल में चेकबॉक्स पर टिक करना चाहिए।
क्रेग

2
@ क्रेग, भले ही मैं उन्हें लॉगिन पर अपना पासवर्ड बदलने के लिए मजबूर करता हूं, लेकिन फिर भी यह गारंटी नहीं देता कि वे एक हफ्ते या एक महीने बाद लॉग इन हुए हैं; मुझे कमांड लाइन से जांचने का एक तरीका चाहिए। नेटवर्क स्तर प्रमाणीकरण सक्षम होने पर मजबूर पासवर्ड परिवर्तन दूरस्थ उपयोगकर्ताओं को भी लॉक कर सकता है। और कभी-कभी, पासवर्ड बदलने के लिए कंपनी (ग्राहक) को एक नरम स्पर्श की आवश्यकता होती है।
मार्क बेरी

जवाबों:


14

आप net useकमांड-लाइन पर उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट करते हुए कमांड का उपयोग कर सकते हैं (फॉर्म में net use \\unc\path /user:username passwordऔर errorlevelयह सत्यापित करने के लिए लौटें कि क्या कोई क्रेडेंशियल वैध है।

runasआदेश काम करेगा, भी, सिवाय इसके कि आप एक मुश्किल समय उत्पादन का परीक्षण करने जा रहे हैं।

खाते के अस्तित्व के लिए एक साख का परीक्षण करना उपयोग करने की बात होगी net userया dsquerynet userआदेश आपको बता नहीं होगा एक खाता से रोक दिया जाता है, लेकिन क्वेरी करने यदि lockoutTimeउपयोगकर्ता खाते की विशेषता आपको लगता है कि बता सकते हैं।


7
runas /user:username cmdएक नई कमांड लाइन विंडो खोलेगी जैसे usernameकि आप वैध पासवर्ड प्रदान करते हैं और वह उपयोगकर्ता इस कंप्यूटर पर लॉगिन कर सकता है। मैं आमतौर पर परीक्षण करने के लिए एक खोल खोलूंगा कि पासवर्ड अभी भी उनकी व्यक्तिगत जानकारी के आधार पर डिफ़ॉल्ट है जिसे मैं देख सकता हूं।
साइकोडाटा

13

शक्तियों में:

Function Test-ADAuthentication {
    param($username,$password)
    (new-object directoryservices.directoryentry "",$username,$password).psbase.name -ne $null
    }

PS C:\> Test-ADAuthentication "dom\myusername" "mypassword"
True
PS C:\>

संदर्भ: /programming/7663219/how-to-authenticate-an-user-in-activedirectory-with-powershell


मैं ObjectNotFound: (Test-ADAuthentication:String) [], CommandNotFoundExceptionयहां पहुंच रहा हूं । क्या यह विशेष रूप से एक डोमेन नियंत्रक पर काम करता है और स्थानीय खातों के लिए नहीं?
सैटॉमिक

1
@SaAtomic इसे चलाने से पहले आपको अपने सत्र में फ़ंक्शन को परिभाषित करना होगा। Test-ADAuthenticationको
पॉवरशेल

1
एक बात जो मुझे वास्तव में पसंद नहीं है, वह यह है कि आप पासवर्ड को एक सुरक्षित स्ट्रिंग के रूप में नहीं पढ़ते हैं। सादा पाठ पासवर्ड हमेशा एक बुरा विचार है। $pass = Read-Host -assecurestring 'Enter password'
कोलोब कैन्यन

1

बस यह जोड़ना चाहता था कि चूंकि AD एक LDAP सर्वर है, इसलिए आप इसे 'बाइंड' करने के लिए LDAP कमांड लाइन टूल का उपयोग कर सकते हैं, इस प्रकार यह पुष्टि करता है कि यह सक्रिय है या नहीं। आप उच्च विशेषाधिकार वाले उपयोगकर्ता के रूप में भी बंध सकते हैं और फिर LDAP सिद्धांतों का उपयोग करके AD तक पहुंच सकते हैं।

लेकिन हे - Powershell के साथ कुछ भी गलत नहीं है!

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