Public/Register-LumosScheduledTask.ps1
Function Register-LumosScheduledTask { <# .SYNOPSIS Registers a Scheduled Task to run Lumos automatically. #> [cmdletbinding()] Param( [switch] $ExcludeSystem, [switch] $ExcludeApps, [string] $DarkWallpaper, [string] $LightWallpaper ) $ArgumentDefaults = '-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden' $LumosArgument = "$ArgumentDefaults -Command Invoke-Lumos" If ($ExcludeSystem) { $LumosArgument = $LumosArgument + " -ExcludeSystem" } If ($ExcludeApps) { $LumosArgument = $LumosArgument + " -ExcludeApps" } If ($LightWallpaper) { $LumosArgument = $LumosArgument + " -LightWallpaper '$LightWallpaper'" } If ($DarkWallpaper) { $LumosArgument = $LumosArgument + " -DarkWallpaper '$DarkWallpaper'" } # Get localized value for local administrator group $adminSid = [System.Security.Principal.WellKnownSidType]::BuiltinAdministratorsSid $adminSecId = New-Object System.Security.Principal.SecurityIdentifier($adminSid, $null) $localizedAdminGroup = $adminSecId.Translate([System.Security.Principal.NTAccount]).Value $LumosAction = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument $LumosArgument $UpdateAction = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument "$ArgumentDefaults -Command Update-LumosScheduledTask" $Principal = New-ScheduledTaskPrincipal -GroupId $localizedAdminGroup -RunLevel Highest New-ScheduledTask -Action $LumosAction,$UpdateAction -Principal $Principal | Register-ScheduledTask -TaskName 'Lumos' -Force # Run Update-LumosScheduledTask to add triggers Update-LumosScheduledTask } |