File cleanup
This commit is contained in:
159
intune/App Installs/Install-Docker-Desktop.ps1
Normal file
159
intune/App Installs/Install-Docker-Desktop.ps1
Normal file
@@ -0,0 +1,159 @@
|
||||
set-executionpolicy -scope CurrentUser -executionPolicy Bypass -Force
|
||||
If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
|
||||
{
|
||||
# Relaunch as an elevated process:
|
||||
Start-Process powershell.exe "-File",('"{0}"' -f $MyInvocation.MyCommand.Path) -Verb RunAs
|
||||
exit
|
||||
}
|
||||
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
|
||||
Function GenerateFolder($path) {
|
||||
$global:foldPath = $null
|
||||
foreach($foldername in $path.split("\")) {
|
||||
$global:foldPath += ($foldername+"\")
|
||||
if (!(Test-Path $global:foldPath)){
|
||||
New-Item -ItemType Directory -Path $global:foldPath
|
||||
# Write-Host "$global:foldPath Folder Created Successfully"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getStatus
|
||||
{
|
||||
try {
|
||||
# First we create the request.
|
||||
$HTTP_Request = [System.Net.WebRequest]::Create('http://localhost')
|
||||
|
||||
# We then get a response from the site.
|
||||
$HTTP_Response = $HTTP_Request.GetResponse()
|
||||
|
||||
# We then get the HTTP code as an integer.
|
||||
return [int]$HTTP_Response.StatusCode
|
||||
} catch [System.Net.WebException] {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
GenerateFolder "~/AppData/Roaming/Docker/"
|
||||
|
||||
Write-Host "Checking if Hyper-V is enabled."
|
||||
$hyperv = Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
|
||||
|
||||
# Check if Hyper-V is enabled
|
||||
if($hyperv.State -eq "Enabled") {
|
||||
Write-Host "Hyper-V is enabled."
|
||||
|
||||
$wsl = Get-WindowsOptionalFeature -FeatureName Microsoft-Windows-Subsystem-Linux -Online
|
||||
|
||||
if($wsl.State -eq "Enabled") {
|
||||
|
||||
Write-Host "WSL is enabled."
|
||||
|
||||
if ([Environment]::Is64BitOperatingSystem)
|
||||
{
|
||||
Write-Host "System is x64. Need to update Linux kernel..."
|
||||
if (-not (Test-Path wsl_update_x64.msi))
|
||||
{
|
||||
Write-Host "Downloading Linux kernel update package..."
|
||||
Invoke-WebRequest -OutFile wsl_update_x64.msi https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
|
||||
}
|
||||
Write-Host "Installing Linux kernel update package..."
|
||||
Start-Process msiexec.exe -Wait -ArgumentList '/I wsl_update_x64.msi /quiet'
|
||||
Write-Host "Linux kernel update package installed."
|
||||
}
|
||||
|
||||
Write-Host "WSL is enabled. Setting it to WSL2"
|
||||
wsl --set-default-version 2
|
||||
|
||||
# disable distro install
|
||||
# no need to install distro as docker runs on its own distro
|
||||
<#
|
||||
if (-not (Test-Path Ubuntu.zip))
|
||||
{
|
||||
Write-Host "Downloading wsl-ubuntu-1804..."
|
||||
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile Ubuntu.zip -UseBasicParsing
|
||||
Expand-Archive Ubuntu.zip 'C:\Ubuntu'
|
||||
|
||||
Write-Host "A pop up widow will open shortly..."
|
||||
Write-Host "Once prompted provide user name, password and confirm password..."
|
||||
Write-Host "This does not have to be your windows user name and password. You can provide any of your prefered username and a password."
|
||||
Write-Host "Onec the Linux prompt is shown type exit and press enter."
|
||||
|
||||
Start-Process c:\Ubuntu\ubuntu1804.exe -Wait
|
||||
}
|
||||
|
||||
wsl -l -v
|
||||
wsl --set-version Ubuntu-18.04 2
|
||||
wsl -l -v
|
||||
#>
|
||||
|
||||
if (-not (Test-Path DockerInstaller.exe))
|
||||
{
|
||||
Write-Host "Installing Docker."
|
||||
|
||||
|
||||
Write-Host "Downloading the Docker exe"
|
||||
Invoke-WebRequest -Uri https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exe -OutFile DockerInstaller.exe -UseBasicParsing
|
||||
Write-Host "Download Completed"
|
||||
|
||||
start-process .\DockerInstaller.exe "install --quiet" -Wait -NoNewWindow
|
||||
cd "C:\Program Files\Docker\Docker\"
|
||||
Write-Host "Installing Docker..."
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
& '.\Docker Desktop.exe'
|
||||
$env:Path += ";C:\Program Files\Docker\Docker\Resources\bin"
|
||||
$env:Path += ";C:\Program Files\Docker\Docker\Resources"
|
||||
Write-Host "Docker Installed successfully"
|
||||
Write-Host "You must reboot the sytem to continue. After reboot re-run the script."
|
||||
Restart-Computer -Confirm
|
||||
}
|
||||
Write-Host "Starting docker..."
|
||||
$ErrorActionPreference = 'SilentlyContinue';
|
||||
do { $var1 = docker ps 2>$null } while (-Not $var1)
|
||||
$ErrorActionPreference = 'Stop';
|
||||
$env:Path += ";C:\Program Files\Docker\Docker\Resources\bin"
|
||||
$env:Path += ";C:\Program Files\Docker\Docker\Resources"
|
||||
Write-Host "Docker Started successfully"
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
Write-Host "WSL is disabled."
|
||||
Write-Host "Enabling WSL2 feature now"
|
||||
|
||||
& cmd /c 'dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart'
|
||||
& cmd /c 'dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart'
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
|
||||
Start-Sleep 30
|
||||
Write-Host "WSL is enabled now reboot the system and re-run the script to continue the installation."
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
Write-Host "Hyper-V is disabled."
|
||||
Write-Host "Enabling Hyper-V feature now"
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
|
||||
Start-Sleep 30
|
||||
Write-Host "Hyper-V is enabled now reboot the system and re-run the script to continue the installation."
|
||||
}
|
||||
|
||||
|
||||
|
||||
<#
|
||||
REFERENCES USED FOR WRITING THIS SCRIPT
|
||||
|
||||
https://adamtheautomator.com/windows-subsystem-for-linux/#:~:text=To%20start%20using%20WSL%2C%20open,exe%20provides%20when%20starting%20up.
|
||||
https://superuser.com/questions/1271682/is-there-a-way-of-installing-ubuntu-windows-subsystem-for-linux-on-win10-v170
|
||||
https://stackoverflow.com/questions/61396435/how-do-i-check-the-os-architecture32-or-64-bit-using-powershell
|
||||
https://renenyffenegger.ch/notes/Windows/Subsystem-for-Linux/index
|
||||
https://docs.docker.com/docker-for-windows/wsl/
|
||||
https://docs.microsoft.com/en-us/windows/wsl/install-win10
|
||||
https://superuser.com/questions/1271682/is-there-a-way-of-installing-ubuntu-windows-subsystem-for-linux-on-win10-v170
|
||||
|
||||
https://wiki.ubuntu.com/WSL
|
||||
|
||||
https://winaero.com/export-import-wsl-linux-distro-windows-10/
|
||||
#>
|
||||
Reference in New Issue
Block a user