[PowerShell] Скачивание файла с авторизацией CMD и PowerShell

alex_diablo

Постоянный участник
Сообщения
144
Реакции
9
добрый день. есть такой код:

CMD/BATCH:
@echo off
SetLocal EnableExtensions
set "ps=" & for %%X in (powerShell.exe) do set "ps=%%~$PATH:X"
"%ps%" -ExecutionPolicy ByPass -NoProfile -file "%WINDIR%\Setup\Scripts\download.ps1"

есть скрипт powershall:

PowerShell:
$client = new-object System.Net.WebClient
$client.DownloadFile("http://site.com/win10inst/scripts.zip","C:\Windows\Setup\Scripts\scripts.zip")

Expand-Archive -Path "C:\Windows\Setup\Scripts\scripts.zip" -Force -DestinationPath "C:\Windows\Setup\Scripts\"

батник запускает powershall, который скачивает архив и распаковывает.

как указать скрипте скачивания логин и пароль для авторизации?
 
Последнее редактирование модератором:
Так
PowerShell:
$password = "mypassword" | ConvertTo-SecureString -asPlainText -Force
$username = "ALEX-PC\Administrator" 
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Invoke-WebRequest -Uri "http://site.com/win10inst/scripts.zip" -OutFile "C:\path\file" -Credential $credential

Так:
PowerShell:
$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")

Или вот так:

PowerShell:
$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}
 
не работают что-то...

P:\>E:\work\NEW_STUDIO\scripts\pshell.bat
Имя "Invoke-WebRequest" не распознано как имя командлета, функции, файла скрипта или выполняемой пр
ограммы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего по
вторите попытку.
E:\work\NEW_STUDIO\scripts\download_new.ps1:4 знак:18
+ Invoke-WebRequest <<<< -Uri "http://domain.ru/win10inst2/test.zip" -OutFile "E:\wo
rk\NEW_STUDIO\scripts\test.zip" -Credential $credential
+ CategoryInfo : ObjectNotFound: (Invoke-WebRequest:String) [], CommandNotFoundExcept
ion
+ FullyQualifiedErrorId : CommandNotFoundException


P:\>
 
в итоге сделал так:

PowerShell:
$download_url = "http://domain.ru/win10inst2/test.zip"
$local_path = "E:\work\NEW_STUDIO\scripts\test.zip"
$user = "username"
$pass = "password"

$WebClient = New-Object System.Net.WebClient
$WebClient.Credentials = New-Object System.Net.NetworkCredential($user, $pass)
$WebClient.DownloadFile($download_url, $local_path)

set-alias sz "$env:ProgramFiles\7-Zip\7z.exe"
sz x -r E:\work\NEW_STUDIO\scripts\test.zip -oE:\work\NEW_STUDIO\scripts\
 
Назад
Сверху Снизу