Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $SourcePath = "https://go.microsoft.com/fwlink/?LinkID=809115"
- $DestinationPath = "C:\dotnet"
- $EditionId = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name 'EditionID').EditionId
- if (($EditionId -eq "ServerStandardNano") -or
- ($EditionId -eq "ServerDataCenterNano") -or
- ($EditionId -eq "NanoServer") -or
- ($EditionId -eq "ServerTuva")) {
- $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
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement