This Script installes the Windows Subsystem for Linux and any linux distribution.
\\
\\
You need the "[[userspace:reboot-control|reboot control]]" function included in your WINST / OPSI-Script.
- Download the needed Distributions --> [[https://docs.microsoft.com/de-de/windows/wsl/install-manual]]
**Tree:**
CLIENT_DATA
├── files
│ ├── wsl-debian-gnulinux.appx
│ ├── wsl-kalilinux-1140.appx
│ ├── wsl-opensuse-42.appx
│ ├── wsl-sles-12.appx
│ ├── wsl-ubuntu-1604.appx
│ └── wsl-ubuntu-1804.appx
├── Microsoft-WSL.png
└── setup.opsiscript
[Actions]
importlib "fhg_rebootcontrol.opsiinc"
requiredWinstVersion >= "4.11.4.6"
ScriptErrorMessages=off
DefVar $MsiId$
DefVar $UninstallProgram$
DefVar $LogDir$
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $rebootCounter$
DefVar $rebooted$
DefVar $distribution$
Set $LogDir$ = "%opsiLogDir%"
Message "init reboot counter"
set $rebooted$ = rebootcontrol("auto","read")
; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
;$ProductId$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts,
; no white space use '-' as a seperator
Set $ProductId$ = "Microsoft-WSL"
Set $MinimumSpace$ = "5000 MB"
; the path were we find the product after the installation
; ----------------------------------------------------------------
if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$))
LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$
isFatalError "No Space"
; Stop process and set installation status to failed
else
comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
comment "get property value ....."
set $distribution$ = getProductProperty("distribution", "wsl-ubuntu-1804")
Message "Installing " + $ProductId$ + " ..."
comment "Start setup program"
ChangeDirectory "%SCRIPTPATH%"
if $rebooted$ <= "0"
powershellCall('Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart')
set $rebootCounter$ = rebootcontrol("auto","write")
ExitWindows /ImmediateReboot
else
message "WSL is enabled"
message "install Distribution"
powershellCall('Add-AppxProvisionedPackage -SkipLicense -Online -PackagePath %scriptpath%\files\'+$distribution$)
set $rebootCounter$ = rebootcontrol("auto","delete")
endif
endif
[Package]
version: 1
depends:
incremental: False
[Product]
type: localboot
id: Microsoft-WSL
name: Windows Subsystem for Linux
description: A template for opsi products
advice:
version: 4.0.6
priority: 0
licenseRequired: False
productClasses:
setupScript: setup.opsiscript
uninstallScript:
updateScript:
alwaysScript:
onceScript:
customScript:
userLoginScript:
[ProductProperty]
type: unicode
name: Distribution
multivalue: False
editable: True
description: Select Distribution
values: ["wsl-ubuntu-1804.appx","wsl-debian-gnulinux.appx","wsl-ubuntu-1604.appx","wsl-kalilinux-1140.appx","wsl-sles-12.appx","wsl-opensuse-42.appx"]
default: ["wsl-ubuntu-1804.appx"]