2013-01-10 42 views
12

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

$wc = New-Object System.Net.WebClient 
$wc.Headers.Add("User-Agent","Mozilla/4.0+")   
$wc.Proxy = [System.Net.WebRequest]::DefaultWebProxy 
$wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials 
$wc.DownloadString("http://stackoverflow.com") 
+1

पूर्ण स्रोत कोड नमूना के साथ कोई अंतिम समाधान? – Kiquenet

+1

मैंने उपर्युक्त कोड और कई भिन्नताओं को भी आजमाया है, हमेशा 407 त्रुटि प्राप्त कर रहा है। – Bratch

उत्तर

0

आप स्क्रिप्ट जानते हैं:

यहाँ मैं क्या करने की कोशिश की की एक उदाहरण है। प्रमाणीकरण के लिए - संभवतः आपके विंडोज क्रेडेंशियल्स का उपयोग किया जाता है, इसलिए सिद्धांत में आपको इसे खाली रखने में सक्षम होना चाहिए, जब तक कि स्क्रिप्ट में कुछ संदिग्ध न हो।

0

जोड़ने का प्रयास करें कैश साख ....

$domain = 'ChDom' 
$Client = new-object System.Net.WebClient 
$cc = New-object System.Net.CredentialCache 
$urlObj = New-object System.Uri($url) 

#these variables must be plaintext strings 
$creds = New-object System.Net.NetworkCredential($Username,$Password) 

#your auth might be different than mine 
$cc.add($urlobj,"NTLM",$creds) 
$client.Credentials = $cc 
$Client.Downloadfile($url, C:\Temp\TestPage.html) 
41

मैं ने वही समस्या थी और powershell की सिर्फ दो लाइनों के साथ इसका समाधान नहीं:

$browser = New-Object System.Net.WebClient 
$browser.Proxy.Credentials =[System.Net.CredentialCache]::DefaultNetworkCredentials 

आशा इस मदद करता है।

+0

ने भी मेरी मदद की। +1 – ulidtko

+0

काम किया- धन्यवाद! –

+0

PowerShell 2 में मेरे लिए काम नहीं करता है। फिर भी "(407) प्रॉक्सी प्रमाणीकरण आवश्यक है।" विन 7, आईई 11। – Bratch

1

तो आप का उपयोग निम्न आप अपने क्रेडेंशियल दर्ज करने का संकेत प्राप्त करेंगे: प्रॉक्सी जवाब "407", "प्रॉक्सी प्रमाणीकरण आवश्यक" अगर

$client.Credentials = Get-Credential 
+1

यह मेरे लिए काम करता है जब Leiningen स्थापित करने के लिए अन्य सभी तरीकों को स्थापित किया गया ('lein self-install') विफल रहा। मैंने अभी इस बदलाव को 'lein.bat' में संपादित किया है। –

3

, तो प्रमाणीकरण की जरूरत है:

$Username="Hugo" 
$Password="abcdefgh" 
$WebProxy = New-Object System.Net.WebProxy("http://webproxy:8080",$true) 
$url="http://aaa.bbb.ccc.ddd/rss.xml" 

$WebClient = New-Object net.webclient 

$WebClient.Proxy=$webproxy 
$WebClient.proxy.Credentials = New-Object System.Net.NetworkCredential($Username, $Password) 
$path="C:\Users\hugo\xml\test.xml" 
$WebClient.DownloadFile($url, $path) 

सामग्री अब "test.xml" में रहता है

3

मैं कुछ इस तरह कर रही है किसी को भी नहीं देखा है लेकिन वहाँ एक "वैश्विक सेटिंग" अपने PowerShell में के रूप में यह करने के लिए एक रास्ता है स्क्रिप्ट (मुझे स्थानीय देव निर्माण के लिए पहले सी # में ऐसा करना याद है)।

[System.Net.WebRequest]::DefaultWebProxy = [System.Net.WebRequest]::GetSystemWebProxy() 
[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials 

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

नोट: मैं कहूँगा कि यह एक त्वरित और गंदा तरीका एक पुनश्च कि काम कर स्क्रिप्ट से पहले प्रॉक्सी पता नहीं था प्राप्त करने के लिए (जैसे Cake build) के रूप में ही उपयोगी है।