1

以下の DownloadString を変更して、基本的な認証資格情報も渡すことができる方法を知っている人はいますか?

PsGet ( http://psget.net/ ) で使用されているのと同じ手法を使用して、独自の内部スクリプトをダウンロードし、その場で実行しています。ただし、私のサーバーは基本認証を使用して保護されています。資格情報を適用しても、Invoke-Expression を使用して行を実行するのに問題があります。

「powershell.exe -Command ...」を使用して実行しているため、1行で実行する必要があります。

(新しいオブジェクト Net.WebClient).DownloadString(" http://psget.net/GetPsGet.ps1 ") | iex

4

2 に答える 2

3

これを 1 行で行うことはできませんが (コマンドレットとしてラップしない限り)、必要な資格情報を提供するのは簡単です。

$wc = New-Object System.Net.WebClient
$wc.Credentials = New-Object System.Net.NetworkCredential "user","pass"
$wc.DownloadString("http://psget.net/GetPsGet.ps1") | iex
于 2013-04-24T22:03:27.190 に答える
0

WebClient で認証ヘッダーを設定してみてください。

$wc = New-Object -TypeName System.Net.WebClient
$cred = 'bob:password'
$enc_cred = [convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($cred))
$wc.Headers.Add("Authorization","Basic $enc_cred")
$wc.DownloadString("http://localhost:81/") | Invoke-Expression

注 - base64 の資格情報文字列は暗号化されていません。

于 2013-04-24T22:19:44.070 に答える