
एक PowerShell स्क्रिप्ट जो डोमेन से जुड़ी न होने वाली मशीन से Windows API के साथ PKINIT प्रमाणीकरण करती है।
एक PowerShell स्क्रिप्ट जो गैर-डोमेन-युक्त मशीन से Windows API के साथ PKINIT प्रमाणीकरण करती है।
यह cmdlet निर्दिष्ट प्रमाणपत्र के साथ PKINIT के माध्यम से एक नया लॉगऑन सत्र बनाता है।
इसे गैर-डोमेन-युक्त VM पर चलाने के लिए बनाया गया है। इस cmdlet के दो मोड हैं: एक जो रजिस्ट्री कुंजियाँ सेट करता है और एक जो डोमेन कंट्रोलर के प्रमाणपत्र से संबंधित क्लाइंट-साइड जाँचों को बायपास करने के लिए LSASS मेमोरी को पैच करता है। ये जाँचें उस मशीन पर चलने पर विफल हो जाती हैं जो डोमेन से जुड़ी नहीं है।
रजिस्ट्री मोड (डिफ़ॉल्ट) में, प्रासंगिक रजिस्ट्री कुंजियों को सेट करने (और अंत में उन्हें पुनर्स्थापित करने) के लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता होती है। यदि कुंजियाँ पहले से सेट हैं, तो व्यवस्थापक विशेषाधिकारों की आवश्यकता नहीं है। इसके अलावा, CA प्रमाणपत्र को विश्वसनीय प्रमाणन प्राधिकरणों की सूची में जोड़ा जाना चाहिए। यदि यह विधि विफल हो जाती है (उदाहरण के लिए ऐसी जाँच के कारण जो रजिस्ट्री कुंजियों से बायपास नहीं होती), तो पैच विधि आज़माई जा सकती है। यह कम सुरुचिपूर्ण है, लेकिन KDC प्रमाणपत्र से संबंधित किसी भी क्लाइंट-साइड जाँच को बायपास कर देगी।
पैच मोड (-PatchLsass) में, LSASS में KerbCheckKdcCertificate फ़ंक्शन को पैच किया जाएगा। चूँकि KerbCheckKdcCertificate को kerberos.dll द्वारा निर्यात नहीं किया जाता, इसलिए प्रतीकों को पुनर्प्राप्त करने की आवश्यकता होती है। इस cmdlet द्वारा प्रतीकों को स्वचालित रूप से पुनर्प्राप्त करने के लिए, पर्यावरण चर _NT_SYMBOL_PATH को परिभाषित करना आवश्यक है (उदाहरण के लिए SRV*c:\symbols*https://msdl.microsoft.com/download/symbols)। यदि प्रतीक पहले से डिस्क पर नहीं हैं, तो उन्हें डाउनलोड करने के लिए इंटरनेट कनेक्शन की आवश्यकता होती है। प्रतीकों को डाउनलोड करने के लिए Windows SDK की भी आवश्यकता होती है। डिफ़ॉल्ट रूप से, स्क्रिप्ट अपनी आवश्यक DLL (dbghelp.dll और symsrv.dll) खोजने के लिए C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 में देखेगी।
अधिक विस्तृत विवरण के लिए, संबंधित ब्लॉग पोस्ट देखें।
PS > Invoke-RunAsWithCert user.pfx -Domain CORP.LOCAL