mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-01-15 17:30:37 -06:00
Merge to 'main' branch compiler-improvement/remove-trailing-whitespace
This commit is contained in:
commit
1b0271f655
25
.github/workflows/compile.yaml
vendored
25
.github/workflows/compile.yaml
vendored
@ -10,6 +10,8 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
build-runspace:
|
build-runspace:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
env:
|
||||||
|
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
@ -19,7 +21,28 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
Set-ExecutionPolicy Bypass -Scope Process -Force; ./Compile.ps1
|
Set-ExecutionPolicy Bypass -Scope Process -Force; ./Compile.ps1
|
||||||
continue-on-error: false # Directly fail the job on error, removing the need for a separate check
|
continue-on-error: false # Directly fail the job on error, removing the need for a separate check
|
||||||
|
- name: Create and import code signing certificate
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
[System.IO.File]::WriteAllBytes("$env:USERPROFILE\code-signing-cert.pfx", [System.Convert]::FromBase64String("$env:CERTIFICATE_BASE64"))
|
||||||
|
Import-PfxCertificate -FilePath "$env:USERPROFILE\code-signing-cert.pfx" -CertStoreLocation Cert:\CurrentUser\My
|
||||||
|
- name: Code sign winutil.ps1
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
$cert = Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert | Select-Object -First 1
|
||||||
|
if ($null -eq $cert) { throw "Code signing certificate not found" }
|
||||||
|
Set-AuthenticodeSignature -FilePath ./winutil.ps1 -Certificate $cert
|
||||||
|
- name: Verify code signature
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
$signature = Get-AuthenticodeSignature -FilePath ./winutil.ps1
|
||||||
|
if ($signature.Status -ne 'Valid') { throw "Code signing failed" }
|
||||||
|
- name: Upload winutil.ps1 as artifact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: winutil
|
||||||
|
path: ./winutil.ps1
|
||||||
- uses: stefanzweifel/git-auto-commit-action@v5
|
- uses: stefanzweifel/git-auto-commit-action@v5
|
||||||
with:
|
with:
|
||||||
commit_message: Compile Winutil
|
commit_message: Compile Winutil
|
||||||
if: success()
|
if: success()
|
@ -52,7 +52,7 @@ If you have Issues, refer to [Known Issues](https://christitustech.github.io/win
|
|||||||
|
|
||||||
These are the sponsors that help keep this project alive with monthly contributions.
|
These are the sponsors that help keep this project alive with monthly contributions.
|
||||||
|
|
||||||
<!-- sponsors --><a href="https://github.com/GregoryNavasarkian"><img src="https://github.com/GregoryNavasarkian.png" width="60px" alt="Gregory Navasarkian" /></a><a href="https://github.com/ysaito8015"><img src="https://github.com/ysaito8015.png" width="60px" alt="Yusuke Saito" /></a><a href="https://github.com/TriHydera"><img src="https://github.com/TriHydera.png" width="60px" alt="TriHydera" /></a><a href="https://github.com/jozozovko"><img src="https://github.com/jozozovko.png" width="60px" alt="" /></a><a href="https://github.com/DelDongo"><img src="https://github.com/DelDongo.png" width="60px" alt="" /></a><a href="https://github.com/markamos"><img src="https://github.com/markamos.png" width="60px" alt="Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https://github.com/dwelfusius.png" width="60px" alt="" /></a><a href="https://github.com/mews-se"><img src="https://github.com/mews-se.png" width="60px" alt="" /></a><a href="https://github.com/jdiegmueller"><img src="https://github.com/jdiegmueller.png" width="60px" alt="Jason A. Diegmueller" /></a><a href="https://github.com/AlanTristar"><img src="https://github.com/AlanTristar.png" width="60px" alt="" /></a><a href="https://github.com/JennJones89"><img src="https://github.com/JennJones89.png" width="60px" alt="" /></a><a href="https://github.com/zepled112"><img src="https://github.com/zepled112.png" width="60px" alt="wyatt" /></a><a href="https://github.com/Cube707"><img src="https://github.com/Cube707.png" width="60px" alt="Jan Wille" /></a><a href="https://github.com/Owen-3456"><img src="https://github.com/Owen-3456.png" width="60px" alt="Owen" /></a><a href="https://github.com/altugtekiner"><img src="https://github.com/altugtekiner.png" width="60px" alt="" /></a><a href="https://github.com/getsmor"><img src="https://github.com/getsmor.png" width="60px" alt="" /></a><a href="https://github.com/robertsandrock"><img src="https://github.com/robertsandrock.png" width="60px" alt="" /></a><a href="https://github.com/jeffnesbit"><img src="https://github.com/jeffnesbit.png" width="60px" alt="" /></a><a href="https://github.com/mmomega"><img src="https://github.com/mmomega.png" width="60px" alt="" /></a><a href="https://github.com/KenichiQaz"><img src="https://github.com/KenichiQaz.png" width="60px" alt="Stefan" /></a><a href="https://github.com/thaddl"><img src="https://github.com/thaddl.png" width="60px" alt="thaddl" /></a><a href="https://github.com/paulsheets"><img src="https://github.com/paulsheets.png" width="60px" alt="Paul" /></a><a href="https://github.com/djones369"><img src="https://github.com/djones369.png" width="60px" alt="Dave Jones" /></a><!-- sponsors -->
|
<!-- sponsors --><a href="https://github.com/GregoryNavasarkian"><img src="https://github.com/GregoryNavasarkian.png" width="60px" alt="Gregory Navasarkian" /></a><a href="https://github.com/ysaito8015"><img src="https://github.com/ysaito8015.png" width="60px" alt="Yusuke Saito" /></a><a href="https://github.com/TriHydera"><img src="https://github.com/TriHydera.png" width="60px" alt="TriHydera" /></a><a href="https://github.com/jozozovko"><img src="https://github.com/jozozovko.png" width="60px" alt="" /></a><a href="https://github.com/DelDongo"><img src="https://github.com/DelDongo.png" width="60px" alt="" /></a><a href="https://github.com/markamos"><img src="https://github.com/markamos.png" width="60px" alt="Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https://github.com/dwelfusius.png" width="60px" alt="" /></a><a href="https://github.com/mews-se"><img src="https://github.com/mews-se.png" width="60px" alt="" /></a><a href="https://github.com/jdiegmueller"><img src="https://github.com/jdiegmueller.png" width="60px" alt="Jason A. Diegmueller" /></a><a href="https://github.com/AlanTristar"><img src="https://github.com/AlanTristar.png" width="60px" alt="" /></a><a href="https://github.com/JennJones89"><img src="https://github.com/JennJones89.png" width="60px" alt="" /></a><a href="https://github.com/zepled112"><img src="https://github.com/zepled112.png" width="60px" alt="wyatt" /></a><a href="https://github.com/Owen-3456"><img src="https://github.com/Owen-3456.png" width="60px" alt="Owen" /></a><a href="https://github.com/altugtekiner"><img src="https://github.com/altugtekiner.png" width="60px" alt="" /></a><a href="https://github.com/getsmor"><img src="https://github.com/getsmor.png" width="60px" alt="" /></a><a href="https://github.com/robertsandrock"><img src="https://github.com/robertsandrock.png" width="60px" alt="" /></a><a href="https://github.com/jeffnesbit"><img src="https://github.com/jeffnesbit.png" width="60px" alt="" /></a><a href="https://github.com/mmomega"><img src="https://github.com/mmomega.png" width="60px" alt="" /></a><a href="https://github.com/KenichiQaz"><img src="https://github.com/KenichiQaz.png" width="60px" alt="Stefan" /></a><a href="https://github.com/thaddl"><img src="https://github.com/thaddl.png" width="60px" alt="thaddl" /></a><a href="https://github.com/paulsheets"><img src="https://github.com/paulsheets.png" width="60px" alt="Paul" /></a><a href="https://github.com/djones369"><img src="https://github.com/djones369.png" width="60px" alt="Dave Jones" /></a><a href="https://github.com/anthonymendez"><img src="https://github.com/anthonymendez.png" width="60px" alt="Anthony Mendez" /></a><!-- sponsors -->
|
||||||
|
|
||||||
## 🏅 Thanks to all Contributors
|
## 🏅 Thanks to all Contributors
|
||||||
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.
|
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.
|
||||||
|
@ -1580,6 +1580,162 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"WPFTweaksEdgeDebloat": {
|
||||||
|
"Content": "Debloat Edge",
|
||||||
|
"Description": "Disables various telemetry options, popups, and other annoyances in Edge.",
|
||||||
|
"category": "Essential Tweaks",
|
||||||
|
"panel": "1",
|
||||||
|
"Order": "a016_",
|
||||||
|
"registry": [
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate",
|
||||||
|
"Name": "CreateDesktopShortcutDefault",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeEnhanceImagesEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "PersonalizationReportingEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "ShowRecommendationsEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "HideFirstRunExperience",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "UserFeedbackAllowed",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "ConfigureDoNotTrack",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "AlternateErrorPagesEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeCollectionsEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeFollowEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeShoppingAssistantEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "MicrosoftEdgeInsiderPromotionEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "PersonalizationReportingEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "ShowMicrosoftRewards",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "WebWidgetAllowed",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "DiagnosticData",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeAssetDeliveryServiceEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeCollectionsEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "CryptoWalletEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "ConfigureDoNotTrack",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "WalletDonationEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"WPFTweaksConsumerFeatures":{
|
"WPFTweaksConsumerFeatures":{
|
||||||
"Content": "Disable ConsumerFeatures",
|
"Content": "Disable ConsumerFeatures",
|
||||||
"Description": "Windows 10 will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)",
|
"Description": "Windows 10 will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)",
|
||||||
|
@ -46,18 +46,20 @@
|
|||||||
### Overview
|
### Overview
|
||||||
|
|
||||||
``` mermaid
|
``` mermaid
|
||||||
graph LR
|
%%{init: {"flowchart": {"curve": "cardinal"}} }%%
|
||||||
|
graph TD
|
||||||
A[Fork Project] --> B[Clone Repository];
|
A[Fork Project] --> B[Clone Repository];
|
||||||
B --> C[Create New Branch];
|
B --> C[Create New Branch];
|
||||||
C --> D[Make Changes];
|
C --> D[Make Changes];
|
||||||
D --> G[Test Changes];
|
D --> G[Test Changes];
|
||||||
G --> H{Tests Passed?};
|
G --> H{Tests Passed?};
|
||||||
H -->|Yes| E[Commit Changes];
|
H -->|Yes| E[Commit Changes];
|
||||||
E --> F[Push Branch];
|
|
||||||
H -->|No| J[Fix Issues];
|
H -->|No| J[Fix Issues];
|
||||||
|
J --> G;
|
||||||
|
E --> F[Push Branch];
|
||||||
F --> K[Create Pull Request];
|
F --> K[Create Pull Request];
|
||||||
K --> L[Fill out PR template];
|
K --> L[Fill out PR template];
|
||||||
J --> G;
|
classDef default stroke:#333,stroke-width:4px,font-size:12pt;
|
||||||
```
|
```
|
||||||
!!! info
|
!!! info
|
||||||
|
|
||||||
@ -65,8 +67,10 @@ graph LR
|
|||||||
|
|
||||||
### Fork the Repo
|
### Fork the Repo
|
||||||
* Fork the WinUtil Repository [here](https://github.com/ChrisTitusTech/winutil) to create a copy that will be available in your repository list.
|
* Fork the WinUtil Repository [here](https://github.com/ChrisTitusTech/winutil) to create a copy that will be available in your repository list.
|
||||||
|
|
||||||
![Fork Image](assets/Fork-Button-Dark.png#only-dark)
|
![Fork Image](assets/Fork-Button-Dark.png#only-dark)
|
||||||
![FOrk Image](assets/Fork-Button-Light.png#only-light)
|
|
||||||
|
![Fork Image](assets/Fork-Button-Light.png#only-light)
|
||||||
|
|
||||||
### Clone the Fork
|
### Clone the Fork
|
||||||
!!! tip
|
!!! tip
|
||||||
@ -89,15 +93,22 @@ graph LR
|
|||||||
* `cd {path to the folder with the compile.ps1}`
|
* `cd {path to the folder with the compile.ps1}`
|
||||||
* Run the following command to compile and run WinUtil:
|
* Run the following command to compile and run WinUtil:
|
||||||
* `.\Compile.ps1 -run`
|
* `.\Compile.ps1 -run`
|
||||||
* ![Compile](assets/Compile.png)
|
|
||||||
|
![Compile](assets/Compile.png)
|
||||||
|
|
||||||
* After seeing that your changes work properly, feel free to commit the changes to the repository and make a PR. For help on that, follow the documentation below.
|
* After seeing that your changes work properly, feel free to commit the changes to the repository and make a PR. For help on that, follow the documentation below.
|
||||||
|
|
||||||
### Committing the changes
|
### Committing the changes
|
||||||
* Before committing your changes, please discard changes made to the `winutil.ps1` file, like the following:
|
* Before committing your changes, please discard changes made to the `winutil.ps1` file, like the following:
|
||||||
- ![Push Commit Image](assets/Discard-GHD.png)
|
|
||||||
|
![Push Commit Image](assets/Discard-GHD.png)
|
||||||
|
|
||||||
* Now, commit your changes once you are happy with the result.
|
* Now, commit your changes once you are happy with the result.
|
||||||
|
|
||||||
![Commit Image](assets/Commit-GHD.png)
|
![Commit Image](assets/Commit-GHD.png)
|
||||||
|
|
||||||
* Push the changes to upload them to your fork on github.com.
|
* Push the changes to upload them to your fork on github.com.
|
||||||
|
|
||||||
![Push Commit Image](assets/Push-Commit.png)
|
![Push Commit Image](assets/Push-Commit.png)
|
||||||
|
|
||||||
### Making a PR
|
### Making a PR
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
[![Version](https://img.shields.io/github/v/release/ChrisTitusTech/winutil?color=%230567ff&label=Latest%20Release&style=for-the-badge)](https://github.com/ChrisTitusTech/winutil/releases/latest)
|
[![Version](https://img.shields.io/github/v/release/ChrisTitusTech/winutil?color=%230567ff&label=Latest%20Release&style=for-the-badge)](https://github.com/ChrisTitusTech/winutil/releases/latest)
|
||||||
![GitHub Downloads (specific asset, all releases)](https://img.shields.io/github/downloads/ChrisTitusTech/winutil/winutil.ps1?label=Total%20Downloads&style=for-the-badge)
|
![GitHub Downloads (specific asset, all releases)](https://img.shields.io/github/downloads/ChrisTitusTech/winutil/winutil.ps1?label=Total%20Downloads&style=for-the-badge)
|
||||||
|
|
||||||
[![Discord Community Server](https://dcbadge.limes.pink/api/server/https://discord.gg/RUbZUZyByQ)](https://discord.gg/RUbZUZyByQ)
|
[![Discord Community Server](https://dcbadge.limes.pink/api/server/https://discord.gg/RUbZUZyByQ)](https://discord.gg/RUbZUZyByQ)
|
||||||
|
|
||||||
Welcome to the official documentation for WinUtil, your go-to utility for optimizing and managing your Windows environment. Whether you’re an IT professional, power user, or regular user, WinUtil provides a comprehensive set of tools to enhance your Windows experience.
|
Welcome to the official documentation for WinUtil, your go-to utility for optimizing and managing your Windows environment. Whether you’re an IT professional, power user, or regular user, WinUtil provides a comprehensive set of tools to enhance your Windows experience.
|
||||||
|
253
edgeremoval.ps1
253
edgeremoval.ps1
@ -1,253 +0,0 @@
|
|||||||
# Script Metadata
|
|
||||||
# Created by AveYo, source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat
|
|
||||||
# Powershell Conversion and Refactor done by Chris Titus Tech
|
|
||||||
|
|
||||||
# Initial Configuration
|
|
||||||
$host.ui.RawUI.WindowTitle = 'Edge Removal - Chris Titus Tech 2023.05.10'
|
|
||||||
$remove_win32 = @("Microsoft Edge", "Microsoft Edge Update")
|
|
||||||
$remove_appx = @("MicrosoftEdge")
|
|
||||||
$skip = @() # Optional: @("DevTools")
|
|
||||||
|
|
||||||
$also_remove_webview = 0
|
|
||||||
if ($also_remove_webview -eq 1) {
|
|
||||||
$remove_win32 += "Microsoft EdgeWebView"
|
|
||||||
$remove_appx += "WebExperience", "Win32WebViewHost"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Administrative Privileges Check
|
|
||||||
$privileges = @(
|
|
||||||
'SeSecurityPrivilege',
|
|
||||||
'SeTakeOwnershipPrivilege',
|
|
||||||
'SeBackupPrivilege',
|
|
||||||
'SeRestorePrivilege'
|
|
||||||
)
|
|
||||||
|
|
||||||
foreach ($privilege in $privileges) {
|
|
||||||
[System.Diagnostics.Process]::SetPrivilege($privilege, 2)
|
|
||||||
}
|
|
||||||
|
|
||||||
# Edge Removal Procedures
|
|
||||||
$processesToShutdown = @(
|
|
||||||
'explorer', 'Widgets', 'widgetservice', 'msedgewebview2', 'MicrosoftEdge*', 'chredge',
|
|
||||||
'msedge', 'edge', 'msteams', 'msfamily', 'WebViewHost', 'Clipchamp'
|
|
||||||
)
|
|
||||||
|
|
||||||
Stop-Process -Name "explorer" -Force -ErrorAction SilentlyContinue
|
|
||||||
$processesToShutdown | ForEach-Object {
|
|
||||||
Stop-Process -Name $_ -Force -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
|
|
||||||
$MS = ($env:ProgramFiles, ${env:ProgramFiles(x86)})[[Environment]::Is64BitOperatingSystem] + '\Microsoft\Edge\Application\msedge.exe'
|
|
||||||
|
|
||||||
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\msedge.exe" -Recurse -ErrorAction SilentlyContinue
|
|
||||||
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ie_to_edge_stub.exe" -Recurse -ErrorAction SilentlyContinue
|
|
||||||
Remove-Item -Path 'Registry::HKEY_Users\S-1-5-21*\Software\Classes\microsoft-edge' -Recurse -ErrorAction SilentlyContinue
|
|
||||||
Remove-Item -Path 'Registry::HKEY_Users\S-1-5-21*\Software\Classes\MSEdgeHTM' -Recurse -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
New-Item -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Force -ErrorAction SilentlyContinue
|
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Name '(Default)' -Value "`"$MS`" --single-argument %%1" -Force -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
New-Item -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Force -ErrorAction SilentlyContinue
|
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Name '(Default)' -Value "`"$MS`" --single-argument %%1" -Force -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
$registryPaths = @('HKLM:\SOFTWARE\Policies', 'HKLM:\SOFTWARE', 'HKLM:\SOFTWARE\WOW6432Node')
|
|
||||||
$edgeProperties = @('InstallDefault', 'Install{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}', 'Install{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}')
|
|
||||||
foreach ($path in $registryPaths) {
|
|
||||||
foreach ($prop in $edgeProperties) {
|
|
||||||
Remove-ItemProperty -Path "$path\Microsoft\EdgeUpdate" -Name $prop -Force -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$edgeupdate = 'Microsoft\EdgeUpdate\Clients\{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}'
|
|
||||||
$webvupdate = 'Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}'
|
|
||||||
$on_actions = @('on-os-upgrade', 'on-logon', 'on-logon-autolaunch', 'on-logon-startup-boost')
|
|
||||||
$registryBases = @('HKLM:\SOFTWARE', 'HKLM:\SOFTWARE\Wow6432Node')
|
|
||||||
foreach ($base in $registryBases) {
|
|
||||||
foreach ($launch in $on_actions) {
|
|
||||||
Remove-Item -Path "$base\$edgeupdate\Commands\$launch" -Force -ErrorAction SilentlyContinue
|
|
||||||
Remove-Item -Path "$base\$webvupdate\Commands\$launch" -Force -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$registryPaths = @('HKCU:', 'HKLM:')
|
|
||||||
$nodes = @('', '\Wow6432Node')
|
|
||||||
foreach ($regPath in $registryPaths) {
|
|
||||||
foreach ($node in $nodes) {
|
|
||||||
foreach ($i in $remove_win32) {
|
|
||||||
Remove-ItemProperty -Path "$regPath\SOFTWARE${node}\Microsoft\Windows\CurrentVersion\Uninstall\$i" -Name 'NoRemove' -Force -ErrorAction SilentlyContinue
|
|
||||||
New-Item -Path "$regPath\SOFTWARE${node}\Microsoft\EdgeUpdateDev" -Force | Out-Null
|
|
||||||
Set-ItemProperty -Path "$regPath\SOFTWARE${node}\Microsoft\EdgeUpdateDev" -Name 'AllowUninstall' -Value 1 -Type Dword -Force
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$foldersToSearch = @('LocalApplicationData', 'ProgramFilesX86', 'ProgramFiles') | ForEach-Object {
|
|
||||||
[Environment]::GetFolderPath($_)
|
|
||||||
}
|
|
||||||
|
|
||||||
$edges = @()
|
|
||||||
$bhoFiles = @()
|
|
||||||
|
|
||||||
foreach ($folder in $foldersToSearch) {
|
|
||||||
$bhoFiles += Get-ChildItem -Path "$folder\Microsoft\Edge*\ie_to_edge_stub.exe" -Recurse -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
$edges += Get-ChildItem -Path "$folder\Microsoft\Edge*\setup.exe" -Recurse -ErrorAction SilentlyContinue |
|
|
||||||
Where-Object { $_.FullName -notlike '*EdgeWebView*' }
|
|
||||||
}
|
|
||||||
|
|
||||||
$destinationDir = "$env:SystemDrive\Scripts"
|
|
||||||
New-Item -Path $destinationDir -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
|
|
||||||
|
|
||||||
foreach ($bhoFile in $bhoFiles) {
|
|
||||||
if (Test-Path $bhoFile) {
|
|
||||||
try {
|
|
||||||
Copy-Item -Path $bhoFile -Destination "$destinationDir\ie_to_edge_stub.exe" -Force
|
|
||||||
} catch { }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
## Work on Appx Removals
|
|
||||||
$provisioned = Get-AppxProvisionedPackage -Online
|
|
||||||
$appxpackage = Get-AppxPackage -AllUsers
|
|
||||||
$eol = @()
|
|
||||||
|
|
||||||
$store = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Store'
|
|
||||||
$storeP = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Store\InstalledApplications'
|
|
||||||
foreach ($app in $appxpackage) {
|
|
||||||
$name = $app.Name
|
|
||||||
if ($app.Name -eq "Microsoft.Edge") {
|
|
||||||
$eol += $name
|
|
||||||
} elseif ($app.Name -eq "Microsoft.EdgeBeta" -or $app.Name -eq "Microsoft.EdgeDev" -or $app.Name -eq "Microsoft.EdgeCanary" -or $app.Name -eq "Microsoft.MicrosoftEdge") {
|
|
||||||
$eol += $name
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$eolApps = $provisioned | Where-Object { $eol -contains $_.DisplayName }
|
|
||||||
|
|
||||||
foreach ($edge in $eolApps) {
|
|
||||||
$edgeName = $edge.DisplayName
|
|
||||||
if (-not ($skip -contains $edgeName)) {
|
|
||||||
try {
|
|
||||||
Remove-AppxProvisionedPackage -Online -PackageName $edgeName -ErrorAction SilentlyContinue
|
|
||||||
} catch { }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($edge in $appxpackage) {
|
|
||||||
$edgeName = $edge.Name
|
|
||||||
if ($eol -contains $edgeName) {
|
|
||||||
if (-not ($skip -contains $edgeName)) {
|
|
||||||
try {
|
|
||||||
Remove-AppxPackage -Package $edgeName -AllUsers -ErrorAction SilentlyContinue
|
|
||||||
} catch { }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
## Redirect shortcuts
|
|
||||||
$shortcut_path = "$env:Public\Desktop"
|
|
||||||
$shortcut_file = 'Microsoft Edge.lnk'
|
|
||||||
$full_path = Join-Path -Path $shortcut_path -ChildPath $shortcut_file
|
|
||||||
|
|
||||||
if (Test-Path $full_path) {
|
|
||||||
Remove-Item -Path $full_path -Force -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
|
|
||||||
$shortcut_path = "$env:ProgramData\Microsoft\Windows\Start Menu\Programs"
|
|
||||||
$shortcut_file = 'Microsoft Edge.lnk'
|
|
||||||
$full_path = Join-Path -Path $shortcut_path -ChildPath $shortcut_file
|
|
||||||
|
|
||||||
if (Test-Path $full_path) {
|
|
||||||
Remove-Item -Path $full_path -Force -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
|
|
||||||
$edgePolicy = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge'
|
|
||||||
if (-not (Test-Path $edgePolicy)) {
|
|
||||||
New-Item -Path $edgePolicy -Force | Out-Null
|
|
||||||
}
|
|
||||||
|
|
||||||
$edgePrefs = @{
|
|
||||||
'Dword' = @{
|
|
||||||
'BrowserReplacementEnabled' = 1
|
|
||||||
'HideFirstRunExperience' = 1
|
|
||||||
'HideImportEdgeFavoritesPrompt' = 1
|
|
||||||
'HideSyncSetupExperience' = 1
|
|
||||||
'FavoritesBarVisibility' = 1
|
|
||||||
}
|
|
||||||
'String' = @{
|
|
||||||
'AutoplayAllowed' = 'AllowOnce'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($entryType in $edgePrefs.Keys) {
|
|
||||||
foreach ($prefName in $edgePrefs[$entryType].Keys) {
|
|
||||||
Set-ItemProperty -Path $edgePolicy -Name $prefName -Value $edgePrefs[$entryType][$prefName] -Type $entryType -Force
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Output Results
|
|
||||||
Write-Host "Edge Removal Complete" -ForegroundColor Green
|
|
||||||
|
|
||||||
# Define constants and initial configuration
|
|
||||||
$ScriptVersion = "2023.05.10"
|
|
||||||
$EdgeProcessesToShutdown = @('explorer', 'Widgets', 'widgetservice', 'msedgewebview2', 'MicrosoftEdge*', 'chredge', 'msedge', 'edge', 'msteams', 'msfamily', 'WebViewHost', 'Clipchamp')
|
|
||||||
$EdgeRemovalOptions = @{
|
|
||||||
RemoveWin32 = @("Microsoft Edge", "Microsoft Edge Update")
|
|
||||||
RemoveAppx = @("MicrosoftEdge")
|
|
||||||
Skip = @() # Optional: @("DevTools")
|
|
||||||
AlsoRemoveWebView = $false
|
|
||||||
}
|
|
||||||
|
|
||||||
# Define main function to remove Microsoft Edge components
|
|
||||||
function Remove-MicrosoftEdge {
|
|
||||||
[CmdletBinding()]
|
|
||||||
param()
|
|
||||||
|
|
||||||
# Function to shutdown processes related to Microsoft Edge
|
|
||||||
function Stop-EdgeProcesses {
|
|
||||||
$EdgeProcessesToShutdown | ForEach-Object {
|
|
||||||
Stop-Process -Name $_ -Force -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to remove registry entries related to Microsoft Edge
|
|
||||||
function Remove-EdgeRegistryEntries {
|
|
||||||
# Clean up certain registry entries
|
|
||||||
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\msedge.exe" -Recurse -ErrorAction SilentlyContinue
|
|
||||||
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ie_to_edge_stub.exe" -Recurse -ErrorAction SilentlyContinue
|
|
||||||
Remove-Item -Path 'Registry::HKEY_Users\S-1-5-21*\Software\Classes\microsoft-edge' -Recurse -ErrorAction SilentlyContinue
|
|
||||||
Remove-Item -Path 'Registry::HKEY_Users\S-1-5-21*\Software\Classes\MSEdgeHTM' -Recurse -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
# Create new registry entries
|
|
||||||
$EdgeExecutablePath = ($env:ProgramFiles, ${env:ProgramFiles(x86)})[[Environment]::Is64BitOperatingSystem] + '\Microsoft\Edge\Application\msedge.exe'
|
|
||||||
New-Item -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Force -ErrorAction SilentlyContinue
|
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Name '(Default)' -Value "`"$EdgeExecutablePath`" --single-argument %%1" -Force -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
New-Item -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Force -ErrorAction SilentlyContinue
|
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Name '(Default)' -Value "`"$EdgeExecutablePath`" --single-argument %%1" -Force -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to remove Microsoft Edge AppX packages
|
|
||||||
function Remove-EdgeAppxPackages {
|
|
||||||
$EdgeRemovalOptions.RemoveAppx | ForEach-Object {
|
|
||||||
# Remove provisioned packages
|
|
||||||
Get-AppxProvisionedPackage -Online | Where-Object { $_.PackageName -like "*$_*" -and $EdgeRemovalOptions.Skip -notcontains $_.PackageName } | Remove-AppxProvisionedPackage -Online -AllUsers -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
# Remove installed packages
|
|
||||||
Get-AppxPackage -AllUsers | Where-Object { $_.PackageFullName -like "*$_*" -and $EdgeRemovalOptions.Skip -notcontains $_.PackageFullName } | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to remove Microsoft Edge processes, registry entries, and AppX packages
|
|
||||||
try {
|
|
||||||
Stop-EdgeProcesses
|
|
||||||
Remove-EdgeRegistryEntries
|
|
||||||
Remove-EdgeAppxPackages
|
|
||||||
Write-Output "Microsoft Edge components have been successfully removed."
|
|
||||||
} catch {
|
|
||||||
Write-Error "Failed to remove Microsoft Edge components: $_"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Execute the main function
|
|
||||||
Remove-MicrosoftEdge
|
|
@ -44,13 +44,14 @@ function Show-CustomDialog {
|
|||||||
Add-Type -AssemblyName PresentationFramework
|
Add-Type -AssemblyName PresentationFramework
|
||||||
|
|
||||||
# Define theme colors
|
# Define theme colors
|
||||||
$foregroundColor = [Windows.Media.Brushes]::White
|
$foregroundColor = $sync.configs.themes.$ctttheme.MainForegroundColor
|
||||||
$backgroundColor = [Windows.Media.Brushes]::Black
|
$backgroundColor = $sync.configs.themes.$ctttheme.MainBackgroundColor
|
||||||
$font = New-Object Windows.Media.FontFamily("Consolas")
|
$font = New-Object Windows.Media.FontFamily("Consolas")
|
||||||
$borderColor = [Windows.Media.Brushes]::Green
|
$borderColor = $sync.configs.themes.$ctttheme.BorderColor # ButtonInstallBackgroundColor
|
||||||
$buttonBackgroundColor = [Windows.Media.Brushes]::Black
|
$buttonBackgroundColor = $sync.configs.themes.$ctttheme.ButtonInstallBackgroundColor
|
||||||
$buttonForegroundColor = [Windows.Media.Brushes]::White
|
$buttonForegroundColor = $sync.configs.themes.$ctttheme.ButtonInstallForegroundColor
|
||||||
$shadowColor = [Windows.Media.ColorConverter]::ConvertFromString("#AAAAAAAA")
|
$shadowColor = [Windows.Media.ColorConverter]::ConvertFromString("#AAAAAAAA")
|
||||||
|
$logocolor = $sync.configs.themes.$ctttheme.ButtonBackgroundPressedColor
|
||||||
|
|
||||||
# Create a custom dialog window
|
# Create a custom dialog window
|
||||||
$dialog = New-Object Windows.Window
|
$dialog = New-Object Windows.Window
|
||||||
@ -180,7 +181,7 @@ $cttLogoPath = @"
|
|||||||
# Add SVG path
|
# Add SVG path
|
||||||
$svgPath = New-Object Windows.Shapes.Path
|
$svgPath = New-Object Windows.Shapes.Path
|
||||||
$svgPath.Data = [Windows.Media.Geometry]::Parse($cttLogoPath)
|
$svgPath.Data = [Windows.Media.Geometry]::Parse($cttLogoPath)
|
||||||
$svgPath.Fill = $foregroundColor # Set fill color to white
|
$svgPath.Fill = $logocolor # Set fill color to white
|
||||||
|
|
||||||
# Add SVG path to Viewbox
|
# Add SVG path to Viewbox
|
||||||
$viewbox.Child = $svgPath
|
$viewbox.Child = $svgPath
|
||||||
@ -192,7 +193,7 @@ $cttLogoPath = @"
|
|||||||
$winutilTextBlock = New-Object Windows.Controls.TextBlock
|
$winutilTextBlock = New-Object Windows.Controls.TextBlock
|
||||||
$winutilTextBlock.Text = "Winutil"
|
$winutilTextBlock.Text = "Winutil"
|
||||||
$winutilTextBlock.FontSize = $HeaderFontSize
|
$winutilTextBlock.FontSize = $HeaderFontSize
|
||||||
$winutilTextBlock.Foreground = $foregroundColor
|
$winutilTextBlock.Foreground = $logocolor
|
||||||
$winutilTextBlock.Margin = New-Object Windows.Thickness(10, 5, 10, 5) # Add margins around the text block
|
$winutilTextBlock.Margin = New-Object Windows.Thickness(10, 5, 10, 5) # Add margins around the text block
|
||||||
$stackPanel.Children.Add($winutilTextBlock)
|
$stackPanel.Children.Add($winutilTextBlock)
|
||||||
# Add TextBlock for information with text wrapping and margins
|
# Add TextBlock for information with text wrapping and margins
|
||||||
@ -219,18 +220,19 @@ $cttLogoPath = @"
|
|||||||
$hyperlink.NavigateUri = New-Object System.Uri($match.Groups[1].Value)
|
$hyperlink.NavigateUri = New-Object System.Uri($match.Groups[1].Value)
|
||||||
$hyperlink.Inlines.Add($match.Groups[2].Value)
|
$hyperlink.Inlines.Add($match.Groups[2].Value)
|
||||||
$hyperlink.TextDecorations = [Windows.TextDecorations]::None # Remove underline
|
$hyperlink.TextDecorations = [Windows.TextDecorations]::None # Remove underline
|
||||||
$hyperlink.Foreground = $foregroundColor
|
$hyperlink.Foreground = $sync.configs.themes.$ctttheme.LinkForegroundColor
|
||||||
|
|
||||||
$hyperlink.Add_Click({
|
$hyperlink.Add_Click({
|
||||||
param($sender, $args)
|
param($sender, $args)
|
||||||
Start-Process $sender.NavigateUri.AbsoluteUri
|
Start-Process $sender.NavigateUri.AbsoluteUri
|
||||||
})
|
})
|
||||||
$hyperlink.Add_MouseEnter({
|
$hyperlink.Add_MouseEnter({
|
||||||
param($sender, $args)
|
param($sender, $args)
|
||||||
$sender.Foreground = [Windows.Media.Brushes]::LightGray
|
$sender.Foreground = $sync.configs.themes.$ctttheme.LinkHoverForegroundColor
|
||||||
})
|
})
|
||||||
$hyperlink.Add_MouseLeave({
|
$hyperlink.Add_MouseLeave({
|
||||||
param($sender, $args)
|
param($sender, $args)
|
||||||
$sender.Foreground = $foregroundColor
|
$sender.Foreground = $sync.configs.themes.$ctttheme.LinkForegroundColor
|
||||||
})
|
})
|
||||||
|
|
||||||
$messageTextBlock.Inlines.Add($hyperlink)
|
$messageTextBlock.Inlines.Add($hyperlink)
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
function Invoke-WPFShortcut {
|
function Invoke-WPFShortcut {
|
||||||
<#
|
<#
|
||||||
|
|
||||||
@ -31,7 +30,6 @@ function Invoke-WPFShortcut {
|
|||||||
$shellArgs = "-ExecutionPolicy Bypass -Command `"Start-Process $shell -verb runas -ArgumentList `'-Command `"irm https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1 | iex`"`'"
|
$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"
|
$DestinationName = "WinUtil.lnk"
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,8 +49,8 @@ function Invoke-WPFShortcut {
|
|||||||
# Prepare the Shortcut paramter
|
# Prepare the Shortcut paramter
|
||||||
$WshShell = New-Object -comObject WScript.Shell
|
$WshShell = New-Object -comObject WScript.Shell
|
||||||
$Shortcut = $WshShell.CreateShortcut($FileBrowser.FileName)
|
$Shortcut = $WshShell.CreateShortcut($FileBrowser.FileName)
|
||||||
$Shortcut.TargetPath = $SourceExe
|
$Shortcut.TargetPath = $shell
|
||||||
$Shortcut.Arguments = $ArgumentsToSourceExe
|
$Shortcut.Arguments = $shellArgs
|
||||||
if (Test-Path -Path $winutildir["logo.ico"]) {
|
if (Test-Path -Path $winutildir["logo.ico"]) {
|
||||||
$shortcut.IconLocation = $winutildir["logo.ico"]
|
$shortcut.IconLocation = $winutildir["logo.ico"]
|
||||||
}
|
}
|
||||||
|
279
winutil.ps1
279
winutil.ps1
@ -8,7 +8,7 @@
|
|||||||
Author : Chris Titus @christitustech
|
Author : Chris Titus @christitustech
|
||||||
Runspace Author: @DeveloperDurp
|
Runspace Author: @DeveloperDurp
|
||||||
GitHub : https://github.com/ChrisTitusTech
|
GitHub : https://github.com/ChrisTitusTech
|
||||||
Version : 24.07.31
|
Version : 24.08.06
|
||||||
#>
|
#>
|
||||||
param (
|
param (
|
||||||
[switch]$Debug,
|
[switch]$Debug,
|
||||||
@ -45,7 +45,7 @@ Add-Type -AssemblyName System.Windows.Forms
|
|||||||
# Variable to sync between runspaces
|
# Variable to sync between runspaces
|
||||||
$sync = [Hashtable]::Synchronized(@{})
|
$sync = [Hashtable]::Synchronized(@{})
|
||||||
$sync.PSScriptRoot = $PSScriptRoot
|
$sync.PSScriptRoot = $PSScriptRoot
|
||||||
$sync.version = "24.07.31"
|
$sync.version = "24.08.06"
|
||||||
$sync.configs = @{}
|
$sync.configs = @{}
|
||||||
$sync.ProcessRunning = $false
|
$sync.ProcessRunning = $false
|
||||||
|
|
||||||
@ -3241,13 +3241,14 @@ function Show-CustomDialog {
|
|||||||
Add-Type -AssemblyName PresentationFramework
|
Add-Type -AssemblyName PresentationFramework
|
||||||
|
|
||||||
# Define theme colors
|
# Define theme colors
|
||||||
$foregroundColor = [Windows.Media.Brushes]::White
|
$foregroundColor = $sync.configs.themes.$ctttheme.MainForegroundColor
|
||||||
$backgroundColor = [Windows.Media.Brushes]::Black
|
$backgroundColor = $sync.configs.themes.$ctttheme.MainBackgroundColor
|
||||||
$font = New-Object Windows.Media.FontFamily("Consolas")
|
$font = New-Object Windows.Media.FontFamily("Consolas")
|
||||||
$borderColor = [Windows.Media.Brushes]::Green
|
$borderColor = $sync.configs.themes.$ctttheme.BorderColor # ButtonInstallBackgroundColor
|
||||||
$buttonBackgroundColor = [Windows.Media.Brushes]::Black
|
$buttonBackgroundColor = $sync.configs.themes.$ctttheme.ButtonInstallBackgroundColor
|
||||||
$buttonForegroundColor = [Windows.Media.Brushes]::White
|
$buttonForegroundColor = $sync.configs.themes.$ctttheme.ButtonInstallForegroundColor
|
||||||
$shadowColor = [Windows.Media.ColorConverter]::ConvertFromString("#AAAAAAAA")
|
$shadowColor = [Windows.Media.ColorConverter]::ConvertFromString("#AAAAAAAA")
|
||||||
|
$logocolor = $sync.configs.themes.$ctttheme.ButtonBackgroundPressedColor
|
||||||
|
|
||||||
# Create a custom dialog window
|
# Create a custom dialog window
|
||||||
$dialog = New-Object Windows.Window
|
$dialog = New-Object Windows.Window
|
||||||
@ -3377,7 +3378,7 @@ $cttLogoPath = @"
|
|||||||
# Add SVG path
|
# Add SVG path
|
||||||
$svgPath = New-Object Windows.Shapes.Path
|
$svgPath = New-Object Windows.Shapes.Path
|
||||||
$svgPath.Data = [Windows.Media.Geometry]::Parse($cttLogoPath)
|
$svgPath.Data = [Windows.Media.Geometry]::Parse($cttLogoPath)
|
||||||
$svgPath.Fill = $foregroundColor # Set fill color to white
|
$svgPath.Fill = $logocolor # Set fill color to white
|
||||||
|
|
||||||
# Add SVG path to Viewbox
|
# Add SVG path to Viewbox
|
||||||
$viewbox.Child = $svgPath
|
$viewbox.Child = $svgPath
|
||||||
@ -3389,7 +3390,7 @@ $cttLogoPath = @"
|
|||||||
$winutilTextBlock = New-Object Windows.Controls.TextBlock
|
$winutilTextBlock = New-Object Windows.Controls.TextBlock
|
||||||
$winutilTextBlock.Text = "Winutil"
|
$winutilTextBlock.Text = "Winutil"
|
||||||
$winutilTextBlock.FontSize = $HeaderFontSize
|
$winutilTextBlock.FontSize = $HeaderFontSize
|
||||||
$winutilTextBlock.Foreground = $foregroundColor
|
$winutilTextBlock.Foreground = $logocolor
|
||||||
$winutilTextBlock.Margin = New-Object Windows.Thickness(10, 5, 10, 5) # Add margins around the text block
|
$winutilTextBlock.Margin = New-Object Windows.Thickness(10, 5, 10, 5) # Add margins around the text block
|
||||||
$stackPanel.Children.Add($winutilTextBlock)
|
$stackPanel.Children.Add($winutilTextBlock)
|
||||||
# Add TextBlock for information with text wrapping and margins
|
# Add TextBlock for information with text wrapping and margins
|
||||||
@ -3416,18 +3417,19 @@ $cttLogoPath = @"
|
|||||||
$hyperlink.NavigateUri = New-Object System.Uri($match.Groups[1].Value)
|
$hyperlink.NavigateUri = New-Object System.Uri($match.Groups[1].Value)
|
||||||
$hyperlink.Inlines.Add($match.Groups[2].Value)
|
$hyperlink.Inlines.Add($match.Groups[2].Value)
|
||||||
$hyperlink.TextDecorations = [Windows.TextDecorations]::None # Remove underline
|
$hyperlink.TextDecorations = [Windows.TextDecorations]::None # Remove underline
|
||||||
$hyperlink.Foreground = $foregroundColor
|
$hyperlink.Foreground = $sync.configs.themes.$ctttheme.LinkForegroundColor
|
||||||
|
|
||||||
$hyperlink.Add_Click({
|
$hyperlink.Add_Click({
|
||||||
param($sender, $args)
|
param($sender, $args)
|
||||||
Start-Process $sender.NavigateUri.AbsoluteUri
|
Start-Process $sender.NavigateUri.AbsoluteUri
|
||||||
})
|
})
|
||||||
$hyperlink.Add_MouseEnter({
|
$hyperlink.Add_MouseEnter({
|
||||||
param($sender, $args)
|
param($sender, $args)
|
||||||
$sender.Foreground = [Windows.Media.Brushes]::LightGray
|
$sender.Foreground = $sync.configs.themes.$ctttheme.LinkHoverForegroundColor
|
||||||
})
|
})
|
||||||
$hyperlink.Add_MouseLeave({
|
$hyperlink.Add_MouseLeave({
|
||||||
param($sender, $args)
|
param($sender, $args)
|
||||||
$sender.Foreground = $foregroundColor
|
$sender.Foreground = $sync.configs.themes.$ctttheme.LinkForegroundColor
|
||||||
})
|
})
|
||||||
|
|
||||||
$messageTextBlock.Inlines.Add($hyperlink)
|
$messageTextBlock.Inlines.Add($hyperlink)
|
||||||
@ -5308,7 +5310,6 @@ function Invoke-WPFRunspace {
|
|||||||
[System.GC]::Collect()
|
[System.GC]::Collect()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-WPFShortcut {
|
function Invoke-WPFShortcut {
|
||||||
<#
|
<#
|
||||||
|
|
||||||
@ -5342,7 +5343,6 @@ function Invoke-WPFShortcut {
|
|||||||
$shellArgs = "-ExecutionPolicy Bypass -Command `"Start-Process $shell -verb runas -ArgumentList `'-Command `"irm https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1 | iex`"`'"
|
$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"
|
$DestinationName = "WinUtil.lnk"
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5362,8 +5362,8 @@ function Invoke-WPFShortcut {
|
|||||||
# Prepare the Shortcut paramter
|
# Prepare the Shortcut paramter
|
||||||
$WshShell = New-Object -comObject WScript.Shell
|
$WshShell = New-Object -comObject WScript.Shell
|
||||||
$Shortcut = $WshShell.CreateShortcut($FileBrowser.FileName)
|
$Shortcut = $WshShell.CreateShortcut($FileBrowser.FileName)
|
||||||
$Shortcut.TargetPath = $SourceExe
|
$Shortcut.TargetPath = $shell
|
||||||
$Shortcut.Arguments = $ArgumentsToSourceExe
|
$Shortcut.Arguments = $shellArgs
|
||||||
if (Test-Path -Path $winutildir["logo.ico"]) {
|
if (Test-Path -Path $winutildir["logo.ico"]) {
|
||||||
$shortcut.IconLocation = $winutildir["logo.ico"]
|
$shortcut.IconLocation = $winutildir["logo.ico"]
|
||||||
}
|
}
|
||||||
@ -10950,6 +10950,162 @@ $sync.configs.tweaks = '{
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"WPFTweaksEdgeDebloat": {
|
||||||
|
"Content": "Debloat Edge",
|
||||||
|
"Description": "Disables various telemetry options, popups, and other annoyances in Edge.",
|
||||||
|
"category": "Essential Tweaks",
|
||||||
|
"panel": "1",
|
||||||
|
"Order": "a016_",
|
||||||
|
"registry": [
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate",
|
||||||
|
"Name": "CreateDesktopShortcutDefault",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeEnhanceImagesEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "PersonalizationReportingEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "ShowRecommendationsEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "HideFirstRunExperience",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "UserFeedbackAllowed",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "ConfigureDoNotTrack",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "AlternateErrorPagesEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeCollectionsEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeFollowEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeShoppingAssistantEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "MicrosoftEdgeInsiderPromotionEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "PersonalizationReportingEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "ShowMicrosoftRewards",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "WebWidgetAllowed",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "DiagnosticData",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeAssetDeliveryServiceEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "EdgeCollectionsEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "CryptoWalletEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "ConfigureDoNotTrack",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "WalletDonationEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"WPFTweaksConsumerFeatures": {
|
"WPFTweaksConsumerFeatures": {
|
||||||
"Content": "Disable ConsumerFeatures",
|
"Content": "Disable ConsumerFeatures",
|
||||||
"Description": "Windows 10 will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)",
|
"Description": "Windows 10 will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)",
|
||||||
@ -14939,6 +15095,7 @@ $inputXML = '<Window x:Class="WinUtility.MainWindow"
|
|||||||
<CheckBox Name="WPFTweaksPowershell7Tele" Content="Disable Powershell 7 Telemetry" Margin="5,0" ToolTip="This will create an Environment Variable called 'POWERSHELL_TELEMETRY_OPTOUT' with a value of '1' which will tell Powershell 7 to not send Telemetry Data."/>
|
<CheckBox Name="WPFTweaksPowershell7Tele" Content="Disable Powershell 7 Telemetry" Margin="5,0" ToolTip="This will create an Environment Variable called 'POWERSHELL_TELEMETRY_OPTOUT' with a value of '1' which will tell Powershell 7 to not send Telemetry Data."/>
|
||||||
<CheckBox Name="WPFTweaksLaptopHibernation" Content="Set Hibernation as default (good for laptops)" Margin="5,0" ToolTip="Most modern laptops have connected standby enabled which drains the battery, this sets hibernation as default which will not drain the battery. See issue https://github.com/ChrisTitusTech/winutil/issues/1399"/>
|
<CheckBox Name="WPFTweaksLaptopHibernation" Content="Set Hibernation as default (good for laptops)" Margin="5,0" ToolTip="Most modern laptops have connected standby enabled which drains the battery, this sets hibernation as default which will not drain the battery. See issue https://github.com/ChrisTitusTech/winutil/issues/1399"/>
|
||||||
<CheckBox Name="WPFTweaksServices" Content="Set Services to Manual" Margin="5,0" ToolTip="Turns a bunch of system services to manual that don't need to be running all the time. This is pretty harmless as if the service is needed, it will simply start on demand."/>
|
<CheckBox Name="WPFTweaksServices" Content="Set Services to Manual" Margin="5,0" ToolTip="Turns a bunch of system services to manual that don't need to be running all the time. This is pretty harmless as if the service is needed, it will simply start on demand."/>
|
||||||
|
<CheckBox Name="WPFTweaksEdgeDebloat" Content="Debloat Edge" Margin="5,0" ToolTip="Disables various telemetry options, popups, and other annoyances in Edge."/>
|
||||||
|
|
||||||
<Label Name="WPFLabelAdvancedTweaksCAUTION" Content="Advanced Tweaks - CAUTION" FontSize="{FontSizeHeading}" FontFamily="{HeaderFontFamily}"/>
|
<Label Name="WPFLabelAdvancedTweaksCAUTION" Content="Advanced Tweaks - CAUTION" FontSize="{FontSizeHeading}" FontFamily="{HeaderFontFamily}"/>
|
||||||
|
|
||||||
@ -15889,3 +16046,93 @@ $sync["SponsorMenuItem"].Add_Click({
|
|||||||
})
|
})
|
||||||
$sync["Form"].ShowDialog() | out-null
|
$sync["Form"].ShowDialog() | out-null
|
||||||
Stop-Transcript
|
Stop-Transcript
|
||||||
|
|
||||||
|
# SIG # Begin signature block
|
||||||
|
# MIIQRwYJKoZIhvcNAQcCoIIQODCCEDQCAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
||||||
|
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
||||||
|
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCf2YhvpvN0Lqkr
|
||||||
|
# FLebGrWqkSf74dri62aBEVgSbJjM1qCCDIMwggYaMIIEAqADAgECAhBiHW0MUgGe
|
||||||
|
# O5B5FSCJIRwKMA0GCSqGSIb3DQEBDAUAMFYxCzAJBgNVBAYTAkdCMRgwFgYDVQQK
|
||||||
|
# Ew9TZWN0aWdvIExpbWl0ZWQxLTArBgNVBAMTJFNlY3RpZ28gUHVibGljIENvZGUg
|
||||||
|
# U2lnbmluZyBSb290IFI0NjAeFw0yMTAzMjIwMDAwMDBaFw0zNjAzMjEyMzU5NTla
|
||||||
|
# MFQxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxKzApBgNV
|
||||||
|
# BAMTIlNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYwggGiMA0GCSqG
|
||||||
|
# SIb3DQEBAQUAA4IBjwAwggGKAoIBgQCbK51T+jU/jmAGQ2rAz/V/9shTUxjIztNs
|
||||||
|
# fvxYB5UXeWUzCxEeAEZGbEN4QMgCsJLZUKhWThj/yPqy0iSZhXkZ6Pg2A2NVDgFi
|
||||||
|
# gOMYzB2OKhdqfWGVoYW3haT29PSTahYkwmMv0b/83nbeECbiMXhSOtbam+/36F09
|
||||||
|
# fy1tsB8je/RV0mIk8XL/tfCK6cPuYHE215wzrK0h1SWHTxPbPuYkRdkP05ZwmRmT
|
||||||
|
# nAO5/arnY83jeNzhP06ShdnRqtZlV59+8yv+KIhE5ILMqgOZYAENHNX9SJDm+qxp
|
||||||
|
# 4VqpB3MV/h53yl41aHU5pledi9lCBbH9JeIkNFICiVHNkRmq4TpxtwfvjsUedyz8
|
||||||
|
# rNyfQJy/aOs5b4s+ac7IH60B+Ja7TVM+EKv1WuTGwcLmoU3FpOFMbmPj8pz44MPZ
|
||||||
|
# 1f9+YEQIQty/NQd/2yGgW+ufflcZ/ZE9o1M7a5Jnqf2i2/uMSWymR8r2oQBMdlyh
|
||||||
|
# 2n5HirY4jKnFH/9gRvd+QOfdRrJZb1sCAwEAAaOCAWQwggFgMB8GA1UdIwQYMBaA
|
||||||
|
# FDLrkpr/NZZILyhAQnAgNpFcF4XmMB0GA1UdDgQWBBQPKssghyi47G9IritUpimq
|
||||||
|
# F6TNDDAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADATBgNVHSUE
|
||||||
|
# DDAKBggrBgEFBQcDAzAbBgNVHSAEFDASMAYGBFUdIAAwCAYGZ4EMAQQBMEsGA1Ud
|
||||||
|
# HwREMEIwQKA+oDyGOmh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1Ymxp
|
||||||
|
# Y0NvZGVTaWduaW5nUm9vdFI0Ni5jcmwwewYIKwYBBQUHAQEEbzBtMEYGCCsGAQUF
|
||||||
|
# BzAChjpodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNDb2RlU2ln
|
||||||
|
# bmluZ1Jvb3RSNDYucDdjMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdv
|
||||||
|
# LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEABv+C4XdjNm57oRUgmxP/BP6YdURhw1aV
|
||||||
|
# cdGRP4Wh60BAscjW4HL9hcpkOTz5jUug2oeunbYAowbFC2AKK+cMcXIBD0ZdOaWT
|
||||||
|
# syNyBBsMLHqafvIhrCymlaS98+QpoBCyKppP0OcxYEdU0hpsaqBBIZOtBajjcw5+
|
||||||
|
# w/KeFvPYfLF/ldYpmlG+vd0xqlqd099iChnyIMvY5HexjO2AmtsbpVn0OhNcWbWD
|
||||||
|
# RF/3sBp6fWXhz7DcML4iTAWS+MVXeNLj1lJziVKEoroGs9Mlizg0bUMbOalOhOfC
|
||||||
|
# ipnx8CaLZeVme5yELg09Jlo8BMe80jO37PU8ejfkP9/uPak7VLwELKxAMcJszkye
|
||||||
|
# iaerlphwoKx1uHRzNyE6bxuSKcutisqmKL5OTunAvtONEoteSiabkPVSZ2z76mKn
|
||||||
|
# zAfZxCl/3dq3dUNw4rg3sTCggkHSRqTqlLMS7gjrhTqBmzu1L90Y1KWN/Y5JKdGv
|
||||||
|
# spbOrTfOXyXvmPL6E52z1NZJ6ctuMFBQZH3pwWvqURR8AgQdULUvrxjUYbHHj95E
|
||||||
|
# jza63zdrEcxWLDX6xWls/GDnVNueKjWUH3fTv1Y8Wdho698YADR7TNx8X8z2Bev6
|
||||||
|
# SivBBOHY+uqiirZtg0y9ShQoPzmCcn63Syatatvx157YK9hlcPmVoa1oDE5/L9Uo
|
||||||
|
# 2bC5a4CH2RwwggZhMIIEyaADAgECAhAmzTnZ/yhC019IbbKDBpvFMA0GCSqGSIb3
|
||||||
|
# DQEBDAUAMFQxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQx
|
||||||
|
# KzApBgNVBAMTIlNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYwHhcN
|
||||||
|
# MjIwNTMwMDAwMDAwWhcNMjUwNTI5MjM1OTU5WjBVMQswCQYDVQQGEwJVUzEOMAwG
|
||||||
|
# A1UECAwFVGV4YXMxGjAYBgNVBAoMEUNUIFRFQ0ggR1JPVVAgTExDMRowGAYDVQQD
|
||||||
|
# DBFDVCBURUNIIEdST1VQIExMQzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
|
||||||
|
# ggIBALDxiKQHPvjYMWMVlH40AhqVOaVq9mWPSezrfgN3UAeuJFj1zwOzQfHD1WZj
|
||||||
|
# +eQtej48zIt3YHLKpy0VEHvtkFL7yqmuTrXbhGv55PggiMYp0hh0jv7vpFSsnShv
|
||||||
|
# wsaneTWBy0v6EaK/qQ8a7tZCwEnfVE4cRepdPdfdpMG0AaiK+GWjfqh/lUdtJT9K
|
||||||
|
# W2/SyTOuEFhb/+1ltsnmdoBSqj6mzk5FYXJIWH4193Gdq65j6EZeSFv0ev7tN3Zp
|
||||||
|
# 1w7oc/J7odI0zxNZJW/E6v3cG3oBfdwy2mmfl6KBzP7ulzCh/oj1vYFGxpiBvy4w
|
||||||
|
# fyblnhYnmk+VU2vwt5RobQYpFpOU2+b7v6RC8DlCScsFt16QtA7l6sBgf2Sg8OOe
|
||||||
|
# Be6x29lRwHvcBni9Ih1VFnRJ5T5QkEIqgT18fY5+SLXmMj495fJbEwZkUr1NKIwn
|
||||||
|
# ivZgnp66ImKgYSwwB7U/A4vdCqnAlo8po28vYq+yzuBsaOjUFhi9MWRpPPaaI4aw
|
||||||
|
# 8UkzwVwdTxYBl1JXYrwTxsEA6dIiVxBhKnT3uKJcN6EwEHO3wnQGrWAgxQZWuHXQ
|
||||||
|
# +gX5lQb6bdalEdXc0hiIQx7g/Fu2pQTcmzT7Lk//vu43RAOmxJOUOo6rkNmLuzkk
|
||||||
|
# aSpPdJftm9GOnQ6J+pbs+mZGq07A+EqbX3gwCD2o2fbDkE6PAgMBAAGjggGsMIIB
|
||||||
|
# qDAfBgNVHSMEGDAWgBQPKssghyi47G9IritUpimqF6TNDDAdBgNVHQ4EFgQUjnXb
|
||||||
|
# LNZOgoZYQySE6eTTsyBbMYYwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAw
|
||||||
|
# EwYDVR0lBAwwCgYIKwYBBQUHAwMwSgYDVR0gBEMwQTA1BgwrBgEEAbIxAQIBAwIw
|
||||||
|
# JTAjBggrBgEFBQcCARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQQB
|
||||||
|
# MEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGln
|
||||||
|
# b1B1YmxpY0NvZGVTaWduaW5nQ0FSMzYuY3JsMHkGCCsGAQUFBwEBBG0wazBEBggr
|
||||||
|
# BgEFBQcwAoY4aHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljQ29k
|
||||||
|
# ZVNpZ25pbmdDQVIzNi5jcnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3Rp
|
||||||
|
# Z28uY29tMCEGA1UdEQQaMBiBFmNvbnRhY3RAY2hyaXN0aXR1cy5jb20wDQYJKoZI
|
||||||
|
# hvcNAQEMBQADggGBADkTnvLMHdIb3hPzKixR3B7XaLL/92r0e7mQU6N4p8IZriTi
|
||||||
|
# 6j0PjZGm9HN7K7UNJjTysnBsdeZGat517qfC9BLn6OZyiZjKXSW6EEhTm37Ryg/k
|
||||||
|
# mfG+GsolkcY/4QnUz5hizj7Q3HVrIX5RduY1QwrlD/nkwAdycMvEXzHTNH7as9kN
|
||||||
|
# 3vpWZr6VBy11gXOLLS7+kKaxwzndY/0xQER6RozNoKsRW6Vx08qF2nHDXygeXHla
|
||||||
|
# iBz17QpqYZQ+i4aMkkG2xMkjzQIjwxOAANbpWEGmSBV4fw/JtEOlBGfEw/kadPsT
|
||||||
|
# rUpVf+a+BMMY+QFGV/tYBkTYTnIUGEpiR/OgZ6pZLo2uIri4KLYLjwIgV6lip5+Q
|
||||||
|
# VxdSTYQKuUhWqpUILtnGYluaYd4PLgBgMSpYBNS5NEqqMVqbhhwRluPKEPySjwYG
|
||||||
|
# pRKP9RT6ke5BHVxuq+FWixnCSoIIXPh/NvCa0eqtRqdCiAy15bi+FkV/Ag5fPoxF
|
||||||
|
# FAEDM6FnXN5M3H53bDGCAxowggMWAgEBMGgwVDELMAkGA1UEBhMCR0IxGDAWBgNV
|
||||||
|
# BAoTD1NlY3RpZ28gTGltaXRlZDErMCkGA1UEAxMiU2VjdGlnbyBQdWJsaWMgQ29k
|
||||||
|
# ZSBTaWduaW5nIENBIFIzNgIQJs052f8oQtNfSG2ygwabxTANBglghkgBZQMEAgEF
|
||||||
|
# AKCBhDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgor
|
||||||
|
# BgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3
|
||||||
|
# DQEJBDEiBCAGtMWezZrYL/T46kAeWszyIaCUf4BzXlowc2xUUPc6tjANBgkqhkiG
|
||||||
|
# 9w0BAQEFAASCAgBjVCmp+0iFgtektdTltvMTXoUTvMOAAQa4aO8aMaOpBfxw0yxH
|
||||||
|
# ljtJJ8Ee8YsLie493MP5z/W2+AZzhTMjJ8Q8202CbwXD0npVzEpcOSOVm1zepDo3
|
||||||
|
# pBTYsOruMP+2leGD+1zoYlVjckhUhlMECfye5wusSk46X7kA9OhxIASeF+PLznEA
|
||||||
|
# JqQxcPNpjltO7NDJErSn3QBfhoaI6MkT2nVJ/KIbxKEruNiqG0GKbrgjEeUUljcC
|
||||||
|
# QDyA/GyGR08svNkgD3F190xXCCvJCzOQm563IBRxntV3wU5MVFkcpHJzhZW1rhvY
|
||||||
|
# dDnWYQuaw5BDR8FogWosqYKdQQL8Y7AkxXHX1bjmnaJ5ElSSitIT6vK2it3zZ5TO
|
||||||
|
# UJWTUih8+TB9MeqNZ1vYk7lTNq6vuCNl2Y5PROQQJmku0uBdlEbdHq4UFzsXr+sI
|
||||||
|
# WaPbq74qDXcMX/BK0U8EpPYDWyQK9SYraFRcM5WAoKdgItFqNeR9Om4uoQwNE+eK
|
||||||
|
# x7TwkNOvfO1t1XT3FU958dbLJIdghxJltodD3MlwZzrSbjx+6rj0BuuOSXEKnLjk
|
||||||
|
# 454Y3FEwGMEbmTjLgSMwlRRNt4zqL11n04HuxzTANKOR0mXwo3JbqYJfyML+ifHn
|
||||||
|
# 8Q8WXRsmVwVqj5bPeeaEM94ghdc2S0eFkS0hVby4ZgO659K4LtxXHbAmOg==
|
||||||
|
# SIG # End signature block
|
||||||
|
Loading…
Reference in New Issue
Block a user