Powershell 下载与psget';类似的基本身份验证字符串;s

Powershell 下载与psget';类似的基本身份验证字符串;s,powershell,powershell-2.0,powershell-3.0,Powershell,Powershell 2.0,Powershell 3.0,有人知道我如何修改下面的下载字符串,以便传递基本的身份验证凭据吗 我使用与PsGet()相同的技术下载自己的内部脚本并动态执行它们。但是,我的服务器使用基本身份验证进行保护。我在应用凭据时遇到问题,并且仍然使用调用表达式执行该行 我需要在一行中使用“powershell.exe-Command…”执行它 (新对象Net.WebClient).DownloadString(“”| iex您不能在一行中完成此操作(除非将其包装为cmdlet),但提供所需的凭据非常简单: $wc = New-Obje

有人知道我如何修改下面的下载字符串,以便传递基本的身份验证凭据吗

我使用与PsGet()相同的技术下载自己的内部脚本并动态执行它们。但是,我的服务器使用基本身份验证进行保护。我在应用凭据时遇到问题,并且仍然使用调用表达式执行该行

我需要在一行中使用“powershell.exe-Command…”执行它


(新对象Net.WebClient).DownloadString(“”| iex

您不能在一行中完成此操作(除非将其包装为cmdlet),但提供所需的凭据非常简单:

$wc = New-Object System.Net.WebClient
$wc.Credentials = New-Object System.Net.NetworkCredential "user","pass"
$wc.DownloadString("http://psget.net/GetPsGet.ps1") | iex

尝试在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中的凭据字符串未加密。

Mmm不幸的是,我需要在一行中使用它,因为我想使用powershell.exe远程执行它,并且我无法轻松传输cmdlet。我得另找一条路。感谢您可以使用分号“$wc.UseDefaultCredentials=$true;wc.DownloadString(“”)”在一行上字符串化多个命令。如果您可以检查ScriptBlock参数,它允许发送多行脚本。这真的很有用,我可以将上面的输入作为长字符串传递给powershell.exe的-command参数。我试过了,但运气不好。