Upload files to "/"
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
# Deploy bloatware removal as scheduled task - runs silently at startup or on schedule
|
||||
# Run as Administrator
|
||||
|
||||
#Requires -RunAsAdministrator
|
||||
|
||||
param(
|
||||
[Parameter(Mandatory=$false)]
|
||||
[ValidateSet('Startup', 'Weekly', 'Monthly')]
|
||||
[string]$Trigger = 'Startup',
|
||||
|
||||
[Parameter(Mandatory=$false)]
|
||||
[string]$ScriptPath = (Split-Path -Parent $MyInvocation.MyCommand.Path) + '\Remove-AllBloat.ps1'
|
||||
)
|
||||
|
||||
$ErrorActionPreference = 'SilentlyContinue'
|
||||
|
||||
# Task details
|
||||
$TaskName = "Remove Bloatware - Silent"
|
||||
$TaskPath = "\Maintenance\"
|
||||
$Description = "Silently remove manufacturer bloatware (HP, Lenovo, ASUS, Dell)"
|
||||
|
||||
Write-Host "[*] Creating scheduled task for bloatware removal..."
|
||||
|
||||
# Create action
|
||||
$Action = New-ScheduledTaskAction `
|
||||
-Execute "powershell.exe" `
|
||||
-Argument "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File `"$ScriptPath`" -ErrorAction SilentlyContinue"
|
||||
|
||||
# Create trigger based on parameter
|
||||
if ($Trigger -eq 'Startup') {
|
||||
$TaskTrigger = New-ScheduledTaskTrigger -AtStartup
|
||||
Write-Host "[+] Trigger: At System Startup"
|
||||
} elseif ($Trigger -eq 'Weekly') {
|
||||
$TaskTrigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 2:00AM
|
||||
Write-Host "[+] Trigger: Weekly (Sunday 2:00 AM)"
|
||||
} else {
|
||||
$TaskTrigger = New-ScheduledTaskTrigger -Monthly -DaysOfMonth 1 -At 2:00AM
|
||||
Write-Host "[+] Trigger: Monthly (1st of month at 2:00 AM)"
|
||||
}
|
||||
|
||||
# Create principal (run with highest privileges)
|
||||
$Principal = New-ScheduledTaskPrincipal `
|
||||
-UserId "SYSTEM" `
|
||||
-RunLevel Highest `
|
||||
-ProcessTokenSidType Default
|
||||
|
||||
# Create settings
|
||||
$Settings = New-ScheduledTaskSettingsSet `
|
||||
-AllowStartIfOnBatteries `
|
||||
-DontStopIfGoingOnBatteries `
|
||||
-StartWhenAvailable `
|
||||
-RunOnlyIfNetworkAvailable $false `
|
||||
-MultipleInstances IgnoreNew
|
||||
|
||||
# Register the task
|
||||
try {
|
||||
# Remove existing task if it exists
|
||||
Unregister-ScheduledTask -TaskName $TaskName -TaskPath $TaskPath -Confirm:$false -ErrorAction SilentlyContinue
|
||||
|
||||
Register-ScheduledTask `
|
||||
-TaskName $TaskName `
|
||||
-TaskPath $TaskPath `
|
||||
-Action $Action `
|
||||
-Trigger $TaskTrigger `
|
||||
-Principal $Principal `
|
||||
-Settings $Settings `
|
||||
-Description $Description `
|
||||
-Force | Out-Null
|
||||
|
||||
Write-Host "[+] Scheduled task created successfully."
|
||||
Write-Host "[+] Task will run: $Trigger"
|
||||
Write-Host "[+] Script: $ScriptPath"
|
||||
|
||||
} catch {
|
||||
Write-Host "[-] Error creating task: $_" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Verify task was created
|
||||
$Task = Get-ScheduledTask -TaskName $TaskName -TaskPath $TaskPath -ErrorAction SilentlyContinue
|
||||
if ($Task) {
|
||||
Write-Host "[+] Task verified and ready."
|
||||
Write-Host ""
|
||||
Write-Host "Task Details:"
|
||||
Write-Host " - Name: $($Task.TaskName)"
|
||||
Write-Host " - Path: $($Task.TaskPath)"
|
||||
Write-Host " - Status: $($Task.State)"
|
||||
} else {
|
||||
Write-Host "[-] Failed to verify task creation." -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "[+] Deployment complete!"
|
||||
Reference in New Issue
Block a user