first commit
This commit is contained in:
commit
b0fe0ba006
27 changed files with 872 additions and 0 deletions
59
install.ps1
Normal file
59
install.ps1
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
$ScriptDirectory = if ([string]::IsNullOrWhiteSpace(($PSScriptRoot))) { Get-Location } else { $PSScriptRoot }
|
||||
|
||||
$DestinationDirectory = [IO.Directory]::CreateDirectory("C:\Scripts").FullName
|
||||
|
||||
Copy-Item -Path ([IO.Path]::Combine($ScriptDirectory, "Downloader")) `
|
||||
-Destination $DestinationDirectory `
|
||||
-Recurse `
|
||||
-Force `
|
||||
-Confirm:$false
|
||||
|
||||
# -------------------- Variablen --------------------
|
||||
$TaskName = "Download latest application software"
|
||||
$ScriptPath = [IO.Path]::Combine($DestinationDirectory, "Downloader\Script.ps1")
|
||||
|
||||
# Optional: Task Beschreibung
|
||||
$TaskDescription = "Startet das PowerShell-Projekt automatisch beim Systemstart."
|
||||
|
||||
# -------------------- Existiert der Task schon? --------------------
|
||||
$existingTask = Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue
|
||||
|
||||
if ($existingTask) {
|
||||
Write-Host "Task '$TaskName' existiert bereits. Aktualisiere..." -ForegroundColor Yellow
|
||||
Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false
|
||||
}
|
||||
|
||||
# -------------------- Task Action --------------------
|
||||
# PowerShell-Executable
|
||||
$pwshPath = (Get-Command pwsh -ErrorAction SilentlyContinue).Source
|
||||
if (-not $pwshPath) { $pwshPath = (Get-Command powershell).Source }
|
||||
|
||||
$Action = New-ScheduledTaskAction -Execute $pwshPath -Argument "-NoProfile -ExecutionPolicy Bypass -File `"$ScriptPath`""
|
||||
|
||||
# -------------------- Task Trigger --------------------
|
||||
# Beispiel: Beim Systemstart (kannst du ändern zu -AtLogon, -Daily etc.)
|
||||
$Trigger = New-ScheduledTaskTrigger -Daily -At 20:00
|
||||
|
||||
# -------------------- Task Einstellungen --------------------
|
||||
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
|
||||
|
||||
# -------------------- Task Principal --------------------
|
||||
# Führt mit höchsten Privilegien unter SYSTEM aus
|
||||
$Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -RunLevel Highest
|
||||
|
||||
# -------------------- Task Registrierung --------------------
|
||||
try{
|
||||
Register-ScheduledTask `
|
||||
-TaskName $TaskName `
|
||||
-Description $TaskDescription `
|
||||
-Action $Action `
|
||||
-Trigger $Trigger `
|
||||
-Principal $Principal `
|
||||
-Settings $Settings
|
||||
|
||||
Write-Host "Task '$TaskName' wurde erfolgreich registriert!" -ForegroundColor Green
|
||||
Write-Host "Pfad: $ScriptPath"
|
||||
}
|
||||
catch{
|
||||
Write-Host "Fehler beim registrieren von Task '$TaskName'. $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue