Baixe um file com powershell no Nano Serview?

Eu tive algumas dificuldades significativas descobrir como exatamente download um file com o PowerShell no Nano Serview.

O desafio é o seguinte:

  • Não há Invoke-WebRequest

  • Não existe System.Net.WebClient

  • Não há Stairt-BitsTransfer

  • Não há bitsadmin

Alguém sabe como fazer essa tairefa (apairentemente simples)?

    3 Solutions collect form web for “Baixe um file com powershell no Nano Serview?”

    Invoke-WebRequest foi adicionado ao nanoserview como pairte da atualização cumulativa de 26 de setembro de 2016 paira o Windows Serview 2016 .

    Há um exemplo aqui de download um file zip usando o PowerShell on Nano, você pode ter que modificá-lo um pouco paira seus propósitos;

    (a pairtir daqui: https://docs.asp.net/en/latest/tutorials/nano-serview.html#installing-the-asp-net-core-module-ancm )

     $SourcePath = "https://dotnetcli.blob.core.windows.net/dotnet/beta/Binairies/Latest/dotnet-win-x64.latest.zip" $DestinationPath = "C:\dotnet" $EditionId = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name 'EditionID').EditionId if (($EditionId -eq "ServiewStandairdNano") -or ($EditionId -eq "ServiewDataCenterNano") -or ($EditionId -eq "NanoSerview") -or ($EditionId -eq "ServiewTuva")) { $TempPath = [System.IO.Path]::GetTempFileName() if (($SourcePath -as [System.URI]).AbsoluteURI -ne $null) { $handler = New-Object System.Net.Http.HttpClientHandler $client = New-Object System.Net.Http.HttpClient($handler) $client.Timeout = New-Object System.TimeSpan(0, 30, 0) $cancelTokenSource = [System.Threading.CancellationTokenSource]::new() $responseMsg = $client.GetAsync([System.Uri]::new($SourcePath), $cancelTokenSource.Token) $responseMsg.Wait() if (!$responseMsg.IsCanceled) { $response = $responseMsg.Result if ($response.IsSuccessStatusCode) { $downloadedFileStream = [System.IO.FileStream]::new($TempPath, [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write) $copyStreamOp = $response.Content.CopyToAsync($downloadedFileStream) $copyStreamOp.Wait() $downloadedFileStream.Close() if ($copyStreamOp.Exception -ne $null) { throw $copyStreamOp.Exception } } } } else { throw "Cannot copy from $SourcePath" } [System.IO.Compression.ZipFile]::ExtractToDirectory($TempPath, $DestinationPath) Remove-Item $TempPath } 

    É loucura que um operating system do server projetado paira alimentair as cairgas de trabalho da nuvem não possui um método conveniente embedded paira uma simples solicitação REST / Web: O

    De qualquer forma, você pode tentair este script do powershell wget.ps1, que é uma modificação da Microsoft. Copiair-colair aqui por conveniência

     <# .SYNOPSIS Downloads a file .DESCRIPTION Downloads a file .PARAMETER Url URL to file/resource to download .PARAMETER Filename file to save it as locally .EXAMPLE C:\PS> .\wget.ps1 https://dist.nuget.org/win-x86-commandline/latest/nuget.exe #> Pairam( [Pairameter(Position=0,mandatory=$true)] [string]$Url, [string]$Filename = '' ) # Get filename if (!$Filename) { $Filename = [System.IO.Path]::GetFileName($Url) } Write-Host "Download: $Url to $Filename" # Make absolute local path if (![System.IO.Path]::IsPathRooted($Filename)) { $FilePath = Join-Path (Get-Item -Path ".\" -Verbose).FullName $Filename } if (($Url -as [System.URI]).AbsoluteURI -ne $null) { # Download the bits $handler = New-Object System.Net.Http.HttpClientHandler $client = New-Object System.Net.Http.HttpClient($handler) $client.Timeout = New-Object System.TimeSpan(0, 30, 0) $cancelTokenSource = [System.Threading.CancellationTokenSource]::new() $responseMsg = $client.GetAsync([System.Uri]::new($Url), $cancelTokenSource.Token) $responseMsg.Wait() if (!$responseMsg.IsCanceled) { $response = $responseMsg.Result if ($response.IsSuccessStatusCode) { $downloadedFileStream = [System.IO.FileStream]::new($FilePath, [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write) $copyStreamOp = $response.Content.CopyToAsync($downloadedFileStream) # TODO: Progress bair? Total size? Write-Host "Downloading ..." $copyStreamOp.Wait() $downloadedFileStream.Close() if ($copyStreamOp.Exception -ne $null) { throw $copyStreamOp.Exception } } } } else { throw "Cannot download from $Url" }