diff --git a/Compile.ps1 b/Compile.ps1
index 6f7a0313..afbe943d 100644
--- a/Compile.ps1
+++ b/Compile.ps1
@@ -1,7 +1,8 @@
param (
[switch]$Debug,
[switch]$Run,
- [switch]$SkipPreprocessing
+ [switch]$SkipPreprocessing,
+ [string]$Arguments
)
$OFS = "`r`n"
$scriptname = "winutil.ps1"
@@ -118,10 +119,12 @@ catch {
Write-Progress -Activity "Validating" -Completed
if ($run) {
- try {
- Start-Process -FilePath "pwsh" -ArgumentList "$workingdir\$scriptname"
- } catch {
- Start-Process -FilePath "powershell" -ArgumentList "$workingdir\$scriptname"
- }
+ $script = "& '$workingdir\$scriptname' $Arguments"
+ $powershellcmd = if (Get-Command pwsh -ErrorAction SilentlyContinue) { "pwsh" } else { "powershell" }
+ $processCmd = if (Get-Command wt.exe -ErrorAction SilentlyContinue) { "wt.exe" } else { $powershellcmd }
+
+ Start-Process $processCmd -ArgumentList "$powershellcmd -NoProfile -Command $script"
+
+ break
}
diff --git a/config/themes.json b/config/themes.json
index efada878..eedb2f83 100644
--- a/config/themes.json
+++ b/config/themes.json
@@ -6,7 +6,7 @@
"CustomDialogWidth": "400",
"CustomDialogHeight": "200",
- "FontSize": "14",
+ "FontSize": "12",
"FontFamily": "Arial",
"FontSizeHeading": "16",
"HeaderFontFamily": "Consolas, Monaco",
@@ -26,6 +26,7 @@
"CloseIconFontSize": "18",
"MicroWinLogoSize": "10",
+ "MicrowinCheckBoxMargin": "-10,5,0,0",
"ProgressBarForegroundColor": "#FFAC1C",
"ProgressBarBackgroundColor": "Transparent",
diff --git a/scripts/main.ps1 b/scripts/main.ps1
index a18ed0b9..0d706c32 100644
--- a/scripts/main.ps1
+++ b/scripts/main.ps1
@@ -439,6 +439,12 @@ $sync["SearchBar"].Add_TextChanged({
}
})
+$sync["Form"].Add_Loaded({
+ param($e)
+ $sync["Form"].MaxWidth = [Double]::PositiveInfinity
+ $sync["Form"].MaxHeight = [Double]::PositiveInfinity
+})
+
# Initialize the hashtable
$winutildir = @{}
diff --git a/scripts/start.ps1 b/scripts/start.ps1
index 0d070cd0..c289709c 100644
--- a/scripts/start.ps1
+++ b/scripts/start.ps1
@@ -5,6 +5,7 @@
GitHub : https://github.com/ChrisTitusTech
Version : #{replaceme}
#>
+
param (
[switch]$Debug,
[string]$Config,
@@ -27,12 +28,6 @@ if ($Run) {
$PARAM_RUN = $true
}
-$dateTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
-
-$logdir = "$env:localappdata\winutil\logs"
-[System.IO.Directory]::CreateDirectory("$logdir")
-Start-Transcript -Path "$logdir\winutil_$dateTime.log" -Append
-
# Load DLLs
Add-Type -AssemblyName PresentationFramework
Add-Type -AssemblyName System.Windows.Forms
@@ -46,8 +41,22 @@ $sync.ProcessRunning = $false
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Output "Winutil needs to be run as Administrator. Attempting to relaunch."
+ $argList = @()
+
+ $PSBoundParameters.GetEnumerator() | ForEach-Object {
+ $argList += if ($_.Value -is [switch] -and $_.Value) {
+ "-$($_.Key)"
+ } elseif ($_.Value) {
+ "-$($_.Key) `"$($_.Value)`""
+ }
+ }
+
+ $script = if ($MyInvocation.MyCommand.Path) {
+ "& { & '$($MyInvocation.MyCommand.Path)' $argList }"
+ } else {
+ "iex '& { $(irm https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1) } $argList'"
+ }
- $script = if ($MyInvocation.MyCommand.Path) { "& '" + $MyInvocation.MyCommand.Path + "'" } else { "irm 'https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1' | iex"}
$powershellcmd = if (Get-Command pwsh -ErrorAction SilentlyContinue) { "pwsh" } else { "powershell" }
$processCmd = if (Get-Command wt.exe -ErrorAction SilentlyContinue) { "wt.exe" } else { $powershellcmd }
@@ -56,6 +65,12 @@ if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]:
break
}
+$dateTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
+
+$logdir = "$env:localappdata\winutil\logs"
+[System.IO.Directory]::CreateDirectory("$logdir") | Out-Null
+Start-Transcript -Path "$logdir\winutil_$dateTime.log" -Append -NoClobber | Out-Null
+
# Set PowerShell window title
$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Admin)"
clear-host
diff --git a/windev.ps1 b/windev.ps1
index 5bba017d..b735efca 100644
--- a/windev.ps1
+++ b/windev.ps1
@@ -14,8 +14,15 @@
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Output "Winutil needs to be run as Administrator. Attempting to relaunch."
+ # Capture all the arguments passed to the script
+ $argList = $args -join ' '
+
+ $script = if ($MyInvocation.MyCommand.Path) {
+ "& { & '$($MyInvocation.MyCommand.Path)' $argList }"
+ } else {
+ "iex '& { $(irm https://github.com/ChrisTitusTech/winutil/raw/main/windev.ps1) } $argList'"
+ }
- $script = if ($MyInvocation.MyCommand.Path) { "& '" + $MyInvocation.MyCommand.Path + "'" } else { "irm 'https://github.com/ChrisTitusTech/winutil/raw/main/windev.ps1' | iex"}
$powershellcmd = if (Get-Command pwsh -ErrorAction SilentlyContinue) { "pwsh" } else { "powershell" }
$processCmd = if (Get-Command wt.exe -ErrorAction SilentlyContinue) { "wt.exe" } else { $powershellcmd }
@@ -46,9 +53,9 @@ function RedirectToLatestPreRelease {
Write-Host "Using latest Full Release"
$url = "https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1"
}
- Invoke-RestMethod $url | Invoke-Expression
+
+ iex "& { $(irm $url) } $argList"
}
# Call the redirect function
-
RedirectToLatestPreRelease
diff --git a/xaml/inputXML.xaml b/xaml/inputXML.xaml
index b6097a17..8094af4a 100644
--- a/xaml/inputXML.xaml
+++ b/xaml/inputXML.xaml
@@ -9,7 +9,11 @@
WindowStartupLocation="CenterScreen"
UseLayoutRounding="True"
WindowStyle="None"
- Title="Chris Titus Tech's Windows Utility" Height="800" Width="1280">
+ Width="Auto"
+ Height="Auto"
+ MaxWidth="1280"
+ MaxHeight="800"
+ Title="Chris Titus Tech's Windows Utility">
@@ -689,10 +693,10 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
@@ -945,12 +943,12 @@
HorizontalAlignment="Stretch">
-
+
Choose a Windows ISO file that you've downloaded
Check the status in the console
-
@@ -997,7 +995,7 @@
Choose Windows SKU
-
+
-
+
-
+
Custom user settings (leave empty for default user)
User name (20 characters max.):