mirror of
https://github.com/ChrisTitusTech/winutil
synced 2026-04-06 06:38:31 +00:00
Compare commits
17 Commits
26.02.24
...
a8db21b2ef
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8db21b2ef | ||
|
|
787937d402 | ||
|
|
91ec6aca3b | ||
|
|
02ba930b20 | ||
|
|
56bd18f2cd | ||
|
|
5c8adf3c9f | ||
|
|
075bc0772c | ||
|
|
b315e6338a | ||
|
|
c5b1cd027a | ||
|
|
be85ecb2db | ||
|
|
73fb487e58 | ||
|
|
7abb4ae5fe | ||
|
|
df75cd8c6f | ||
|
|
751b7ef79c | ||
|
|
689cf656c0 | ||
|
|
114f671237 | ||
|
|
81aee4ead9 |
7
.github/workflows/auto-merge-docs.yaml
vendored
7
.github/workflows/auto-merge-docs.yaml
vendored
@@ -8,7 +8,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
auto-merge:
|
auto-merge:
|
||||||
if: github.event.pull_request.head.ref == 'docs-update' && (github.event.pull_request.user.login == 'ChrisTitusTech' || github.event.pull_request.user.login == 'github-actions[bot]')
|
if: github.event.pull_request.head.ref == 'docs-update' && github.event.pull_request.user.login == 'github-actions[bot]'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
@@ -18,14 +18,13 @@ jobs:
|
|||||||
uses: actions/checkout@v6
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Auto-approve PR
|
- name: Auto-approve PR
|
||||||
if: github.event.pull_request.user.login == 'github-actions[bot]'
|
|
||||||
run: gh pr review "$PR_NUMBER" --approve
|
run: gh pr review "$PR_NUMBER" --approve
|
||||||
env:
|
env:
|
||||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||||
GH_TOKEN: ${{ secrets.AUTO_MERGE }}
|
GH_TOKEN: ${{ secrets.AUTO_MERGE }}
|
||||||
|
|
||||||
- name: Enable auto-merge
|
- name: Enable auto-merge
|
||||||
run: gh pr merge "$PR_NUMBER" --squash --delete-branch --admin
|
run: gh pr merge "$PR_NUMBER" --squash --auto --delete-branch
|
||||||
env:
|
env:
|
||||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||||
GH_TOKEN: ${{ secrets.AUTO_MERGE }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
15
.github/workflows/docs.yaml
vendored
15
.github/workflows/docs.yaml
vendored
@@ -12,7 +12,7 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: write
|
||||||
pages: write
|
pages: write
|
||||||
id-token: write
|
id-token: write
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
@@ -47,27 +47,22 @@ jobs:
|
|||||||
- name: Setup Pages
|
- name: Setup Pages
|
||||||
id: pages
|
id: pages
|
||||||
uses: actions/configure-pages@v5
|
uses: actions/configure-pages@v5
|
||||||
|
|
||||||
- name: Generate Dev Docs from JSON
|
- name: Generate Dev Docs from JSON
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
Set-Location tools
|
Set-Location tools
|
||||||
./devdocs-generator.ps1
|
./devdocs-generator.ps1
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request 🚀
|
||||||
id: cpr
|
id: cpr
|
||||||
uses: peter-evans/create-pull-request@v8
|
uses: peter-evans/create-pull-request@v6
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.AUTO_MERGE }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
commit-message: 'chore: Update generated dev docs'
|
commit-message: 'Update generated documentation'
|
||||||
title: 'chore: Update Generated Dev Docs'
|
title: 'chore: Update Generated Dev Docs'
|
||||||
body: 'Automated update of generated documentation from JSON sources'
|
body: 'Automated update of generated documentation from JSON sources'
|
||||||
branch: docs-update
|
branch: docs-update
|
||||||
delete-branch: true
|
delete-branch: true
|
||||||
add-paths: |
|
|
||||||
docs/content/dev/
|
|
||||||
config/tweaks.json
|
|
||||||
config/feature.json
|
|
||||||
labels: |
|
labels: |
|
||||||
automated
|
automated
|
||||||
documentation
|
documentation
|
||||||
|
|||||||
37
.github/workflows/pre-release.yaml
vendored
37
.github/workflows/pre-release.yaml
vendored
@@ -3,7 +3,6 @@ name: Pre-Release WinUtil
|
|||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
actions: read
|
actions: read
|
||||||
pull-requests: write
|
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch: # Manual trigger added
|
workflow_dispatch: # Manual trigger added
|
||||||
@@ -23,35 +22,25 @@ jobs:
|
|||||||
Set-Location tools
|
Set-Location tools
|
||||||
./devdocs-generator.ps1
|
./devdocs-generator.ps1
|
||||||
|
|
||||||
|
- name: Commit Updated JSON Links
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
git add config/tweaks.json config/feature.json
|
||||||
|
$changes = git diff --cached --quiet; if ($LASTEXITCODE -ne 0) {
|
||||||
|
git commit -m "Update documentation links in JSON configs"
|
||||||
|
git push
|
||||||
|
} else {
|
||||||
|
Write-Host "No JSON link changes to commit"
|
||||||
|
}
|
||||||
|
|
||||||
- name: Compile project
|
- name: Compile project
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
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 Pull Request for Updated JSON Links
|
|
||||||
id: cpr
|
|
||||||
uses: peter-evans/create-pull-request@v8
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.AUTO_MERGE }}
|
|
||||||
commit-message: 'chore: Update documentation links in JSON configs'
|
|
||||||
title: 'chore: Update Generated Dev Docs'
|
|
||||||
body: 'Automated update of documentation links in JSON configs from pre-release build'
|
|
||||||
branch: docs-update
|
|
||||||
delete-branch: true
|
|
||||||
add-paths: |
|
|
||||||
config/tweaks.json
|
|
||||||
config/feature.json
|
|
||||||
labels: |
|
|
||||||
automated
|
|
||||||
documentation
|
|
||||||
|
|
||||||
- name: Check outputs
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
|
|
||||||
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
|
|
||||||
|
|
||||||
- name: Set Version to Todays Date
|
- name: Set Version to Todays Date
|
||||||
id: extract_version
|
id: extract_version
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
2
.github/workflows/sponsors.yaml
vendored
2
.github/workflows/sponsors.yaml
vendored
@@ -24,7 +24,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Create Pull Request 🚀
|
- name: Create Pull Request 🚀
|
||||||
id: cpr
|
id: cpr
|
||||||
uses: peter-evans/create-pull-request@v8
|
uses: peter-evans/create-pull-request@v6
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
commit-message: 'Update sponsors in README'
|
commit-message: 'Update sponsors in README'
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
],
|
],
|
||||||
"Minimal": [
|
"Minimal": [
|
||||||
"WPFTweaksConsumerFeatures",
|
"WPFTweaksConsumerFeatures",
|
||||||
|
"WPFTweaksDisableExplorerAutoDiscovery",
|
||||||
"WPFTweaksWPBT",
|
"WPFTweaksWPBT",
|
||||||
"WPFTweaksServices",
|
"WPFTweaksServices",
|
||||||
"WPFTweaksTelemetry"
|
"WPFTweaksTelemetry"
|
||||||
|
|||||||
@@ -2615,7 +2615,7 @@
|
|||||||
},
|
},
|
||||||
"WPFTweaksDisableExplorerAutoDiscovery": {
|
"WPFTweaksDisableExplorerAutoDiscovery": {
|
||||||
"Content": "Disable Explorer Automatic Folder Discovery",
|
"Content": "Disable Explorer Automatic Folder Discovery",
|
||||||
"Description": "Windows Explorer automatically tries to guess the type of the folder based on its contents, slowing down the browsing experience. WARNING! Will disable file explorer grouping",
|
"Description": "Windows Explorer automatically tries to guess the type of the folder based on its contents, slowing down the browsing experience.",
|
||||||
"category": "Essential Tweaks",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ title: "Disable Legacy F8 Boot Recovery"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=100}
|
```json {filename="config/feature.json",linenos=inline,linenostart=107}
|
||||||
"WPFFeatureDisableLegacyRecovery": {
|
"WPFFeatureDisableLegacyRecovery": {
|
||||||
"Content": "Disable Legacy F8 Boot Recovery",
|
"Content": "Disable Legacy F8 Boot Recovery",
|
||||||
"Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
|
"Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
|
"Order": "a019_",
|
||||||
"feature": [],
|
"feature": [],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"bcdedit /set bootmenupolicy standard"
|
"bcdedit /set bootmenupolicy standard"
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ title: "Enable Legacy F8 Boot Recovery"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=89}
|
```json {filename="config/feature.json",linenos=inline,linenostart=95}
|
||||||
"WPFFeatureEnableLegacyRecovery": {
|
"WPFFeatureEnableLegacyRecovery": {
|
||||||
"Content": "Enable Legacy F8 Boot Recovery",
|
"Content": "Enable Legacy F8 Boot Recovery",
|
||||||
"Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
|
"Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
|
"Order": "a018_",
|
||||||
"feature": [],
|
"feature": [],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"bcdedit /set bootmenupolicy legacy"
|
"bcdedit /set bootmenupolicy legacy"
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ title: "Enable Daily Registry Backup Task 12.30am"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=72}
|
```json {filename="config/feature.json",linenos=inline,linenostart=77}
|
||||||
"WPFFeatureRegBackup": {
|
"WPFFeatureRegBackup": {
|
||||||
"Content": "Enable Daily Registry Backup Task 12.30am",
|
"Content": "Enable Daily Registry Backup Task 12.30am",
|
||||||
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
|
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
|
"Order": "a017_",
|
||||||
"feature": [],
|
"feature": [],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ title: "Windows Sandbox"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=111}
|
```json {filename="config/feature.json",linenos=inline,linenostart=119}
|
||||||
"WPFFeaturesSandbox": {
|
"WPFFeaturesSandbox": {
|
||||||
"Content": "Windows Sandbox",
|
"Content": "Windows Sandbox",
|
||||||
"Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
|
"Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
|
"Order": "a021_",
|
||||||
"feature": [
|
"feature": [
|
||||||
"Containers-DisposableClientVM"
|
"Containers-DisposableClientVM"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ description: ""
|
|||||||
"Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.",
|
"Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
|
"Order": "a010_",
|
||||||
"feature": [
|
"feature": [
|
||||||
"NetFx4-AdvSrvs",
|
"NetFx4-AdvSrvs",
|
||||||
"NetFx3"
|
"NetFx3"
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ title: "HyperV Virtualization"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=14}
|
```json {filename="config/feature.json",linenos=inline,linenostart=15}
|
||||||
"WPFFeatureshyperv": {
|
"WPFFeatureshyperv": {
|
||||||
"Content": "HyperV Virtualization",
|
"Content": "HyperV Virtualization",
|
||||||
"Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.",
|
"Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
|
"Order": "a011_",
|
||||||
"feature": [
|
"feature": [
|
||||||
"Microsoft-Hyper-V-All"
|
"Microsoft-Hyper-V-All"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ title: "Legacy Media (WMP, DirectPlay)"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=27}
|
```json {filename="config/feature.json",linenos=inline,linenostart=29}
|
||||||
"WPFFeatureslegacymedia": {
|
"WPFFeatureslegacymedia": {
|
||||||
"Content": "Legacy Media (WMP, DirectPlay)",
|
"Content": "Legacy Media (WMP, DirectPlay)",
|
||||||
"Description": "Enables legacy programs from previous versions of windows",
|
"Description": "Enables legacy programs from previous versions of windows",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
|
"Order": "a012_",
|
||||||
"feature": [
|
"feature": [
|
||||||
"WindowsMediaPlayer",
|
"WindowsMediaPlayer",
|
||||||
"MediaPlayback",
|
"MediaPlayback",
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ title: "NFS - Network File System"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=53}
|
```json {filename="config/feature.json",linenos=inline,linenostart=57}
|
||||||
"WPFFeaturenfs": {
|
"WPFFeaturenfs": {
|
||||||
"Content": "NFS - Network File System",
|
"Content": "NFS - Network File System",
|
||||||
"Description": "Network File System (NFS) is a mechanism for storing files on a network.",
|
"Description": "Network File System (NFS) is a mechanism for storing files on a network.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
|
"Order": "a014_",
|
||||||
"feature": [
|
"feature": [
|
||||||
"ServicesForNFS-ClientOnly",
|
"ServicesForNFS-ClientOnly",
|
||||||
"ClientForNFS-Infrastructure",
|
"ClientForNFS-Infrastructure",
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ title: "Windows Subsystem for Linux"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=41}
|
```json {filename="config/feature.json",linenos=inline,linenostart=44}
|
||||||
"WPFFeaturewsl": {
|
"WPFFeaturewsl": {
|
||||||
"Content": "Windows Subsystem for Linux",
|
"Content": "Windows Subsystem for Linux",
|
||||||
"Description": "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.",
|
"Description": "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
|
"Order": "a020_",
|
||||||
"feature": [
|
"feature": [
|
||||||
"VirtualMachinePlatform",
|
"VirtualMachinePlatform",
|
||||||
"Microsoft-Windows-Subsystem-Linux"
|
"Microsoft-Windows-Subsystem-Linux"
|
||||||
|
|||||||
@@ -8,15 +8,13 @@ function Invoke-WPFSystemRepair {
|
|||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
Checks for system corruption using SFC, and DISM
|
Checks for system corruption using SFC, and DISM
|
||||||
Checks for disk failure using Chkdsk
|
|
||||||
|
|
||||||
.DESCRIPTION
|
.DESCRIPTION
|
||||||
1. Chkdsk - Checks for disk errors, which can cause system file corruption and notifies of early disk failure
|
1. SFC - Fixes system file corruption, and fixes DISM if it was corrupted
|
||||||
2. SFC - scans protected system files for corruption and fixes them
|
2. DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
|
||||||
3. DISM - Repair a corrupted Windows operating system image
|
3. Chkdsk - Checks for disk errors, which can cause system file corruption and notifies of early disk failure
|
||||||
#>
|
#>
|
||||||
|
Start-Process cmd.exe -ArgumentList "/c chkdsk.exe /scan /perf" -NoNewWindow -Wait
|
||||||
Start-Process cmd.exe -ArgumentList "/c chkdsk /scan /perf" -NoNewWindow -Wait
|
|
||||||
Start-Process cmd.exe -ArgumentList "/c sfc /scannow" -NoNewWindow -Wait
|
Start-Process cmd.exe -ArgumentList "/c sfc /scannow" -NoNewWindow -Wait
|
||||||
Start-Process cmd.exe -ArgumentList "/c dism /online /cleanup-image /restorehealth" -NoNewWindow -Wait
|
Start-Process cmd.exe -ArgumentList "/c dism /online /cleanup-image /restorehealth" -NoNewWindow -Wait
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,31 @@ title: "Computer Management"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=186}
|
```powershell {filename="functions/public/Invoke-WPFControlPanel.ps1",linenos=inline,linenostart=1}
|
||||||
"WPFPanelComputer": {
|
function Invoke-WPFControlPanel {
|
||||||
"Content": "Computer Management",
|
<#
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
.SYNOPSIS
|
||||||
"Type": "Button",
|
Opens the requested legacy panel
|
||||||
"ButtonWidth": "300",
|
|
||||||
"InvokeScript": [
|
.PARAMETER Panel
|
||||||
"compmgmt.msc"
|
The panel to open
|
||||||
],
|
|
||||||
|
#>
|
||||||
|
param($Panel)
|
||||||
|
|
||||||
|
switch ($Panel) {
|
||||||
|
"WPFPanelControl" {control}
|
||||||
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
|
"WPFPanelRegion" {intl.cpl}
|
||||||
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,14 +3,31 @@ title: "Control Panel"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=175}
|
```powershell {filename="functions/public/Invoke-WPFControlPanel.ps1",linenos=inline,linenostart=1}
|
||||||
"WPFPanelControl": {
|
function Invoke-WPFControlPanel {
|
||||||
"Content": "Control Panel",
|
<#
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
.SYNOPSIS
|
||||||
"Type": "Button",
|
Opens the requested legacy panel
|
||||||
"ButtonWidth": "300",
|
|
||||||
"InvokeScript": [
|
.PARAMETER Panel
|
||||||
"control"
|
The panel to open
|
||||||
],
|
|
||||||
|
#>
|
||||||
|
param($Panel)
|
||||||
|
|
||||||
|
switch ($Panel) {
|
||||||
|
"WPFPanelControl" {control}
|
||||||
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
|
"WPFPanelRegion" {intl.cpl}
|
||||||
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,14 +3,31 @@ title: "Network Connections"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=197}
|
```powershell {filename="functions/public/Invoke-WPFControlPanel.ps1",linenos=inline,linenostart=1}
|
||||||
"WPFPanelNetwork": {
|
function Invoke-WPFControlPanel {
|
||||||
"Content": "Network Connections",
|
<#
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
.SYNOPSIS
|
||||||
"Type": "Button",
|
Opens the requested legacy panel
|
||||||
"ButtonWidth": "300",
|
|
||||||
"InvokeScript": [
|
.PARAMETER Panel
|
||||||
"ncpa.cpl"
|
The panel to open
|
||||||
],
|
|
||||||
|
#>
|
||||||
|
param($Panel)
|
||||||
|
|
||||||
|
switch ($Panel) {
|
||||||
|
"WPFPanelControl" {control}
|
||||||
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
|
"WPFPanelRegion" {intl.cpl}
|
||||||
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,14 +3,31 @@ title: "Power Panel"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=208}
|
```powershell {filename="functions/public/Invoke-WPFControlPanel.ps1",linenos=inline,linenostart=1}
|
||||||
"WPFPanelPower": {
|
function Invoke-WPFControlPanel {
|
||||||
"Content": "Power Panel",
|
<#
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
.SYNOPSIS
|
||||||
"Type": "Button",
|
Opens the requested legacy panel
|
||||||
"ButtonWidth": "300",
|
|
||||||
"InvokeScript": [
|
.PARAMETER Panel
|
||||||
"powercfg.cpl"
|
The panel to open
|
||||||
],
|
|
||||||
|
#>
|
||||||
|
param($Panel)
|
||||||
|
|
||||||
|
switch ($Panel) {
|
||||||
|
"WPFPanelControl" {control}
|
||||||
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
|
"WPFPanelRegion" {intl.cpl}
|
||||||
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,14 +3,31 @@ title: "Printer Panel"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=219}
|
```powershell {filename="functions/public/Invoke-WPFControlPanel.ps1",linenos=inline,linenostart=1}
|
||||||
"WPFPanelPrinter": {
|
function Invoke-WPFControlPanel {
|
||||||
"Content": "Printer Panel",
|
<#
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
.SYNOPSIS
|
||||||
"Type": "Button",
|
Opens the requested legacy panel
|
||||||
"ButtonWidth": "300",
|
|
||||||
"InvokeScript": [
|
.PARAMETER Panel
|
||||||
"Start-Process 'shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}'"
|
The panel to open
|
||||||
],
|
|
||||||
|
#>
|
||||||
|
param($Panel)
|
||||||
|
|
||||||
|
switch ($Panel) {
|
||||||
|
"WPFPanelControl" {control}
|
||||||
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
|
"WPFPanelRegion" {intl.cpl}
|
||||||
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,14 +3,31 @@ title: "Region"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=230}
|
```powershell {filename="functions/public/Invoke-WPFControlPanel.ps1",linenos=inline,linenostart=1}
|
||||||
"WPFPanelRegion": {
|
function Invoke-WPFControlPanel {
|
||||||
"Content": "Region",
|
<#
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
.SYNOPSIS
|
||||||
"Type": "Button",
|
Opens the requested legacy panel
|
||||||
"ButtonWidth": "300",
|
|
||||||
"InvokeScript": [
|
.PARAMETER Panel
|
||||||
"intl.cpl"
|
The panel to open
|
||||||
],
|
|
||||||
|
#>
|
||||||
|
param($Panel)
|
||||||
|
|
||||||
|
switch ($Panel) {
|
||||||
|
"WPFPanelControl" {control}
|
||||||
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
|
"WPFPanelRegion" {intl.cpl}
|
||||||
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,14 +3,31 @@ title: "Windows Restore"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=241}
|
```powershell {filename="functions/public/Invoke-WPFControlPanel.ps1",linenos=inline,linenostart=1}
|
||||||
"WPFPanelRestore": {
|
function Invoke-WPFControlPanel {
|
||||||
"Content": "Windows Restore",
|
<#
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
.SYNOPSIS
|
||||||
"Type": "Button",
|
Opens the requested legacy panel
|
||||||
"ButtonWidth": "300",
|
|
||||||
"InvokeScript": [
|
.PARAMETER Panel
|
||||||
"rstrui.exe"
|
The panel to open
|
||||||
],
|
|
||||||
|
#>
|
||||||
|
param($Panel)
|
||||||
|
|
||||||
|
switch ($Panel) {
|
||||||
|
"WPFPanelControl" {control}
|
||||||
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
|
"WPFPanelRegion" {intl.cpl}
|
||||||
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,14 +3,31 @@ title: "Sound Settings"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=252}
|
```powershell {filename="functions/public/Invoke-WPFControlPanel.ps1",linenos=inline,linenostart=1}
|
||||||
"WPFPanelSound": {
|
function Invoke-WPFControlPanel {
|
||||||
"Content": "Sound Settings",
|
<#
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
.SYNOPSIS
|
||||||
"Type": "Button",
|
Opens the requested legacy panel
|
||||||
"ButtonWidth": "300",
|
|
||||||
"InvokeScript": [
|
.PARAMETER Panel
|
||||||
"mmsys.cpl"
|
The panel to open
|
||||||
],
|
|
||||||
|
#>
|
||||||
|
param($Panel)
|
||||||
|
|
||||||
|
switch ($Panel) {
|
||||||
|
"WPFPanelControl" {control}
|
||||||
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
|
"WPFPanelRegion" {intl.cpl}
|
||||||
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,14 +3,31 @@ title: "System Properties"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=263}
|
```powershell {filename="functions/public/Invoke-WPFControlPanel.ps1",linenos=inline,linenostart=1}
|
||||||
"WPFPanelSystem": {
|
function Invoke-WPFControlPanel {
|
||||||
"Content": "System Properties",
|
<#
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
.SYNOPSIS
|
||||||
"Type": "Button",
|
Opens the requested legacy panel
|
||||||
"ButtonWidth": "300",
|
|
||||||
"InvokeScript": [
|
.PARAMETER Panel
|
||||||
"sysdm.cpl"
|
The panel to open
|
||||||
],
|
|
||||||
|
#>
|
||||||
|
param($Panel)
|
||||||
|
|
||||||
|
switch ($Panel) {
|
||||||
|
"WPFPanelControl" {control}
|
||||||
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
|
"WPFPanelRegion" {intl.cpl}
|
||||||
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,14 +3,31 @@ title: "Time and Date"
|
|||||||
description: ""
|
description: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
```json {filename="config/feature.json",linenos=inline,linenostart=274}
|
```powershell {filename="functions/public/Invoke-WPFControlPanel.ps1",linenos=inline,linenostart=1}
|
||||||
"WPFPanelTimedate": {
|
function Invoke-WPFControlPanel {
|
||||||
"Content": "Time and Date",
|
<#
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
.SYNOPSIS
|
||||||
"Type": "Button",
|
Opens the requested legacy panel
|
||||||
"ButtonWidth": "300",
|
|
||||||
"InvokeScript": [
|
.PARAMETER Panel
|
||||||
"timedate.cpl"
|
The panel to open
|
||||||
],
|
|
||||||
|
#>
|
||||||
|
param($Panel)
|
||||||
|
|
||||||
|
switch ($Panel) {
|
||||||
|
"WPFPanelControl" {control}
|
||||||
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
|
"WPFPanelRegion" {intl.cpl}
|
||||||
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Install CTT PowerShell Profile"
|
|
||||||
description: ""
|
|
||||||
---
|
|
||||||
|
|
||||||
```powershell {filename="functions/private/Invoke-WinUtilInstallPSProfile.ps1",linenos=inline,linenostart=1}
|
|
||||||
function Invoke-WinUtilInstallPSProfile {
|
|
||||||
|
|
||||||
if (Test-Path $Profile) {
|
|
||||||
Rename-Item $Profile -NewName ($Profile + '.bak')
|
|
||||||
}
|
|
||||||
|
|
||||||
Start-Process pwsh -ArgumentList '-Command "irm https://github.com/ChrisTitusTech/powershell-profile/raw/main/setup.ps1 | iex"'
|
|
||||||
}
|
|
||||||
```
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Uninstall CTT PowerShell Profile"
|
|
||||||
description: ""
|
|
||||||
---
|
|
||||||
|
|
||||||
```powershell {filename="functions/private/Invoke-WinUtilUninstallPSProfile.ps1",linenos=inline,linenostart=1}
|
|
||||||
function Invoke-WinUtilUninstallPSProfile {
|
|
||||||
if (Test-Path ($Profile + '.bak')) {
|
|
||||||
Remove-Item $Profile
|
|
||||||
Rename-Item ($Profile + '.bak') -NewName $Profile
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Remove-Item $Profile
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host "Successfully uninstalled CTT Powershell Profile" -ForegroundColor Green
|
|
||||||
}
|
|
||||||
```
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Enable OpenSSH Server"
|
|
||||||
description: ""
|
|
||||||
---
|
|
||||||
|
|
||||||
```powershell {filename="functions/public/Invoke-WPFSSHServer.ps1",linenos=inline,linenostart=1}
|
|
||||||
function Invoke-WPFSSHServer {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Invokes the OpenSSH Server install in a runspace
|
|
||||||
|
|
||||||
#>
|
|
||||||
|
|
||||||
Invoke-WPFRunspace -ScriptBlock {
|
|
||||||
|
|
||||||
Invoke-WinUtilSSHServer
|
|
||||||
|
|
||||||
Write-Host "======================================="
|
|
||||||
Write-Host "-- OpenSSH Server installed! ---"
|
|
||||||
Write-Host "======================================="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
@@ -6,7 +6,7 @@ description: ""
|
|||||||
```json {filename="config/tweaks.json",linenos=inline,linenostart=2616}
|
```json {filename="config/tweaks.json",linenos=inline,linenostart=2616}
|
||||||
"WPFTweaksDisableExplorerAutoDiscovery": {
|
"WPFTweaksDisableExplorerAutoDiscovery": {
|
||||||
"Content": "Disable Explorer Automatic Folder Discovery",
|
"Content": "Disable Explorer Automatic Folder Discovery",
|
||||||
"Description": "Windows Explorer automatically tries to guess the type of the folder based on its contents, slowing down the browsing experience. WARNING! Will disable file explorer grouping",
|
"Description": "Windows Explorer automatically tries to guess the type of the folder based on its contents, slowing down the browsing experience.",
|
||||||
"category": "Essential Tweaks",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
|
|||||||
@@ -967,3 +967,46 @@ description: ""
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
```
|
```
|
||||||
|
#Function
|
||||||
|
```powershell {filename="functions/private/Set-WinUtilService.ps1",linenos=inline,linenostart=1}
|
||||||
|
Function Set-WinUtilService {
|
||||||
|
<#
|
||||||
|
|
||||||
|
.SYNOPSIS
|
||||||
|
Changes the startup type of the given service
|
||||||
|
|
||||||
|
.PARAMETER Name
|
||||||
|
The name of the service to modify
|
||||||
|
|
||||||
|
.PARAMETER StartupType
|
||||||
|
The startup type to set the service to
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
Set-WinUtilService -Name "HomeGroupListener" -StartupType "Manual"
|
||||||
|
|
||||||
|
#>
|
||||||
|
param (
|
||||||
|
$Name,
|
||||||
|
$StartupType
|
||||||
|
)
|
||||||
|
try {
|
||||||
|
Write-Host "Setting Service $Name to $StartupType"
|
||||||
|
|
||||||
|
# Check if the service exists
|
||||||
|
$service = Get-Service -Name $Name -ErrorAction Stop
|
||||||
|
|
||||||
|
# Service exists, proceed with changing properties -- while handling auto delayed start for PWSH 5
|
||||||
|
if (($PSVersionTable.PSVersion.Major -lt 7) -and ($StartupType -eq "AutomaticDelayedStart")) {
|
||||||
|
sc.exe config $Name start=delayed-auto
|
||||||
|
} else {
|
||||||
|
$service | Set-Service -StartupType $StartupType -ErrorAction Stop
|
||||||
|
}
|
||||||
|
} catch [System.ServiceProcess.ServiceNotFoundException] {
|
||||||
|
Write-Warning "Service $Name was not found"
|
||||||
|
} catch {
|
||||||
|
Write-Warning "Unable to set $Name due to unhandled exception"
|
||||||
|
Write-Warning $_.Exception.Message
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ description: ""
|
|||||||
```json {filename="config/tweaks.json",linenos=inline,linenostart=1908}
|
```json {filename="config/tweaks.json",linenos=inline,linenostart=1908}
|
||||||
"WPFTweaksRazerBlock": {
|
"WPFTweaksRazerBlock": {
|
||||||
"Content": "Block Razer Software Installs",
|
"Content": "Block Razer Software Installs",
|
||||||
"Description": "Blocks ALL Razer Software installations. The hardware works fine without any software.",
|
"Description": "Blocks ALL Razer Software installations. The hardware works fine without any software. WARNING: this will also block all Windows third-party driver installations.",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"registry": [
|
"registry": [
|
||||||
|
|||||||
Reference in New Issue
Block a user