This Script installes the Windows Subsystem for Linux and any linux distribution.
You need the “reboot control” function included in your WINST / OPSI-Script.
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"]