windows - powershell en liner for at downloade filen med legitimationsoplysninger

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger for øjeblikket at instruere en nyoprettet Windows shell til at downloade et powershell script via autounattend.xml fil. Med den teknik har jeg brug for en en liner for at få arbejdet gjort.


Jeg plejede at kunne downloade dem fra et offentligt miljø ved hjælp af denne one-liner:


<Path>powershell -NoLogo -Command "((new-object System.Net.WebClient).DownloadFile('https://some.remote.public.location/myfile.ps1', 'c:WindowsTempmyfile.ps1')"</Path>


Men nu skal jeg give korrekt legitimationsoplysninger for at downloade min fil fra et privat sted. Jeg prøvede følgende og det virker ikke:


<Path>powershell -NoLogo -Command "((new-object System.Net.WebClient).Credentials = new-object System.Net.NetworkCredential("user123", "password123")).DownloadFile('https://some.remote.private.location/myfile.ps1', 'c:WindowsTempmyfile.ps1')"</Path>


(Jeg er en rookie i powerhell:/)


Hvordan kan jeg give de korrekte legitimationsoplysninger til DownloadFile-metoden i en enkelt liner?


Eller er der en anden kommando bedre egnet til jobbet?


Tak.

Bedste reference


Hvis du bruger PowerShell 3.0 eller nyere, kan du prøve dette:


<Path>powershell -NoLogo -Command "Invoke-WebRequest -Uri 'https://some.remote.private.location/myfile.ps1' -OutFile 'c:WindowsTempmyfile.ps1' -UseBasicParsing -Credential (New-Object PSCredential('user123', (ConvertTo-SecureString -AsPlainText -Force -String 'password123')))"</Path>


I PowerShell 2.0:


<Path>powershell -NoLogo -Command "$webClient = new-object System.Net.WebClient; $webClient.Credentials = new-object System.Net.NetworkCredential('user123', 'password123'); $webClient.DownloadFile('https://some.remote.private.location/myfile.ps1', 'c:WindowsTempmyfile.ps1')"</Path>