सारांश

DevOps पर हमारी निर्माण प्रक्रिया के हिस्से के रूप में, मैं एक आंतरिक नेटवर्क शेयर पर एक विशिष्ट फ़ोल्डर में बिल्ड आर्टिफैक्ट की प्रतिलिपि बनाने का प्रयास कर रहा हूं। समस्या यह है, हालांकि बिल्ड एजेंट हमारे आंतरिक नेटवर्क पर है, लेकिन DevOps सेवा के पास किसी भी नेटवर्क शेयर तक पहुंचने की अनुमति नहीं है।

मुझे लगता है कि मैं पावरशेल स्क्रिप्ट में वैध लॉगिन प्रमाण-पत्र प्रदान करके इसे प्राप्त कर सकता हूं जो काम करता है, लेकिन मुझे प्रमाण-पत्र स्वीकार करने में परेशानी हो रही है। हालांकि क्रेडेंशियल के बिना फ़ोल्डर संरचना को देखना संभव प्रतीत होता है, वास्तव में संशोधन करना (फ़ाइलें और/या फ़ोल्डर बनाना/हटाना) मुझे एक्सेस अस्वीकृत या प्रमाणीकरण अस्वीकृत संदेश दे रहा है।

मैंने जो कोशिश की है

सबसे पहले, मैं एक बहुत ही सरल क्रिएट फोल्डर कमांड कर रहा था:

# NETWORK_SHARE would be the internal IP of the target public folder on the network, like 12.345.678.90
New-Item -Path "NETWORK_SHARE\path\to\folder" -ItemType Directory

लेकिन वह मुझे एक एक्सेस अस्वीकृत त्रुटि दे रहा था:

नया-आइटम: पथ 'फ़ोल्डर' तक पहुंच से इनकार किया गया है।

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

$username = "MyUsername"
$password = ConvertTo-SecureString "MyPassword" -AsPlainText -Force
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $password

# NETWORK_SHARE would be the internal IP of the target public folder on the network, like 12.345.678.90
Invoke-Command -ComputerName "NETWORK_SHARE" -ScriptBlock { New-Item -Path $args[0] -ItemType Directory } -Cred $credentials -Authentication Credssp -ArgumentList "NETWORK_SHARE\path\to\folder"

मुझे जो त्रुटि मिल रही है वह निम्न है:

निम्न त्रुटि संदेश के साथ दूरस्थ सर्वर NETWORK_SHARE से कनेक्ट करना विफल रहा: WinRM क्लाइंट अनुरोध को संसाधित नहीं कर सकता। क्रेडएसएसपी प्रमाणीकरण वर्तमान में क्लाइंट कॉन्फ़िगरेशन में अक्षम है। क्लाइंट कॉन्फ़िगरेशन बदलें और फिर से अनुरोध करने का प्रयास करें। सर्वर कॉन्फ़िगरेशन में CredSSP प्रमाणीकरण भी सक्षम होना चाहिए। साथ ही, लक्ष्य कंप्यूटर को क्रेडेंशियल डेलिगेशन की अनुमति देने के लिए समूह नीति को संपादित किया जाना चाहिए। gpedit.msc का उपयोग करें और निम्न नीति देखें: कंप्यूटर कॉन्फ़िगरेशन -> प्रशासनिक टेम्पलेट -> सिस्टम -> क्रेडेंशियल प्रतिनिधिमंडल -> नए क्रेडेंशियल्स को सौंपने की अनुमति दें। सत्यापित करें कि यह लक्ष्य कंप्यूटर के लिए उपयुक्त SPN के साथ सक्षम और कॉन्फ़िगर किया गया है। उदाहरण के लिए, लक्ष्य कंप्यूटर नाम "myserver.domain.com" के लिए, SPN निम्न में से एक हो सकता है: WSMAN/myserver.domain.com या WSMAN/*.domain.com

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

1
Mage Xy 2 जुलाई 2019, 00:03

1 उत्तर

सबसे बढ़िया उत्तर

मैंने इसके लिए एक गैर-पावरशेल दृष्टिकोण अपनाना समाप्त कर दिया। चूंकि मेरे पास बिल्ड एजेंट तक पहुंच थी, इसलिए मैंने डिफ़ॉल्ट "नेटवर्क सेवा" उपयोगकर्ता के बजाय वैध उपयोगकर्ता के प्रमाण-पत्रों के साथ चलने के लिए DevOps सेवा को कॉन्फ़िगर किया। इसने DevOps सेवा को सभी आवश्यक अनुमतियाँ प्रदान कीं, और मैं एक तुच्छ PS स्क्रिप्ट लिखने में सक्षम था जो नेटवर्क शेयर पर फ़ोल्डर्स बनाता / कॉपी / हटाता है।

0
Mage Xy 2 जुलाई 2019, 20:56