aboutsummaryrefslogtreecommitdiffstats
path: root/coin/pre-provisioning/qtci-windows-10_21H1-x86_64/disable-defragment.ps1
diff options
context:
space:
mode:
Diffstat (limited to 'coin/pre-provisioning/qtci-windows-10_21H1-x86_64/disable-defragment.ps1')
-rw-r--r--coin/pre-provisioning/qtci-windows-10_21H1-x86_64/disable-defragment.ps142
1 files changed, 42 insertions, 0 deletions
diff --git a/coin/pre-provisioning/qtci-windows-10_21H1-x86_64/disable-defragment.ps1 b/coin/pre-provisioning/qtci-windows-10_21H1-x86_64/disable-defragment.ps1
new file mode 100644
index 00000000..bb449e56
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-10_21H1-x86_64/disable-defragment.ps1
@@ -0,0 +1,42 @@
+# Copyright (C) 2019 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+# Windows 7 does not have Get-ScheduledTask and Unregister-ScheduledTask
+# thus needing its own version.
+Write-Host "Disabling defragmentation"
+$version = Get-CimInstance Win32_OperatingSystem | Select-Object -ExpandProperty Caption
+if ($version -like '*Windows 7*'){
+ $pi = New-Object System.Diagnostics.ProcessStartInfo
+ $pi.FileName = "C:\Windows\System32\schtasks.exe"
+ $pi.RedirectStandardError = $true
+ $pi.UseShellExecute = $false
+ $pi.Arguments = "/Delete /TN `"\Microsoft\Windows\Defrag\ScheduledDefrag`" /F"
+ $prog = New-Object System.Diagnostics.Process
+ $prog.StartInfo = $pi
+ $prog.Start() | Out-Null
+ $err = $prog.StandardError.ReadToEnd()
+ $prog.WaitForExit()
+ if ($prog.ExitCode -eq 0){
+ Write-Host "Scheduled defragmentation removed"
+ } else {
+ if ($err -like '*cannot find the file*'){
+ Write-Host "No scheduled defragmentation task found"
+ exit 0
+ } else {
+ Write-Host "Error while deleting scheduled defragmentation task: $err"
+ }
+ }
+}
+else {
+ try {
+ $state = (Get-ScheduledTask -ErrorAction Stop -TaskName "ScheduledDefrag").State
+ Write-Host "Scheduled defragmentation task found in state: $state"
+ }
+ catch {
+ Write-Host "No scheduled defragmentation task found"
+ exit 0
+ }
+ Write-Host "Unregistering scheduled defragmentation task"
+ Unregister-ScheduledTask -ErrorAction Stop -Confirm:$false -TaskName ScheduledDefrag
+ Write-Host "Scheduled Defragmentation task was cancelled"
+}