Proxy arkasında PowerShell kullanma – PowerShell internet erişimi

Credit: Google Images

İnternet çıkışınızı Proxy sunucusu üzerinden yapıyorsanız, varsayılan olarak bir web sayfasına ( Invoke-WebRequest cmdlet’i) erişemezsiniz. PowerShell oturumunuzdan Update-Help cmdlet’ini kullanarak yardımı güncelleyemez veya harici bir paket deposundan bir uygulama paketi indiremezsiniz. Bu makalede, bir PowerShell oturumunun kimlik doğrulamasıyla proxy sunucusu aracılığıyla Internet erişiminin nasıl sağlanacağını göstereceğiz.

PowerShell Yardımı’nı güncellemeye çalışalım.

Update-Help

Veya harici bir web sayfasına erişimi deneyelim.

Invoke-WebRequest https://teknolojikadam.com

Doğrudan bir internet bağlantınız yoksa, aşağıdaki  gibi hata mesajı görürsünüz.

update-help : Failed to update Help for the module(s) ‘DhcpServer, DirectAccessClientComponents….’  with UI culture(s) {en-US} : Unable to connect to Help content. The server on which Help content is stored might not be available. Verify that the server is available, or wait until the server is back online, and then try the command again.

Invoke-WebRequest: Unable to connect to the remote server 

Sorun, PowerShell’in (HTTP üzerinden harici kaynakları ele almak için bu cmdlet’leri kullanan .NET sınıfı System.Net.WebClient ), IE’de belirtilen sistem proxy ayarlarını kullanmamasıdır. Ancak WebClient sınıfı, proxy ayarlarını (WebClient.Proxy) ve proxy kimlik doğrulama verilerini (WebClient.Credentials veya WebClient.UseDefaultCredentials) belirtmek için izin veren bazı özelliklere sahiptir. WebClient sınıfının bu özelliklerini nasıl kullanacağına bakalım.

PowerShell oturumunda sistem proxy’sinin geçerli ayarlarını kontrol edelim.

netsh winhttp show proxy

Gördüğünüz gibi, proxy ayarları belirtilmemiş.

Current WinHTTP proxy settings:

Direct access (no proxy server)

Aşağıdaki komut ile proxy ayarlarını Internet Explorer parametrelerinden içeri aktarabilirsiniz.

netsh winhttp import proxy source=ie

Veya proxy ayarlarınızı manual olarak yapılandırabilirsiniz.

netsh winhttp set proxy “172.28.10.10:8080”

Etki alanı hesabınızı kullanarak oturum açtıysanız ve proxy’niz NTLM / AD kimlik doğrulamasını destekliyorsa, geçerli kullanıcının kimlik bilgilerini proxy sunucusunda kimlik doğrulaması yapmak için kullanabilirsiniz (kullanıcı adınızı / parolanızı girmeniz gerekmez).

$Wcl = new-object System.Net.WebClient

$Wcl.Headers.Add(“user-agent”, “PowerShell Script”)

$Wcl.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials

Proxy sunucusunda el ile kimlik doğrulaması yapmanız gerekiyorsa, aşağıdaki komutları çalıştırın ve ilgili pencerede kullanıcı adı ve parola belirtin.

$Wcl=New-Object System.Net.WebClient

$Creds=Get-Credential

$Wcl.Proxy.Credentials=$Creds

Artık harici bir web sitesine erişmeyi deneyebilir veya update-help komutunu kullanarak yardımı güncelleyebilirsiniz.

KAYNAKWINDOWS