mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-11-24 03:45:30 +00:00
Remove WPFShortcut Creation
Was causing virus false positives.
This commit is contained in:
parent
47a4f1547e
commit
c186642998
@ -3464,14 +3464,5 @@
|
|||||||
"Type": "Button",
|
"Type": "Button",
|
||||||
"ButtonWidth": "300",
|
"ButtonWidth": "300",
|
||||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/Performance-Plans/RemoveUltPerf"
|
"link": "https://christitustech.github.io/winutil/dev/tweaks/Performance-Plans/RemoveUltPerf"
|
||||||
},
|
|
||||||
"WPFWinUtilShortcut": {
|
|
||||||
"Content": "Create WinUtil Shortcut",
|
|
||||||
"category": "Shortcuts",
|
|
||||||
"panel": "2",
|
|
||||||
"Order": "a082_",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/Shortcuts/Shortcut"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ Disables MS Recall built into Windows since 24H2.
|
|||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
Write-Host \"Disable Recall\"
|
Write-Host \"Disable Recall\"
|
||||||
DISM /Online /Disable-Feature /FeatureName:Recall
|
DISM /Online /Disable-Feature /FeatureName:Recall
|
||||||
"
|
"
|
||||||
],
|
],
|
||||||
"UndoScript": [
|
"UndoScript": [
|
||||||
@ -45,7 +45,7 @@ Disables MS Recall built into Windows since 24H2.
|
|||||||
DISM /Online /Enable-Feature /FeatureName:Recall
|
DISM /Online /Enable-Feature /FeatureName:Recall
|
||||||
"
|
"
|
||||||
],
|
],
|
||||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/Essential-Tweaks/DisableRecall"
|
"link": "https://christitustech.github.io/winutil/dev/tweaks/Essential-Tweaks/DisableRecall"
|
||||||
},
|
},
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ Disables MS Recall built into Windows since 24H2.
|
|||||||
```powershell
|
```powershell
|
||||||
|
|
||||||
Write-Host "Disable Recall"
|
Write-Host "Disable Recall"
|
||||||
DISM /Online /Disable-Feature /FeatureName:Recall
|
DISM /Online /Disable-Feature /FeatureName:Recall
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -27,87 +27,3 @@ Last Updated: 2024-08-07
|
|||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## Function: Invoke-WPFShortcut
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WPFShortcut {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Creates a shortcut and prompts for a save location
|
|
||||||
|
|
||||||
.PARAMETER ShortcutToAdd
|
|
||||||
The name of the shortcut to add
|
|
||||||
|
|
||||||
.PARAMETER RunAsAdmin
|
|
||||||
A boolean value to make 'Run as administrator' property on (true) or off (false), defaults to off
|
|
||||||
|
|
||||||
#>
|
|
||||||
param(
|
|
||||||
$ShortcutToAdd,
|
|
||||||
[bool]$RunAsAdmin = $false
|
|
||||||
)
|
|
||||||
|
|
||||||
# Preper the Shortcut Fields and add an a Custom Icon if it's available, else don't add a Custom Icon.
|
|
||||||
|
|
||||||
Switch ($ShortcutToAdd) {
|
|
||||||
"WinUtil" {
|
|
||||||
# Use Powershell 7 if installed and fallback to PS5 if not
|
|
||||||
if (Get-Command "pwsh" -ErrorAction SilentlyContinue) {
|
|
||||||
$shell = "pwsh.exe"
|
|
||||||
} else {
|
|
||||||
$shell = "powershell.exe"
|
|
||||||
}
|
|
||||||
|
|
||||||
$shellArgs = "-ExecutionPolicy Bypass -Command `"Start-Process $shell -verb runas -ArgumentList `'-Command `"irm https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1 | iex`"`'"
|
|
||||||
|
|
||||||
$DestinationName = "WinUtil.lnk"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Show a File Dialog Browser, to let the User choose the Name and Location of where to save the Shortcut
|
|
||||||
$FileBrowser = New-Object System.Windows.Forms.SaveFileDialog
|
|
||||||
$FileBrowser.InitialDirectory = [Environment]::GetFolderPath('Desktop')
|
|
||||||
$FileBrowser.Filter = "Shortcut Files (*.lnk)|*.lnk"
|
|
||||||
$FileBrowser.FileName = $DestinationName
|
|
||||||
|
|
||||||
# Do an Early Return if the Save Operation was canceled by User's Input.
|
|
||||||
$FileBrowserResult = $FileBrowser.ShowDialog()
|
|
||||||
$DialogResultEnum = New-Object System.Windows.Forms.DialogResult
|
|
||||||
if (-not ($FileBrowserResult -eq $DialogResultEnum::OK)) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
# Prepare the Shortcut paramter
|
|
||||||
$WshShell = New-Object -comObject WScript.Shell
|
|
||||||
$Shortcut = $WshShell.CreateShortcut($FileBrowser.FileName)
|
|
||||||
$Shortcut.TargetPath = $shell
|
|
||||||
$Shortcut.Arguments = $shellArgs
|
|
||||||
if (Test-Path -Path $winutildir["logo.ico"]) {
|
|
||||||
$shortcut.IconLocation = $winutildir["logo.ico"]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Save the Shortcut to disk
|
|
||||||
$Shortcut.Save()
|
|
||||||
|
|
||||||
if ($RunAsAdmin -eq $true) {
|
|
||||||
$bytes = [System.IO.File]::ReadAllBytes($FileBrowser.FileName)
|
|
||||||
# Set byte value at position 0x15 in hex, or 21 in decimal, from the value 0x00 to 0x20 in hex
|
|
||||||
$bytes[0x15] = $bytes[0x15] -bor 0x20
|
|
||||||
[System.IO.File]::WriteAllBytes($FileBrowser.FileName, $bytes)
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host "Shortcut for $ShortcutToAdd has been saved to $($FileBrowser.FileName) with 'Run as administrator' set to $RunAsAdmin"
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
@ -50,7 +50,6 @@ function Invoke-WPFButton {
|
|||||||
"WPFFixesNetwork" {Invoke-WPFFixesNetwork}
|
"WPFFixesNetwork" {Invoke-WPFFixesNetwork}
|
||||||
"WPFUpdatesdisable" {Invoke-WPFUpdatesdisable}
|
"WPFUpdatesdisable" {Invoke-WPFUpdatesdisable}
|
||||||
"WPFUpdatessecurity" {Invoke-WPFUpdatessecurity}
|
"WPFUpdatessecurity" {Invoke-WPFUpdatessecurity}
|
||||||
"WPFWinUtilShortcut" {Invoke-WPFShortcut -ShortcutToAdd "WinUtil" -RunAsAdmin $true}
|
|
||||||
"WPFGetInstalled" {Invoke-WPFGetInstalled -CheckBox "winget"}
|
"WPFGetInstalled" {Invoke-WPFGetInstalled -CheckBox "winget"}
|
||||||
"WPFGetInstalledTweaks" {Invoke-WPFGetInstalled -CheckBox "tweaks"}
|
"WPFGetInstalledTweaks" {Invoke-WPFGetInstalled -CheckBox "tweaks"}
|
||||||
"WPFGetIso" {Invoke-WPFGetIso}
|
"WPFGetIso" {Invoke-WPFGetIso}
|
||||||
|
@ -1,65 +0,0 @@
|
|||||||
function Invoke-WPFShortcut {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Creates a shortcut and prompts for a save location
|
|
||||||
|
|
||||||
.PARAMETER ShortcutToAdd
|
|
||||||
The name of the shortcut to add
|
|
||||||
|
|
||||||
.PARAMETER RunAsAdmin
|
|
||||||
A boolean value to make 'Run as administrator' property on (true) or off (false), defaults to off
|
|
||||||
|
|
||||||
#>
|
|
||||||
param(
|
|
||||||
$ShortcutToAdd,
|
|
||||||
[bool]$RunAsAdmin = $false
|
|
||||||
)
|
|
||||||
|
|
||||||
# Preper the Shortcut Fields and add an a Custom Icon if it's available, else don't add a Custom Icon.
|
|
||||||
|
|
||||||
Switch ($ShortcutToAdd) {
|
|
||||||
"WinUtil" {
|
|
||||||
# Use Powershell 7 if installed and fallback to PS5 if not
|
|
||||||
if (Get-Command "pwsh" -ErrorAction SilentlyContinue) {
|
|
||||||
$shell = "pwsh.exe"
|
|
||||||
} else {
|
|
||||||
$shell = "powershell.exe"
|
|
||||||
}
|
|
||||||
|
|
||||||
$shellArgs = "-ExecutionPolicy Bypass -Command `"Start-Process $shell -verb runas -ArgumentList `'-Command `"irm https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1 | iex`"`'"
|
|
||||||
|
|
||||||
$DestinationName = "WinUtil.lnk"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Show a File Dialog Browser, to let the User choose the Name and Location of where to save the Shortcut
|
|
||||||
$FileBrowser = New-Object System.Windows.Forms.SaveFileDialog
|
|
||||||
$FileBrowser.InitialDirectory = [Environment]::GetFolderPath('Desktop')
|
|
||||||
$FileBrowser.Filter = "Shortcut Files (*.lnk)|*.lnk"
|
|
||||||
$FileBrowser.FileName = $DestinationName
|
|
||||||
|
|
||||||
# Do an Early Return if the Save Operation was canceled by User's Input.
|
|
||||||
$FileBrowserResult = $FileBrowser.ShowDialog()
|
|
||||||
$DialogResultEnum = New-Object System.Windows.Forms.DialogResult
|
|
||||||
if (-not ($FileBrowserResult -eq $DialogResultEnum::OK)) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
# Prepare the Shortcut paramter
|
|
||||||
$WshShell = New-Object -comObject WScript.Shell
|
|
||||||
$Shortcut = $WshShell.CreateShortcut($FileBrowser.FileName)
|
|
||||||
$Shortcut.TargetPath = $shell
|
|
||||||
$Shortcut.Arguments = $shellArgs
|
|
||||||
if (-NOT (Test-Path -Path $winutildir["logo.ico"])) {
|
|
||||||
Invoke-WebRequest -Uri "https://christitus.com/images/logo-full.ico" -OutFile $winutildir["logo.ico"]
|
|
||||||
}
|
|
||||||
if (Test-Path -Path $winutildir["logo.ico"]) {
|
|
||||||
$shortcut.IconLocation = $winutildir["logo.ico"]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Save the Shortcut to disk
|
|
||||||
$Shortcut.Save()
|
|
||||||
|
|
||||||
Write-Host "Shortcut for $ShortcutToAdd has been saved to $($FileBrowser.FileName) with 'Run as administrator' set to $RunAsAdmin"
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user