mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-11-14 14:45:52 -06:00
parent
ff363d686f
commit
1ac24c236e
@ -305,5 +305,13 @@
|
|||||||
"Type": "Button",
|
"Type": "Button",
|
||||||
"ButtonWidth": "300",
|
"ButtonWidth": "300",
|
||||||
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/user"
|
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/user"
|
||||||
|
},
|
||||||
|
"WPFWinUtilPSProfile": {
|
||||||
|
"Content": "Install CTT PowerShell Profile",
|
||||||
|
"category": "Powershell Profile",
|
||||||
|
"panel": "2",
|
||||||
|
"Order": "a083_",
|
||||||
|
"Type": "Button",
|
||||||
|
"ButtonWidth": "300"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
50
functions/private/Invoke-WinUtilpsProfile.ps1
Normal file
50
functions/private/Invoke-WinUtilpsProfile.ps1
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
function Invoke-WinUtilpsProfile {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Installs & applies the CTT Powershell Profile
|
||||||
|
#>
|
||||||
|
Invoke-WPFRunspace -Argumentlist $PROFILE -DebugPreference $DebugPreference -ScriptBlock {
|
||||||
|
param ( $psprofile)
|
||||||
|
function Invoke-PSSetup {
|
||||||
|
$url = "https://raw.githubusercontent.com/ChrisTitusTech/powershell-profile/main/Microsoft.PowerShell_profile.ps1"
|
||||||
|
$oldhash = Get-FileHash $psprofile -ErrorAction SilentlyContinue
|
||||||
|
Invoke-RestMethod $url -OutFile "$env:temp/Microsoft.PowerShell_profile.ps1"
|
||||||
|
$newhash = Get-FileHash "$env:temp/Microsoft.PowerShell_profile.ps1"
|
||||||
|
if ($newhash.Hash -ne $oldhash.Hash) {
|
||||||
|
write-host "===> Installing Profile.. <===" -ForegroundColor Yellow
|
||||||
|
# Starting new hidden shell process bc setup does not work in a runspace
|
||||||
|
Start-Process -FilePath "pwsh" -ArgumentList "-ExecutionPolicy Bypass -NoProfile -Command `"Invoke-Expression (Invoke-WebRequest `'https://github.com/ChrisTitusTech/powershell-profile/raw/main/setup.ps1`')`"" -WindowStyle Hidden -Wait
|
||||||
|
Write-Host "Profile has been installed. Please restart your shell to reflect changes!" -ForegroundColor Magenta
|
||||||
|
write-host "===> Finished <===" -ForegroundColor Yellow
|
||||||
|
} else {
|
||||||
|
Write-Host "Profile is up to date" -ForegroundColor Green
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Get-Command "pwsh" -ErrorAction SilentlyContinue) {
|
||||||
|
if ($PSVersionTable.PSVersion.Major -ge 7) {
|
||||||
|
Invoke-PSSetup
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
write-host "Profile requires Powershell 7, which is currently installed but not used!" -ForegroundColor Red
|
||||||
|
# Load the necessary assembly for Windows Forms
|
||||||
|
Add-Type -AssemblyName System.Windows.Forms
|
||||||
|
# Display the Yes/No message box
|
||||||
|
$question = [System.Windows.Forms.MessageBox]::Show("Profile requires Powershell 7, which is currently installed but not used! Do you want to install Profile for Powershell 7?", "Question",
|
||||||
|
[System.Windows.Forms.MessageBoxButtons]::YesNo,
|
||||||
|
[System.Windows.Forms.MessageBoxIcon]::Question)
|
||||||
|
|
||||||
|
# Check the result
|
||||||
|
if ($question -eq [System.Windows.Forms.DialogResult]::Yes) {
|
||||||
|
Invoke-PSSetup
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Host "Not proceeding with the profile setup!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
write-host "Profile requires Powershell 7, which is not installed!" -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -58,5 +58,6 @@ function Invoke-WPFButton {
|
|||||||
"WPFMicrowin" {Invoke-WPFMicrowin}
|
"WPFMicrowin" {Invoke-WPFMicrowin}
|
||||||
"WPFCloseButton" {Invoke-WPFCloseButton}
|
"WPFCloseButton" {Invoke-WPFCloseButton}
|
||||||
"MicrowinScratchDirBT" {Invoke-ScratchDialog}
|
"MicrowinScratchDirBT" {Invoke-ScratchDialog}
|
||||||
|
"WPFWinUtilPSProfile" {Invoke-WinUtilpsProfile}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user