Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f4885b6f1c | ||
|
|
ca63a0979e | ||
|
|
1f266c3353 | ||
|
|
c7b2a70312 | ||
|
|
255133af4d | ||
|
|
db74531cd4 | ||
|
|
f36d8bfc78 | ||
|
|
3b31ace726 |
@@ -1,5 +1,14 @@
|
||||
# Changelog
|
||||
|
||||
## 0.7.1 (2020-09-04)
|
||||
|
||||
* fix some browsers (including firefox) downloading the script as a text file | [commit](https://github.com/undergroundwires/privacy.sexy/commit/8c17929151f9c4fa5f48564492bbf400ced95eea)
|
||||
* rename screenshot image file | [commit](https://github.com/undergroundwires/privacy.sexy/commit/b8682a852a14ed6cf49986695d9510b840ac9d3d)
|
||||
* fix new/changed script higlighting not working on production builds | [commit](https://github.com/undergroundwires/privacy.sexy/commit/8c38dd73d8c7b77d8d341c0389f4d7229f9b97fd)
|
||||
* refactor unused imports | [commit](https://github.com/undergroundwires/privacy.sexy/commit/6badfef9daace0c5de3fd33652a82bfe22261b11)
|
||||
|
||||
[compare](https://github.com/undergroundwires/privacy.sexy/compare/0.7.0...0.7.1)
|
||||
|
||||
## 0.7.0 (2020-09-02)
|
||||
|
||||
* [search] better (multilined) message when there are no results | [commit](https://github.com/undergroundwires/privacy.sexy/commit/ec15af01dd020b364c2174fe562fd66227c2320c)
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
## Get started
|
||||
|
||||
- Online version: [https://privacy.sexy](https://privacy.sexy)
|
||||
- or download latest desktop version for [Windows](https://github.com/undergroundwires/privacy.sexy/releases/download/0.7.0/privacy.sexy-Setup-0.7.0.exe), [Linux](https://github.com/undergroundwires/privacy.sexy/releases/download/0.7.0/privacy.sexy-0.7.0.AppImage), [macOS](https://github.com/undergroundwires/privacy.sexy/releases/download/0.7.0/privacy.sexy-0.7.0.dmg)
|
||||
- or download latest desktop version for [Windows](https://github.com/undergroundwires/privacy.sexy/releases/download/0.7.1/privacy.sexy-Setup-0.7.1.exe), [Linux](https://github.com/undergroundwires/privacy.sexy/releases/download/0.7.1/privacy.sexy-0.7.1.AppImage), [macOS](https://github.com/undergroundwires/privacy.sexy/releases/download/0.7.1/privacy.sexy-0.7.1.dmg)
|
||||
- 💡 Come back regularly to apply latest version for stronger privacy and security.
|
||||
|
||||
[](https://privacy.sexy)
|
||||
|
||||
@@ -48,8 +49,8 @@
|
||||
- Development: `npm run serve` to compile & hot-reload for development.
|
||||
- Production: `npm run build` to prepare files for distribution.
|
||||
- Or run using Docker:
|
||||
1. Build: `docker build -t undergroundwires/privacy.sexy:0.7.0 .`
|
||||
2. Run: `docker run -it -p 8080:80 --rm --name privacy.sexy-0.7.0 undergroundwires/privacy.sexy:0.7.0`
|
||||
1. Build: `docker build -t undergroundwires/privacy.sexy:0.7.1 .`
|
||||
2. Run: `docker run -it -p 8080:80 --rm --name privacy.sexy-0.7.1 undergroundwires/privacy.sexy:0.7.1`
|
||||
|
||||
## Architecture
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "privacy.sexy",
|
||||
"version": "0.7.0",
|
||||
"version": "0.7.1",
|
||||
"author": "undergroundwires",
|
||||
"description": "Enforce privacy & security best-practices on Windows, because privacy is sexy 🍑🍆",
|
||||
"private": true,
|
||||
|
||||
@@ -414,7 +414,6 @@ actions:
|
||||
net start DPS
|
||||
)
|
||||
endlocal
|
||||
|
||||
-
|
||||
category: Disable OS data collection
|
||||
children:
|
||||
@@ -796,12 +795,29 @@ actions:
|
||||
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager /v "SubscribedContent-353694Enabled" /d "0" /t REG_DWORD /f
|
||||
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager /v "SubscribedContent-353696Enabled" /d "0" /t REG_DWORD /f
|
||||
-
|
||||
name: Disable biometrics
|
||||
recommend: true
|
||||
code: |-
|
||||
reg add "HKLM\SOFTWARE\Policies\Microsoft\Biometrics" /v "Enabled" /t REG_DWORD /d 0 /f
|
||||
reg add "HKLM\SOFTWARE\Policies\Microsoft\Biometrics\Credential Provider" /v "Enabled" /t "REG_DWORD" /d "0" /f
|
||||
reg add "HKLM\SYSTEM\CurrentControlSet\Services\WbioSrvc" /v "Start" /t REG_DWORD /d 4 /f
|
||||
category: Disable biometrics (breaks fingerprinting/facial login)
|
||||
children:
|
||||
-
|
||||
name: Do not allow the use of biometrics
|
||||
docs: https://getadmx.com/?Category=Windows_10_2016&Policy=Microsoft.Policies.Biometrics::Biometrics_EnableBio
|
||||
code: reg add "HKLM\SOFTWARE\Policies\Microsoft\Biometrics" /v "Enabled" /t REG_DWORD /d "0" /f
|
||||
revertCode: reg add "HKLM\SOFTWARE\Policies\Microsoft\Biometrics" /v "Enabled" /t REG_DWORD /d "1" /f
|
||||
-
|
||||
name: Do not allow users to log on using biometrics
|
||||
docs: https://getadmx.com/?Category=Windows_10_2016&Policy=Microsoft.Policies.Biometrics::Biometrics_EnableCredProv
|
||||
code: reg add "HKLM\SOFTWARE\Policies\Microsoft\Biometrics\Credential Provider" /v "Enabled" /t "REG_DWORD" /d "0" /f
|
||||
revertCode: reg add "HKLM\SOFTWARE\Policies\Microsoft\Biometrics\Credential Provider" /v "Enabled" /t "REG_DWORD" /d "1" /f
|
||||
-
|
||||
name: Do not start Windows Biometric Service
|
||||
docs:
|
||||
- http://batcmd.com/windows/10/services/wbiosrvc/
|
||||
- http://revertservice.com/10/wbiosrvc/
|
||||
code: |-
|
||||
reg add "HKLM\SYSTEM\CurrentControlSet\Services\WbioSrvc" /v "Start" /t REG_DWORD /d 4 /f
|
||||
sc stop "WbioSrvc" & sc config "WbioSrvc" start=disabled
|
||||
revertCode: |-
|
||||
reg add "HKLM\SYSTEM\CurrentControlSet\Services\WbioSrvc" /v "Start" /t REG_DWORD /d 2 /f
|
||||
sc config "WbioSrvc" start=demand
|
||||
-
|
||||
name: Disable Wi-Fi sense
|
||||
recommend: true
|
||||
@@ -1948,17 +1964,12 @@ actions:
|
||||
recommend: true
|
||||
code: sc stop "XboxNetApiSvc" & sc config "XboxNetApiSvc" start=disabled
|
||||
revetCode: sc config "XboxNetApiSvc" start=demand
|
||||
-
|
||||
name: Windows Biometric Service
|
||||
recommend: true
|
||||
docs: https://en.wikipedia.org/wiki/Windows_Push_Notification_Service#Privacy_Issue
|
||||
code: sc stop "WbioSrvc" & sc config "WbioSrvc" start=disabled
|
||||
-
|
||||
name: Volume Shadow Copy Service
|
||||
recommend: true
|
||||
docs: https://docs.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service
|
||||
code: sc stop "VSS" & sc config "VSS" start=disabled
|
||||
revertCode: sc config vss start=auto
|
||||
revertCode: sc config "vss" start=auto
|
||||
-
|
||||
category: Remove bloatware
|
||||
children:
|
||||
@@ -1971,7 +1982,8 @@ actions:
|
||||
children:
|
||||
-
|
||||
name: Microsoft 3D Builder
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.3DBuilder | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.3DBuilder" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.3DBuilder").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
docs: https://www.microsoft.com/en-us/p/3d-builder/9wzdncrfj3t6
|
||||
-
|
||||
category: MSN
|
||||
@@ -1980,389 +1992,494 @@ actions:
|
||||
name: MSN Weather app
|
||||
recommend: true
|
||||
docs: https://www.microsoft.com/en-us/p/msn-weather/9wzdncrfj3q2
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.BingWeather | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.BingWeather" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.BingWeather").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: MSN Sports app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.BingSports | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.BingSports" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.BingSports").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: MSN News app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.BingNews | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.BingNews" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.BingNews").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: MSN Money app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.BingFinance | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.BingFinance" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.BingFinance").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: App Installer app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.DesktopAppInstaller | Remove-AppxPackage"
|
||||
docs: https://www.microsoft.com/en-us/p/app-installer/9nblggh4nns1?activetab=pivot:overviewtab
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.DesktopAppInstaller" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.DesktopAppInstaller").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Get Help app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.GetHelp | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.GetHelp" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.GetHelp").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft Tips app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Getstarted | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Getstarted" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Getstarted").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Extensions
|
||||
children:
|
||||
-
|
||||
name: HEIF Image Extensions app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.HEIFImageExtension | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.HEIFImageExtension" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.HEIFImageExtension").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: VP9 Video Extensions app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.VP9VideoExtensions | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.VP9VideoExtensions" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.VP9VideoExtensions").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Web Media Extensions app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.WebMediaExtensions | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.WebMediaExtensions" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.WebMediaExtensions").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Webp Image Extension app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.WebpImageExtension | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.WebpImageExtension" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.WebpImageExtension").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft Messaging app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Messaging | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Messaging" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Messaging").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Mixed Reality
|
||||
children:
|
||||
-
|
||||
name: Mixed Reality Portal app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.MixedReality.Portal | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.MixedReality.Portal" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.MixedReality.Portal").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Mixed Reality Viewer app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Microsoft3DViewer | Remove-AppxPackage"
|
||||
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Microsoft3DViewer" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Microsoft3DViewer").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Microsoft Office
|
||||
children:
|
||||
-
|
||||
name: My Office app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.MicrosoftOfficeHub | Remove-AppxPackage"
|
||||
docs: https://www.microsoft.com/en-us/p/my-office-app/9n8vd0f315mh
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.MicrosoftOfficeHub" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.MicrosoftOfficeHub").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: OneNote app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Office.OneNote | Remove-AppxPackage"
|
||||
docs: https://www.microsoft.com/en-us/p/onenote-for-windows-10/9wzdncrfhvjl
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Office.OneNote" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Office.OneNote").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Sway app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Office.Sway | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Office.Sway" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Office.Sway").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Feedback Hub app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.WindowsFeedbackHub | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.WindowsFeedbackHub" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.WindowsFeedbackHub").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Windows Alarms and Clock app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.WindowsAlarms | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.WindowsAlarms" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.WindowsAlarms").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Windows Camera app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.WindowsCamera | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.WindowsCamera" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.WindowsCamera").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Paint 3D app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.MSPaint | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.MSPaint" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.MSPaint").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Windows Maps app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.WindowsMaps | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.WindowsMaps" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.WindowsMaps").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Minecraft app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.MinecraftUWP | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.MinecraftUWP" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.MinecraftUWP").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft Store app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.WindowsStore | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.WindowsStore" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.WindowsStore").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft People app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.People | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.People" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.People").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft Pay app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Wallet | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Wallet" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Wallet").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Store Purchase app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.StorePurchaseApp | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.StorePurchaseApp" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.StorePurchaseApp").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Snip and Sketch app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.ScreenSketch | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.ScreenSketch" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.ScreenSketch").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Print3D app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Print3D | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Print3D" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Print3D").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Paid Wi-Fi and Cellular app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.OneConnect | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.OneConnect" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.OneConnect").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft Solitaire Collection app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.MicrosoftSolitaireCollection | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.MicrosoftSolitaireCollection" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.MicrosoftSolitaireCollection").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft Sticky Notes app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.MicrosoftStickyNotes | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.MicrosoftStickyNotes" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.MicrosoftStickyNotes").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Xbox
|
||||
children:
|
||||
-
|
||||
name: Xbox app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.XboxApp | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.XboxApp" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.XboxApp").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Xbox TCUI app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Xbox.TCUI | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Xbox.TCUI" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Xbox.TCUI").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Xbox Game Bar app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.XboxGameOverlay | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.XboxGameOverlay" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.XboxGameOverlay").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Xbox Gaming Overlay app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.XboxGamingOverlay | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.XboxGamingOverlay" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.XboxGamingOverlay").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Xbox Identity Provider app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.XboxIdentityProvider | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.XboxIdentityProvider" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.XboxIdentityProvider").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Xbox Speech To Text Overlay app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.XboxSpeechToTextOverlay | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.XboxSpeechToTextOverlay" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.XboxSpeechToTextOverlay").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Mail and Calendar app
|
||||
code: PowerShell -Command "Get-AppxPackage microsoft.windowscommunicationsapps | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "microsoft.windowscommunicationsapps" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "microsoft.windowscommunicationsapps").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Zune
|
||||
children:
|
||||
-
|
||||
name: Zune Music app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.ZuneMusic | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.ZuneMusic" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.ZuneMusic").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Zune Video app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.ZuneVideo | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.ZuneVideo" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.ZuneVideo").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Windows Calculator app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.WindowsCalculator | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.WindowsCalculator" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.WindowsCalculator").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft Photos app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Windows.Photos | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.Photos" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.Photos").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Skype app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.SkypeApp | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.SkypeApp" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.SkypeApp").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Windows Voice Recorder app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.WindowsSoundRecorder | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.WindowsSoundRecorder" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.WindowsSoundRecorder").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Phone
|
||||
children:
|
||||
-
|
||||
name: Windows Phone app
|
||||
code: |-
|
||||
PowerShell -Command "Get-AppxPackage Microsoft.WindowsPhone | Remove-AppxPackage"
|
||||
PowerShell -Command "Get-AppxPackage Microsoft.Windows.Phone | Remove-AppxPackage"
|
||||
PowerShell -Command "Get-AppxPackage "Microsoft.WindowsPhone" | Remove-AppxPackage"
|
||||
PowerShell -Command "Get-AppxPackage "Microsoft.Windows.Phone" | Remove-AppxPackage"
|
||||
revertCode: |-
|
||||
PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.WindowsPhone").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.Phone").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Comms Phone app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.CommsPhone | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.CommsPhone" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.CommsPhone").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Your Phone app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.YourPhone | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.YourPhone" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.YourPhone").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Installed Windows apps
|
||||
children:
|
||||
-
|
||||
name: Microsoft Advertising app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Advertising.Xaml | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Advertising.Xaml" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Advertising.Xaml").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Remote Desktop app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.RemoteDesktop | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.RemoteDesktop" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.RemoteDesktop").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Network Speed Test app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.NetworkSpeedTest | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.NetworkSpeedTest" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.NetworkSpeedTest").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Third party
|
||||
children:
|
||||
-
|
||||
name: Shazam app
|
||||
code: PowerShell -Command "Get-AppxPackage ShazamEntertainmentLtd.Shazam | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "ShazamEntertainmentLtd.Shazam" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "ShazamEntertainmentLtd.Shazam").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Candy Crush Saga app
|
||||
code: |-
|
||||
PowerShell -Command "Get-AppxPackage king.com.CandyCrushSaga | Remove-AppxPackage"
|
||||
PowerShell -Command "Get-AppxPackage king.com.CandyCrushSodaSaga | Remove-AppxPackage"
|
||||
PowerShell -Command "Get-AppxPackage "king.com.CandyCrushSaga" | Remove-AppxPackage"
|
||||
PowerShell -Command "Get-AppxPackage "king.com.CandyCrushSodaSaga" | Remove-AppxPackage"
|
||||
revertCode: |-
|
||||
PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "king.com.CandyCrushSaga").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "king.com.CandyCrushSodaSaga").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Flipboard app
|
||||
code: PowerShell -Command "Get-AppxPackage Flipboard.Flipboard | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Flipboard.Flipboard" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Flipboard.Flipboard").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Twitter app
|
||||
code: PowerShell -Command "Get-AppxPackage 9E2F88E3.Twitter | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "9E2F88E3.Twitter" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "9E2F88E3.Twitter").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: iHeartRadio app
|
||||
code: PowerShell -Command "Get-AppxPackage ClearChannelRadioDigital.iHeartRadio | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "ClearChannelRadioDigital.iHeartRadio" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "ClearChannelRadioDigital.iHeartRadio").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Duolingo app
|
||||
code: PowerShell -Command "Get-AppxPackage D5EA27B7.Duolingo-LearnLanguagesforFree | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "D5EA27B7.Duolingo-LearnLanguagesforFree" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "D5EA27B7.Duolingo-LearnLanguagesforFree").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Photoshop Express app
|
||||
code: PowerShell -Command "Get-AppxPackage AdobeSystemIncorporated.AdobePhotoshop | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "AdobeSystemIncorporated.AdobePhotoshop" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "AdobeSystemIncorporated.AdobePhotoshop").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Pandora app
|
||||
code: PowerShell -Command "Get-AppxPackage PandoraMediaInc.29680B314EFC2 | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "PandoraMediaInc.29680B314EFC2" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "PandoraMediaInc.29680B314EFC2").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Eclipse Manager app
|
||||
code: PowerShell -Command "Get-AppxPackage 46928bounde.EclipseManager | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "46928bounde.EclipseManager" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "46928bounde.EclipseManager").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Code Writer app
|
||||
code: PowerShell -Command "Get-AppxPackage ActiproSoftwareLLC.562882FEEB491 | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "ActiproSoftwareLLC.562882FEEB491" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "ActiproSoftwareLLC.562882FEEB491").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: System apps
|
||||
children:
|
||||
-
|
||||
name: File Picker app
|
||||
code: PowerShell -Command "Get-AppxPackage 1527c705-839a-4832-9118-54d4Bd6a0c89 | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "1527c705-839a-4832-9118-54d4Bd6a0c89" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "1527c705-839a-4832-9118-54d4Bd6a0c89").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: File Explorer app
|
||||
code: PowerShell -Command "Get-AppxPackage c5e2524a-ea46-4f67-841f-6a9465d9d515 | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "c5e2524a-ea46-4f67-841f-6a9465d9d515" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "c5e2524a-ea46-4f67-841f-6a9465d9d515").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: App Resolver UX app
|
||||
code: PowerShell -Command "Get-AppxPackage E2A4F912-2574-4A75-9BB0-0D023378592B | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "E2A4F912-2574-4A75-9BB0-0D023378592B" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "E2A4F912-2574-4A75-9BB0-0D023378592B").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Add Suggested Folders To Library app
|
||||
recommend: true
|
||||
code: |-
|
||||
PowerShell -Command "Get-AppxPackage F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE | Remove-AppxPackage"
|
||||
PowerShell -Command "Get-AppxPackage InputApp | Remove-AppxPackage"
|
||||
PowerShell -Command "Get-AppxPackage "F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE" | Remove-AppxPackage"
|
||||
PowerShell -Command "Get-AppxPackage "InputApp" | Remove-AppxPackage"
|
||||
revertCode: |-
|
||||
PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "InputApp").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft.AAD.Broker.Plugin app
|
||||
name: Microsoft AAD Broker Plugin app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.AAD.Broker.Plugin | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.AAD.Broker.Plugin" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.AAD.Broker.Plugin").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft.AccountsControl app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.AccountsControl | Remove-AppxPackage"
|
||||
name: Microsoft Accounts Control app
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.AccountsControl" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.AccountsControl").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft.AsyncTextService app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.AsyncTextService | Remove-AppxPackage"
|
||||
name: Microsoft Async Text Service app
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.AsyncTextService" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.AsyncTextService").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Hello setup UI
|
||||
children:
|
||||
-
|
||||
name: Bio enrollment app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.BioEnrollment | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.BioEnrollment" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.BioEnrollment").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Cred Dialog Host app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.CredDialogHost | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.CredDialogHost" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.CredDialogHost").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: EC App
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.ECApp | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.ECApp" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.ECApp").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Lock App
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.LockApp | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.LockApp" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.LockApp").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Microsoft Edge
|
||||
children:
|
||||
-
|
||||
name: Microsoft Edge app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.MicrosoftEdge | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.MicrosoftEdge" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.MicrosoftEdge").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft Edge Dev Tools Client app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.MicrosoftEdgeDevToolsClient | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.MicrosoftEdgeDevToolsClient" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.MicrosoftEdgeDevToolsClient").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Microsoft PPI Projection app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.PPIProjection | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.PPIProjection" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.PPIProjection").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Win32 Web View Host app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Win32WebViewHost | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Win32WebViewHost" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Win32WebViewHost").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: ChxApp app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Windows.Apprep.ChxApp | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.Apprep.ChxApp" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.Apprep.ChxApp").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Assigned Access Lock App app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Windows.AssignedAccessLockApp | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.AssignedAccessLockApp" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.AssignedAccessLockApp").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Capture Picker app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Windows.CapturePicker | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.CapturePicker" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.CapturePicker").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Cloud Experience Host app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Windows.CloudExperienceHost | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.CloudExperienceHost" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.CloudExperienceHost").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Content Delivery Manager app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Windows.ContentDeliveryManager | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.ContentDeliveryManager" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.ContentDeliveryManager").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Cortana
|
||||
children:
|
||||
-
|
||||
name: Cortana app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Windows.Cortana | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.Cortana" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.Cortana").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Holographic First Run app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Windows.Holographic.FirstRun | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.Holographic.FirstRun" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.Holographic.FirstRun").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: OOBE Network Captive Port app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Windows.OOBENetworkCaptivePort | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.OOBENetworkCaptivePort" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.OOBENetworkCaptivePort").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: OOBE Network Connection Flow app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Windows.OOBENetworkConnectionFlow | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.OOBENetworkConnectionFlow" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.OOBENetworkConnectionFlow").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Parental Controls app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Windows.ParentalControls | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.ParentalControls" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.ParentalControls").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: People Hub
|
||||
children:
|
||||
-
|
||||
name: People Experience Host app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Microsoft.Windows.PeopleExperienceHost | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.PeopleExperienceHost" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.PeopleExperienceHost").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Pinning Confirmation Dialog app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Microsoft.Windows.PinningConfirmationDialog | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.PinningConfirmationDialog" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.PinningConfirmationDialog").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Sec Health UI app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Microsoft.Windows.SecHealthUI | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.SecHealthUI" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.SecHealthUI").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Secondary Tile Experience app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Microsoft.Windows.SecondaryTileExperience | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.SecondaryTileExperience" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.SecondaryTileExperience").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Secure Assessment Browser app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Microsoft.Windows.SecureAssessmentBrowser | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.SecureAssessmentBrowser" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.SecureAssessmentBrowser").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Start app
|
||||
code: PowerShell -Command "Microsoft.Windows.ShellExperienceHost | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Windows.ShellExperienceHost" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Windows.ShellExperienceHost").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Windows Feedback
|
||||
children:
|
||||
-
|
||||
name: Windows Feedback app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Microsoft.WindowsFeedback | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.WindowsFeedback" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.WindowsFeedback").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Xbox Game Callable UI app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Microsoft.XboxGameCallableUI | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.XboxGameCallableUI" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.XboxGameCallableUI").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: CBS Preview app
|
||||
recommend: true
|
||||
code: PowerShell -Command "Windows.CBSPreview | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Windows.CBSPreview" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Windows.CBSPreview").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Contact Support app
|
||||
code: PowerShell -Command "Windows.ContactSupport | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Windows.ContactSupport" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Windows.ContactSupport").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Settings app
|
||||
code: PowerShell -Command "Windows.immersivecontrolpanel | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Windows.immersivecontrolpanel" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Windows.immersivecontrolpanel").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Windows Print 3D app
|
||||
code: PowerShell -Command "Windows.Print3D | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Windows.Print3D" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Windows.Print3D").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: Print UI app
|
||||
code: PowerShell -Command "Windows.PrintDialog | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Windows.PrintDialog" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Windows.PrintDialog").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
name: App Connector app
|
||||
code: PowerShell -Command "Get-AppxPackage Microsoft.Appconnector | Remove-AppxPackage"
|
||||
code: PowerShell -Command "Get-AppxPackage "Microsoft.Appconnector" | Remove-AppxPackage"
|
||||
revertCode: PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage "Microsoft.Appconnector").InstallLocation + '\AppxManifest.xml'; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"
|
||||
-
|
||||
category: Remove OneDrive
|
||||
children:
|
||||
@@ -2452,17 +2569,23 @@ actions:
|
||||
-
|
||||
name: Direct Play feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"DirectPlay" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"DirectPlay" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Internet Explorer feature
|
||||
code:
|
||||
code: |-
|
||||
dism /Online /Disable-Feature /FeatureName:"Internet-Explorer-Optional-x64" /NoRestart
|
||||
dism /Online /Disable-Feature /FeatureName:"Internet-Explorer-Optional-x84" /NoRestart
|
||||
dism /Online /Disable-Feature /FeatureName:"Internet-Explorer-Optional-amd64" /NoRestart
|
||||
revertCode: |-
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Internet-Explorer-Optional-x64" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Internet-Explorer-Optional-x84" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Internet-Explorer-Optional-amd64" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Legacy Components feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"LegacyComponents" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"LegacyComponents" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
category: Server features for developers & administrators
|
||||
@@ -2473,37 +2596,45 @@ actions:
|
||||
-
|
||||
name: Hyper-V feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"Microsoft-Hyper-V-All" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Microsoft-Hyper-V-All" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Hyper-V GUI Management Tools feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"Microsoft-Hyper-V-Management-Clients" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Microsoft-Hyper-V-Management-Clients" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Hyper-V Management Tools feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"Microsoft-Hyper-V-Tools-All" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Microsoft-Hyper-V-Tools-All" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Hyper-V Module for Windows PowerShell feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"Microsoft-Hyper-V-Management-PowerShell" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Microsoft-Hyper-V-Management-PowerShell" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Telnet Client feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"TelnetClient" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"TelnetClient" /NoRestart
|
||||
docs: https://social.technet.microsoft.com/wiki/contents/articles/38433.windows-10-enabling-telnet-client.aspx
|
||||
recommend: false
|
||||
-
|
||||
name: Net.TCP Port Sharing feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"WCF-TCP-PortSharing45" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"WCF-TCP-PortSharing45" /NoRestart
|
||||
recommend: false
|
||||
docs: https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/net-tcp-port-sharing
|
||||
-
|
||||
name: SMB Direct feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"SmbDirect" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"SmbDirect" /NoRestart
|
||||
recommend: false
|
||||
docs: https://docs.microsoft.com/en-us/windows-server/storage/file-server/smb-direct
|
||||
-
|
||||
name: TFTP Client feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"TFTP" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"TFTP" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
category: Printing features
|
||||
@@ -2512,28 +2643,34 @@ actions:
|
||||
category: Printer networking
|
||||
children:
|
||||
-
|
||||
name: Internet Printing Client v
|
||||
name: Internet Printing Client
|
||||
code: dism /Online /Disable-Feature /FeatureName:"Printing-Foundation-InternetPrinting-Client" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Printing-Foundation-InternetPrinting-Client" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: LPD Print Service v
|
||||
name: LPD Print Service
|
||||
code: dism /Online /Disable-Feature /FeatureName:"Printing-Foundation-LPDPrintService" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Printing-Foundation-LPDPrintService" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: LPR Port Monitor feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"Printing-Foundation-LPRPortMonitor" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Printing-Foundation-LPRPortMonitor" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Microsoft Print to PDF feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"Printing-PrintToPDFServices-Features" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Printing-PrintToPDFServices-Features" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Print and Document Services feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"Printing-Foundation-Features" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Printing-Foundation-Features" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Work Folders Client feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"WorkFolders-Client" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"WorkFolders-Client" /NoRestart
|
||||
recommend: false
|
||||
docs: https://docs.microsoft.com/en-us/windows-server/storage/work-folders/work-folders-overview
|
||||
-
|
||||
@@ -2542,30 +2679,37 @@ actions:
|
||||
-
|
||||
name: XPS Services feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"Printing-XPSServices-Features" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Printing-XPSServices-Features" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: XPS Viewer feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"Xps-Foundation-Xps-Viewer" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"Xps-Foundation-Xps-Viewer" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Media Features feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"MediaPlayback" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"MediaPlayback" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Scan Management feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"ScanManagementConsole" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"ScanManagementConsole" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Windows Fax and Scan feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"FaxServicesClientPackage" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"FaxServicesClientPackage" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Windows Media Player feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"WindowsMediaPlayer" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"WindowsMediaPlayer" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
name: Windows Search feature
|
||||
code: dism /Online /Disable-Feature /FeatureName:"SearchEngine-Client-Package" /NoRestart
|
||||
revertCode: dism /Online /Enable-Feature /FeatureName:"SearchEngine-Client-Package" /NoRestart
|
||||
recommend: false
|
||||
-
|
||||
category: Disable capabilities & features on demand
|
||||
@@ -2587,8 +2731,8 @@ actions:
|
||||
code: Powershell -Command "Get-WindowsCapability -Online -Name "MathRecognizer*" | Remove-WindowsCapability -Online"
|
||||
revertCode: Powershell -Command "Get-WindowsCapability -Online -Name "MathRecognizer*" | Add-WindowsCapability -Online"
|
||||
-
|
||||
name: OneSync capability
|
||||
recommend: true
|
||||
name: OneSync capability (breaks Mail, People, and Calendar)
|
||||
docs: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/features-on-demand-non-language-fod#onesync
|
||||
code: Powershell -Command "Get-WindowsCapability -Online -Name "OneCoreUAP.OneSync*" | Remove-WindowsCapability -Online"
|
||||
revertCode: Powershell -Command "Get-WindowsCapability -Online -Name "OneCoreUAP.OneSync*" | Add-WindowsCapability -Online"
|
||||
-
|
||||
|
||||
@@ -20,6 +20,7 @@ declare module 'liquor-tree' {
|
||||
// https://github.com/amsik/liquor-tree/blob/master/src/lib/Node.js
|
||||
export interface ILiquorTreeNodeState {
|
||||
checked: boolean;
|
||||
indeterminate: boolean;
|
||||
}
|
||||
|
||||
export interface ILiquorTreeNode {
|
||||
|
||||
@@ -5,9 +5,10 @@ export class LiquorTreeOptions implements ILiquorTreeOptions {
|
||||
public readonly checkbox = true;
|
||||
public readonly checkOnSelect = true;
|
||||
/* For checkbox mode only. Children will have the same checked state as their parent.
|
||||
⚠️ Setting this false, does not update indeterminate state of nodes.
|
||||
This is false as it's handled manually to be able to batch select for performance + highlighting */
|
||||
public readonly autoCheckChildren = false;
|
||||
public readonly parentSelect = false;
|
||||
public readonly parentSelect = true;
|
||||
public readonly keyboardNavigation = true;
|
||||
public readonly filter = { // Wrap this in an arrow function as setting filter directly does not work JS APIs
|
||||
emptyText: this.liquorTreeFilter.emptyText,
|
||||
|
||||
@@ -1,14 +1,37 @@
|
||||
import { ILiquorTreeNode } from 'liquor-tree';
|
||||
import { ILiquorTreeNode, ILiquorTreeNodeState } from 'liquor-tree';
|
||||
import { NodeType } from './../../Node/INode';
|
||||
|
||||
export function getNewCheckedState(
|
||||
oldNode: ILiquorTreeNode,
|
||||
export function getNewState(
|
||||
node: ILiquorTreeNode,
|
||||
selectedNodeIds: ReadonlyArray<string>): ILiquorTreeNodeState {
|
||||
const checked = getNewCheckedState(node, selectedNodeIds);
|
||||
const indeterminate = !checked && getNewIndeterminateState(node, selectedNodeIds);
|
||||
return {
|
||||
checked, indeterminate,
|
||||
};
|
||||
}
|
||||
|
||||
function getNewIndeterminateState(
|
||||
node: ILiquorTreeNode,
|
||||
selectedNodeIds: ReadonlyArray<string>): boolean {
|
||||
switch (oldNode.data.type) {
|
||||
switch (node.data.type) {
|
||||
case NodeType.Script:
|
||||
return selectedNodeIds.some((id) => id === oldNode.id);
|
||||
return false;
|
||||
case NodeType.Category:
|
||||
return parseAllSubScriptIds(oldNode).every((id) => selectedNodeIds.includes(id));
|
||||
return parseAllSubScriptIds(node).some((id) => selectedNodeIds.includes(id));
|
||||
default:
|
||||
throw new Error('Unknown node type');
|
||||
}
|
||||
}
|
||||
|
||||
function getNewCheckedState(
|
||||
node: ILiquorTreeNode,
|
||||
selectedNodeIds: ReadonlyArray<string>): boolean {
|
||||
switch (node.data.type) {
|
||||
case NodeType.Script:
|
||||
return selectedNodeIds.some((id) => id === node.id);
|
||||
case NodeType.Category:
|
||||
return parseAllSubScriptIds(node).every((id) => selectedNodeIds.includes(id));
|
||||
default:
|
||||
throw new Error('Unknown node type');
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ export function toNewLiquorTreeNode(node: INode): ILiquorTreeNewNode {
|
||||
text: node.text,
|
||||
state: {
|
||||
checked: false,
|
||||
indeterminate: false,
|
||||
},
|
||||
children: convertChildren(node.children, toNewLiquorTreeNode),
|
||||
data: {
|
||||
|
||||
@@ -18,14 +18,15 @@
|
||||
|
||||
<script lang="ts">
|
||||
import { Component, Prop, Vue, Watch } from 'vue-property-decorator';
|
||||
import LiquorTree, { ILiquorTreeNewNode, ILiquorTreeExistingNode, ILiquorTree } from 'liquor-tree';
|
||||
import LiquorTree from 'liquor-tree';
|
||||
import Node from './Node/Node.vue';
|
||||
import { INode } from './Node/INode';
|
||||
import { convertExistingToNode, toNewLiquorTreeNode } from './LiquorTree/NodeWrapper/NodeTranslator';
|
||||
import { INodeSelectedEvent } from './/INodeSelectedEvent';
|
||||
import { getNewCheckedState } from './LiquorTree/NodeWrapper/NodeStateUpdater';
|
||||
import { getNewState } from './LiquorTree/NodeWrapper/NodeStateUpdater';
|
||||
import { LiquorTreeOptions } from './LiquorTree/LiquorTreeOptions';
|
||||
import { FilterPredicate, NodePredicateFilter } from './LiquorTree/NodeWrapper/NodePredicateFilter';
|
||||
import { ILiquorTreeNewNode, ILiquorTreeExistingNode, ILiquorTree, ILiquorTreeNode, ILiquorTreeNodeState } from 'liquor-tree';
|
||||
|
||||
/** Wrapper for Liquor Tree, reveals only abstracted INode for communication */
|
||||
@Component({
|
||||
@@ -49,7 +50,7 @@
|
||||
const initialNodes = this.initialNodes.map((node) => toNewLiquorTreeNode(node));
|
||||
if (this.selectedNodeIds) {
|
||||
recurseDown(initialNodes,
|
||||
(node) => node.state.checked = getNewCheckedState(node, this.selectedNodeIds));
|
||||
(node) => node.state = updateState(node.state, node, this.selectedNodeIds));
|
||||
}
|
||||
this.initialLiquourTreeNodes = initialNodes;
|
||||
} else {
|
||||
@@ -82,11 +83,11 @@
|
||||
@Watch('selectedNodeIds')
|
||||
public setSelectedStatusAsync(selectedNodeIds: ReadonlyArray<string>) {
|
||||
if (!selectedNodeIds) {
|
||||
throw new Error('Selected nodes are undefined');
|
||||
throw new Error('SelectedrecurseDown nodes are undefined');
|
||||
}
|
||||
this.getLiquorTreeApi().recurseDown((node) => {
|
||||
node.states.checked = getNewCheckedState(node, selectedNodeIds);
|
||||
});
|
||||
this.getLiquorTreeApi().recurseDown(
|
||||
(node) => node.states = updateState(node.states, node, selectedNodeIds),
|
||||
);
|
||||
}
|
||||
|
||||
private getLiquorTreeApi(): ILiquorTree {
|
||||
@@ -97,6 +98,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
function updateState(
|
||||
old: ILiquorTreeNodeState,
|
||||
node: ILiquorTreeNode,
|
||||
selectedNodeIds: ReadonlyArray<string>): ILiquorTreeNodeState {
|
||||
return {...old, ...getNewState(node, selectedNodeIds)};
|
||||
}
|
||||
|
||||
function recurseDown(
|
||||
nodes: ReadonlyArray<ILiquorTreeNewNode>,
|
||||
handler: (node: ILiquorTreeNewNode) => void) {
|
||||
|
||||
@@ -18,7 +18,8 @@ const NothingChosenCode =
|
||||
.appendCommentLine('-- 🤔 How to use')
|
||||
.appendCommentLine(' 📙 Start by exploring different categories and choosing different tweaks.')
|
||||
.appendCommentLine(' 📙 You can select "Recommended" on the top to select "safer" tweaks. Always double check!')
|
||||
.appendCommentLine(' 📙 After you choose any tweak, you can download & copy to execute your script.')
|
||||
.appendCommentLine(' 📙 After you choose any tweak, you can download or copy to execute your script.')
|
||||
.appendCommentLine(' 📙 Come back regularly to apply latest version for stronger privacy and security.')
|
||||
.appendLine()
|
||||
.appendCommentLine('-- 🧐 Why privacy.sexy')
|
||||
.appendCommentLine(' ✔️ Rich tweak pool to harden security & privacy of the OS and other softwares on it.')
|
||||
|
||||
@@ -2,42 +2,40 @@
|
||||
@import "@/presentation/styles/colors.scss";
|
||||
|
||||
.tree {
|
||||
background-color: $slate;
|
||||
}
|
||||
|
||||
.tree-node > .tree-content > .tree-anchor > span {
|
||||
color: $white !important;
|
||||
text-transform: uppercase;
|
||||
color: $light-gray;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.tree-node {
|
||||
white-space: normal !important;
|
||||
}
|
||||
|
||||
.tree-arrow.has-child {
|
||||
&.rtl:after, &:after {
|
||||
border-color: $white !important;
|
||||
background: $slate;
|
||||
&-node {
|
||||
white-space: normal !important;
|
||||
> .tree-content {
|
||||
> .tree-anchor > span {
|
||||
color: $white;
|
||||
text-transform: uppercase;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
&:hover {
|
||||
background: $dark-gray !important;
|
||||
}
|
||||
}
|
||||
&.selected { // When using keyboard navigation it higlights current item and its child items
|
||||
background: $gray;
|
||||
.tree-text {
|
||||
color: $black !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
&-checkbox {
|
||||
&.checked {
|
||||
background: $accent !important;
|
||||
}
|
||||
&.indeterminate {
|
||||
border-color: $gray !important;
|
||||
}
|
||||
background: $dark-slate !important;
|
||||
}
|
||||
&-arrow {
|
||||
&.has-child {
|
||||
&.rtl:after, &:after {
|
||||
border-color: $white !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tree-node.selected > .tree-content {
|
||||
> .tree-anchor > span {
|
||||
font-weight: bolder;
|
||||
}
|
||||
}
|
||||
|
||||
.tree-content:hover {
|
||||
background: $dark-gray !important;
|
||||
}
|
||||
|
||||
.tree-checkbox {
|
||||
&.checked {
|
||||
background: $accent !important;
|
||||
}
|
||||
&.indeterminate {
|
||||
border-color: $gray !important;
|
||||
}
|
||||
background: $dark-slate !important;
|
||||
}
|
||||
@@ -2,97 +2,189 @@ import 'mocha';
|
||||
import { expect } from 'chai';
|
||||
import { ILiquorTreeNode } from 'liquor-tree';
|
||||
import { NodeType } from '@/presentation/Scripts/ScriptsTree/SelectableTree/Node/INode';
|
||||
import { getNewCheckedState } from '@/presentation/Scripts/ScriptsTree/SelectableTree/LiquorTree/NodeWrapper/NodeStateUpdater';
|
||||
import { getNewState } from '@/presentation/Scripts/ScriptsTree/SelectableTree/LiquorTree/NodeWrapper/NodeStateUpdater';
|
||||
|
||||
describe('getNewCheckedState', () => {
|
||||
describe('script node', () => {
|
||||
it('state is true when selected', () => {
|
||||
// arrange
|
||||
const node = getScriptNode();
|
||||
const selectedScriptNodeIds = [ 'a', 'b', node.id, 'c' ];
|
||||
// act
|
||||
const actual = getNewCheckedState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(actual).to.equal(true);
|
||||
describe('getNewState', () => {
|
||||
describe('checked', () => {
|
||||
describe('script node', () => {
|
||||
it('true when selected', () => {
|
||||
// arrange
|
||||
const node = getScriptNode();
|
||||
const selectedScriptNodeIds = [ 'a', 'b', node.id, 'c' ];
|
||||
// act
|
||||
const state = getNewState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(state.checked).to.equal(true);
|
||||
});
|
||||
it('false when unselected', () => {
|
||||
// arrange
|
||||
const node = getScriptNode();
|
||||
const selectedScriptNodeIds = [ 'a', 'b', 'c' ];
|
||||
// act
|
||||
const state = getNewState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(state.checked).to.equal(false);
|
||||
});
|
||||
});
|
||||
it('state is false when unselected', () => {
|
||||
// arrange
|
||||
const node = getScriptNode();
|
||||
const selectedScriptNodeIds = [ 'a', 'b', 'c' ];
|
||||
// act
|
||||
const actual = getNewCheckedState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(actual).to.equal(false);
|
||||
describe('category node', () => {
|
||||
it('true when every child selected', () => {
|
||||
// arrange
|
||||
const node = {
|
||||
id: '1',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [
|
||||
{ id: '2',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('a'), getScriptNode('b') ],
|
||||
},
|
||||
{ id: '3',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('c') ],
|
||||
},
|
||||
],
|
||||
};
|
||||
const selectedScriptNodeIds = [ 'a', 'b', 'c' ];
|
||||
// act
|
||||
const state = getNewState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(state.checked).to.equal(true);
|
||||
});
|
||||
it('false when none of the children is selected', () => {
|
||||
// arrange
|
||||
const node = {
|
||||
id: '1',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [
|
||||
{ id: '2',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('a'), getScriptNode('b') ],
|
||||
},
|
||||
{ id: '3',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('c') ],
|
||||
},
|
||||
],
|
||||
};
|
||||
const selectedScriptNodeIds = [ 'none', 'of', 'them', 'are', 'selected' ];
|
||||
// act
|
||||
const state = getNewState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(state.checked).to.equal(false);
|
||||
});
|
||||
it('false when some of the children is selected', () => {
|
||||
// arrange
|
||||
const node = {
|
||||
id: '1',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [
|
||||
{
|
||||
id: '2',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('a'), getScriptNode('b') ],
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('c') ],
|
||||
},
|
||||
],
|
||||
};
|
||||
const selectedScriptNodeIds = [ 'a', 'c', 'unrelated' ];
|
||||
// act
|
||||
const state = getNewState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(state.checked).to.equal(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
describe('category node', () => {
|
||||
it('state is true when every child selected', () => {
|
||||
// arrange
|
||||
const node = {
|
||||
id: '1',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [
|
||||
{ id: '2',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('a'), getScriptNode('b') ],
|
||||
},
|
||||
{ id: '3',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('c') ],
|
||||
},
|
||||
],
|
||||
};
|
||||
const selectedScriptNodeIds = [ 'a', 'b', 'c' ];
|
||||
// act
|
||||
const actual = getNewCheckedState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(actual).to.equal(true);
|
||||
describe('indeterminate', () => {
|
||||
describe('script node', () => {
|
||||
it('false when selected', () => {
|
||||
// arrange
|
||||
const node = getScriptNode();
|
||||
const selectedScriptNodeIds = [ 'a', 'b', node.id, 'c' ];
|
||||
// act
|
||||
const state = getNewState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(state.indeterminate).to.equal(false);
|
||||
});
|
||||
it('false when not selected', () => {
|
||||
// arrange
|
||||
const node = getScriptNode();
|
||||
const selectedScriptNodeIds = [ 'a', 'b', 'c' ];
|
||||
// act
|
||||
const state = getNewState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(state.indeterminate).to.equal(false);
|
||||
});
|
||||
});
|
||||
it('state is false when none of the children is selected', () => {
|
||||
// arrange
|
||||
const node = {
|
||||
id: '1',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [
|
||||
{ id: '2',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('a'), getScriptNode('b') ],
|
||||
},
|
||||
{ id: '3',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('c') ],
|
||||
},
|
||||
],
|
||||
};
|
||||
const selectedScriptNodeIds = [ 'none', 'of', 'them', 'are', 'selected' ];
|
||||
// act
|
||||
const actual = getNewCheckedState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(actual).to.equal(false);
|
||||
});
|
||||
it('state is false when some of the children is selected', () => {
|
||||
// arrange
|
||||
const node = {
|
||||
id: '1',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [
|
||||
{
|
||||
id: '2',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('a'), getScriptNode('b') ],
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('c') ],
|
||||
},
|
||||
],
|
||||
};
|
||||
const selectedScriptNodeIds = [ 'a', 'c', 'unrelated' ];
|
||||
// act
|
||||
const actual = getNewCheckedState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(actual).to.equal(false);
|
||||
describe('category node', () => {
|
||||
it('false when all children are selected', () => {
|
||||
// arrange
|
||||
const node = {
|
||||
id: '1',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [
|
||||
{ id: '2',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('a'), getScriptNode('b') ],
|
||||
},
|
||||
{ id: '3',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('c') ],
|
||||
},
|
||||
],
|
||||
};
|
||||
const selectedScriptNodeIds = [ 'a', 'b', 'c' ];
|
||||
// act
|
||||
const state = getNewState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(state.indeterminate).to.equal(false);
|
||||
});
|
||||
it('true when all some are selected', () => {
|
||||
// arrange
|
||||
const node = {
|
||||
id: '1',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [
|
||||
{ id: '2',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('a'), getScriptNode('b') ],
|
||||
},
|
||||
{ id: '3',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('c') ],
|
||||
},
|
||||
],
|
||||
};
|
||||
const selectedScriptNodeIds = [ 'a' ];
|
||||
// act
|
||||
const state = getNewState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(state.indeterminate).to.equal(true);
|
||||
});
|
||||
it('false when no children are selected', () => {
|
||||
// arrange
|
||||
const node = {
|
||||
id: '1',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [
|
||||
{ id: '2',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('a'), getScriptNode('b') ],
|
||||
},
|
||||
{ id: '3',
|
||||
data: { type: NodeType.Category, documentationUrls: [], isReversible: false },
|
||||
children: [ getScriptNode('c') ],
|
||||
},
|
||||
],
|
||||
};
|
||||
const selectedScriptNodeIds = [ 'none', 'of', 'them', 'are', 'selected' ];
|
||||
// act
|
||||
const state = getNewState(node, selectedScriptNodeIds);
|
||||
// assert
|
||||
expect(state.indeterminate).to.equal(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -108,6 +108,7 @@ function getNewNode(): ILiquorTreeNewNode {
|
||||
const base = getNode();
|
||||
const commonState = {
|
||||
checked: false,
|
||||
indeterminate: false,
|
||||
};
|
||||
return {
|
||||
id: base.id,
|
||||
|
||||
Reference in New Issue
Block a user