2012-09-05 11 views
15

का उपयोग कर मूल प्रमाणीकरण के साथ वेबसाइट पर लॉगिन कैसे करें मैं वेबसाइट पर लॉग इन करने और फ़ाइल डाउनलोड करने के लिए PowerShell का उपयोग करने का प्रयास कर रहा हूं।पावरहेल

हालांकि मैं प्रमाण पत्र को सही तरीके से पास करने के लिए पीएस नहीं प्राप्त कर सकता।

$webclient = new-object System.Net.WebClient 
$webclient.Credentials = new-object System.Net.NetworkCredential("username","password","domain") 
$webpage = $webclient.DownloadString("url goes here") 

यहाँ बॉक्स में लॉग मुझे मिलता है जब मैं IE में साइट मारा है:

यहाँ मेरी पुनश्च है enter image description here

उत्तर

15

की आवश्यकता वाली वेबसाइट से संबंधित हो सकती है जो मुझे काम करने के लिए मिला है। मेरा मानना ​​है कि महत्वपूर्ण हिस्सा "मूल" CredentialCache

$webclient = new-object System.Net.WebClient 
$credCache = new-object System.Net.CredentialCache 
$creds = new-object System.Net.NetworkCredential("un","pw") 
$credCache.Add("url", "Basic", $creds) 
$webclient.Credentials = $credCache 
$webpage = $webclient.DownloadString("url") 
-1

क्या आप (काम कुछ अन्य के साथ कोड का प्रयास करना चाहिए है साइटों)। आम तौर पर, एक अवैध उपयोगकर्ता नाम/पासवर्ड कोड को 401 त्रुटि (विंडोज़ सुरक्षा लॉगिन विंडो नहीं) के साथ विफल कर देगा। समस्या Windows Integrated Authentication

5

में है आप WebClient के बजाय Invoke-WebRequest उपयोग करना चाहते हैं:

$securepassword = ConvertTo-SecureString "password" -AsPlainText -Force 
$credentials = New-Object System.Management.Automation.PSCredential("username", $securepassword) 
Invoke-WebRequest -Uri "url goes here" -Credential $credentials 

मैं this blog article by Douglas Tarr पर कोड आधारित। ध्यान दें कि लेख में उपयोगकर्ता नाम और पासवर्ड उलझन में हैं, लेकिन मैंने उन्हें अपने नमूने में ठीक कर दिया है।

0

इस तरह मैंने किया,

पहले एक download.ps1 फ़ाइल कि powershell स्क्रिप्ट में शामिल है, बनाया

फिर एक बैच फ़ाइल के माध्यम से इस स्क्रिप्ट चलाने:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File C:\Users\SS\Desktop\download.ps1 

यह पावरशेल स्क्रिप्ट है:

3

किसी कारण से मैं काम करने के लिए इनमें से कोई भी समाधान प्राप्त नहीं कर पाया (Win 10 पर PowerShell 5 का उपयोग करके)। शायद एक स्पष्ट, मूर्ख-कठोर परिस्थिति हो सकती है क्योंकि मैं अक्सर पीएस का उपयोग नहीं करता हूं। लेकिन एफडब्ल्यूआईडब्ल्यू इस प्रकार मैं इसे प्राधिकरण शीर्षलेख को मैन्युअल रूप से सेट करके, इसे काम करने में सक्षम था।

$url = "{url here}" 
$username = "{username here}" 
$password = "{password here}" 

$b = [System.Text.Encoding]::UTF8.GetBytes($username + ":" + $password) 
$p = [System.Convert]::ToBase64String($b) 

$creds = "Basic " + $p 

Invoke-WebRequest -Uri $url -Headers @{"Authorization"=$creds} 

किसी भी कारण से, अन्य उत्तरों ने अनुरोध किए हैं लेकिन कोई प्राधिकरण शीर्षलेख कभी नहीं भेजा गया था।