diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index cf1acc2..0000000 --- a/.gitattributes +++ /dev/null @@ -1,6 +0,0 @@ -*.js linguist-detectable=true -*.html linguist-detectable=true -*.xml linguist-detectable=true -*.json linguist-detectable=true -*.cs linguist-detectable=true -*.ps1 linguist-detectable=false diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 1d44bca..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,14 +0,0 @@ -# These are supported funding model platforms - -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: builtbybel -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry -polar: # Replace with a single Polar username -buy_me_a_coffee: # Replace with a single Buy Me a Coffee username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 8a30d25..0000000 --- a/.gitignore +++ /dev/null @@ -1,398 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Ww][Ii][Nn]32/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# ASP.NET Scaffolding -ScaffoldingReadMe.txt - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.tlog -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Coverlet is a free, cross platform Code Coverage Tool -coverage*.json -coverage*.xml -coverage*.info - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio 6 auto-generated project file (contains which files were open etc.) -*.vbp - -# Visual Studio 6 workspace and project file (working project files containing files to include in project) -*.dsw -*.dsp - -# Visual Studio 6 technical files -*.ncb -*.aps - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# Visual Studio History (VSHistory) files -.vshistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ - -# Fody - auto-generated XML schema -FodyWeavers.xsd - -# VS Code files for those working on multiple tools -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -*.code-workspace - -# Local History for Visual Studio Code -.history/ - -# Windows Installer files from build outputs -*.cab -*.msi -*.msix -*.msm -*.msp - -# JetBrains Rider -*.sln.iml diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 6ede764..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 A Belim app creation (Builtbybel) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 5cc5fc2..0000000 --- a/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# Winpilot -### and the tragic hero Clippy, just out here trying to be helpful. -![vmconnect_PYhvJ055eB](https://github.com/builtbybel/Winpilot/assets/57478606/541d366b-4cdc-4213-a1b7-5b13ea206cb0) - - -## About the app -### Alright, first off, the app's called Winpilot, not Clippy. But Clippy's in the mix, we'll get into that later. -Clippits, aka Clippy's legacy, now lives on in Winpilot. -It was inevitable, Microsoft betrayed Clippy, and now we're bringing him back. - -**But what exactly does the Winpilot app do, and why is Clippy on board?** It all started with the spin-off of the predecessor project Bloatynosy to BloatynosyAI. I know, the app names are quirky and fun (hence the name change to Winpilot), but with the latter app, I hopped on the AI train and wanted to create the first tool of its kind—besides Copilot (even though it can barely handle any meaningful Windows management functions)—which can intelligently assist us in Windows and even take over certain functions (The AI story got too bloated and convoluted, so I ditched it). For this, I needed a mascot, an assistant to interact with the user. Clippy seemed to be just the right fit for this, as he somehow annoyed most people back in his day, and nowadays, he isn't associated with much positivity. That's the whole point of the story—putting Clippy into a debloating/tweaking app, which is a bit of revenge against Microsoft and maybe now contributes some valuable additions to the W11 OS to somewhat restore its honor. - -The rights to Clippit still belong to Microsoft (copyright notice is set in the app), even though when we talk about Clippy here, specifically in Winpilot, we mean NeoClippy. - -**So what can Winpilot (including NeoClippy) really do for you?** - -**I'll be back! To remove annoying Windows 11 ads.** -![terminator_clippit](https://github.com/builtbybel/Winpilot/assets/57478606/3edabd92-0919-450b-8b24-48fd53389f8c) - - -Winpilot can spare you from advertising pop-ups in the W11 UI, optimize your privacy, system, and gaming settings, including those of your Legion GO or Rog Ally, and assist you in removing unnecessary apps. - -(Neo)Clippy in Winpilot can also be used to change various settings and access various pieces of system information. - -**Windows-specific features** -- Ask to add a device -- Ask to add Microsoft Account -- Ask to backup -- Ask to take a screenshot -- Ask to change your background image -- Ask for system (winver) or device information -- Ask to clean storage -- Ask to empty recycle bin -- Ask to show startup apps -- Ask for your IP address -- Ask to install apps -- Ask to uninstall apps -- Ask to uninstall Microsoft Software -- Ask to remove bloatware -- Intelligent "AI" driven bloatware detection -- Set up Privacy options -- Search for AI/Copilot features on Windows -- Turn off AI/Copilot features -- Ask to toggle dark/light theme -- Ask to snap a window -- Ask to run Windows updates -- Ask to run quick scan in Windows Security/Defender -- Ask to control options (like taskbar) directly. Turn widgets on and off, arrange taskbar icons, etc. -- Ask to reset system -- Ask to show available space -- Ask to show processes with high RAM usage -- Access to third party plugins and scripts, like Chris Titus app -- Chat with Microsoft Copilot -- Ask to restart Windows Explorer and Taskbar -- Ask to run vive tool feature configurations (static) - -You can use these skills via a type prompt in Winpilot, such as "toggle dark theme" or "uninstall apps or bloatware"; Winpilots Assistant Clippy will take the appropriate action and confirm completion. - -## Download -### Recommended Winpilot Version: [Latest release](https://github.com/builtbybel/Winpilot/releases) - -**Classic Bloatynosy version:** [Last classic Bloatynosy 1.5 release](https://github.com/builtbybel/Bloatynosy/releases/tag/1.5.0) - -## How-to -Simply execute Winpilot.exe. Feel free to delete the cache folder Winpilot.exe.WebView2 whenever necessary. - -## Support statement -WebView2 apps can run on the following versions of Windows: - -- Windows 11 -- Windows 10 -- Windows 10 IoT Enterprise LTSC x32 2019 -- Windows 10 IoT Enterprise LTSC x64 2019 -- Windows 10 IoT Enterprise 21h1 x64 -- Windows Server 2022 -- Windows Server 2019 -- Windows Server 2016 - -https://learn.microsoft.com/en-US/microsoft-edge/webview2/ - diff --git a/assets/BackgroundImage.png b/assets/BackgroundImage.png deleted file mode 100644 index d23a7d3..0000000 Binary files a/assets/BackgroundImage.png and /dev/null differ diff --git a/assets/BackgroundImageA.png b/assets/BackgroundImageA.png deleted file mode 100644 index 3f564e6..0000000 Binary files a/assets/BackgroundImageA.png and /dev/null differ diff --git a/extensions/AutoLogonHandler.ps1 b/extensions/AutoLogonHandler.ps1 deleted file mode 100644 index 796d3f8..0000000 --- a/extensions/AutoLogonHandler.ps1 +++ /dev/null @@ -1,311 +0,0 @@ -[cmdletbinding()] -param ( - [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string] - $Username, - - [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [System.Security.SecureString] - $Password, - - [string] - $Domain, - - [Int] - $AutoLogonCount, - - [switch] - $RemoveLegalPrompt, - - [System.IO.FileInfo] - $BackupFile -) - -begin { - - [string] $WinlogonPath = "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" - [string] $WinlogonBannerPolicyPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" - - [string] $Enable = 1 - [string] $Disable = 0 - - #region C# Code to P-invoke LSA LsaStorePrivateData function. - Add-Type @" - using System; - using System.Collections.Generic; - using System.Text; - using System.Runtime.InteropServices; - - namespace ComputerSystem - { - public class LSAutil - { - [StructLayout(LayoutKind.Sequential)] - private struct LSA_UNICODE_STRING - { - public UInt16 Length; - public UInt16 MaximumLength; - public IntPtr Buffer; - } - - [StructLayout(LayoutKind.Sequential)] - private struct LSA_OBJECT_ATTRIBUTES - { - public int Length; - public IntPtr RootDirectory; - public LSA_UNICODE_STRING ObjectName; - public uint Attributes; - public IntPtr SecurityDescriptor; - public IntPtr SecurityQualityOfService; - } - - private enum LSA_AccessPolicy : long - { - POLICY_VIEW_LOCAL_INFORMATION = 0x00000001L, - POLICY_VIEW_AUDIT_INFORMATION = 0x00000002L, - POLICY_GET_PRIVATE_INFORMATION = 0x00000004L, - POLICY_TRUST_ADMIN = 0x00000008L, - POLICY_CREATE_ACCOUNT = 0x00000010L, - POLICY_CREATE_SECRET = 0x00000020L, - POLICY_CREATE_PRIVILEGE = 0x00000040L, - POLICY_SET_DEFAULT_QUOTA_LIMITS = 0x00000080L, - POLICY_SET_AUDIT_REQUIREMENTS = 0x00000100L, - POLICY_AUDIT_LOG_ADMIN = 0x00000200L, - POLICY_SERVER_ADMIN = 0x00000400L, - POLICY_LOOKUP_NAMES = 0x00000800L, - POLICY_NOTIFICATION = 0x00001000L - } - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaRetrievePrivateData( - IntPtr PolicyHandle, - ref LSA_UNICODE_STRING KeyName, - out IntPtr PrivateData - ); - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaStorePrivateData( - IntPtr policyHandle, - ref LSA_UNICODE_STRING KeyName, - ref LSA_UNICODE_STRING PrivateData - ); - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaOpenPolicy( - ref LSA_UNICODE_STRING SystemName, - ref LSA_OBJECT_ATTRIBUTES ObjectAttributes, - uint DesiredAccess, - out IntPtr PolicyHandle - ); - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaNtStatusToWinError( - uint status - ); - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaClose( - IntPtr policyHandle - ); - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaFreeMemory( - IntPtr buffer - ); - - private LSA_OBJECT_ATTRIBUTES objectAttributes; - private LSA_UNICODE_STRING localsystem; - private LSA_UNICODE_STRING secretName; - - public LSAutil(string key) - { - if (key.Length == 0) - { - throw new Exception("Key lenght zero"); - } - - objectAttributes = new LSA_OBJECT_ATTRIBUTES(); - objectAttributes.Length = 0; - objectAttributes.RootDirectory = IntPtr.Zero; - objectAttributes.Attributes = 0; - objectAttributes.SecurityDescriptor = IntPtr.Zero; - objectAttributes.SecurityQualityOfService = IntPtr.Zero; - - localsystem = new LSA_UNICODE_STRING(); - localsystem.Buffer = IntPtr.Zero; - localsystem.Length = 0; - localsystem.MaximumLength = 0; - - secretName = new LSA_UNICODE_STRING(); - secretName.Buffer = Marshal.StringToHGlobalUni(key); - secretName.Length = (UInt16)(key.Length * UnicodeEncoding.CharSize); - secretName.MaximumLength = (UInt16)((key.Length + 1) * UnicodeEncoding.CharSize); - } - - private IntPtr GetLsaPolicy(LSA_AccessPolicy access) - { - IntPtr LsaPolicyHandle; - - uint ntsResult = LsaOpenPolicy(ref this.localsystem, ref this.objectAttributes, (uint)access, out LsaPolicyHandle); - - uint winErrorCode = LsaNtStatusToWinError(ntsResult); - if (winErrorCode != 0) - { - throw new Exception("LsaOpenPolicy failed: " + winErrorCode); - } - - return LsaPolicyHandle; - } - - private static void ReleaseLsaPolicy(IntPtr LsaPolicyHandle) - { - uint ntsResult = LsaClose(LsaPolicyHandle); - uint winErrorCode = LsaNtStatusToWinError(ntsResult); - if (winErrorCode != 0) - { - throw new Exception("LsaClose failed: " + winErrorCode); - } - } - - public void SetSecret(string value) - { - LSA_UNICODE_STRING lusSecretData = new LSA_UNICODE_STRING(); - - if (value.Length > 0) - { - //Create data and key - lusSecretData.Buffer = Marshal.StringToHGlobalUni(value); - lusSecretData.Length = (UInt16)(value.Length * UnicodeEncoding.CharSize); - lusSecretData.MaximumLength = (UInt16)((value.Length + 1) * UnicodeEncoding.CharSize); - } - else - { - //Delete data and key - lusSecretData.Buffer = IntPtr.Zero; - lusSecretData.Length = 0; - lusSecretData.MaximumLength = 0; - } - - IntPtr LsaPolicyHandle = GetLsaPolicy(LSA_AccessPolicy.POLICY_CREATE_SECRET); - uint result = LsaStorePrivateData(LsaPolicyHandle, ref secretName, ref lusSecretData); - ReleaseLsaPolicy(LsaPolicyHandle); - - uint winErrorCode = LsaNtStatusToWinError(result); - if (winErrorCode != 0) - { - throw new Exception("StorePrivateData failed: " + winErrorCode); - } - } - } - } -"@ - #endregion -} - -process { - - try { - $ErrorActionPreference = "Stop" - - $decryptedPass = [Runtime.InteropServices.Marshal]::PtrToStringAuto( - [Runtime.InteropServices.Marshal]::SecureStringToBSTR($Password) - ) - - if ($BackupFile) { - # Initialize the hash table with a string comparer to allow case sensitive keys. - # This allows differentiation between the winlogon and system policy logon banner strings. - $OrigionalSettings = New-Object System.Collections.Hashtable ([system.stringcomparer]::CurrentCulture) - - $OrigionalSettings.AutoAdminLogon = (Get-ItemProperty $WinlogonPath ).AutoAdminLogon - $OrigionalSettings.ForceAutoLogon = (Get-ItemProperty $WinlogonPath).ForceAutoLogon - $OrigionalSettings.DefaultUserName = (Get-ItemProperty $WinlogonPath).DefaultUserName - $OrigionalSettings.DefaultDomainName = (Get-ItemProperty $WinlogonPath).DefaultDomainName - $OrigionalSettings.DefaultPassword = (Get-ItemProperty $WinlogonPath).DefaultPassword - $OrigionalSettings.AutoLogonCount = (Get-ItemProperty $WinlogonPath).AutoLogonCount - - # The winlogon logon banner settings. - $OrigionalSettings.LegalNoticeCaption = (Get-ItemProperty $WinlogonPath).LegalNoticeCaption - $OrigionalSettings.LegalNoticeText = (Get-ItemProperty $WinlogonPath).LegalNoticeText - - # The system policy logon banner settings. - $OrigionalSettings.legalnoticecaption = (Get-ItemProperty $WinlogonBannerPolicyPath).legalnoticecaption - $OrigionalSettings.legalnoticetext = (Get-ItemProperty $WinlogonBannerPolicyPath).legalnoticetext - - $OrigionalSettings | Export-Clixml -Depth 10 -Path $BackupFile - } - - # Store the password securely. - $lsaUtil = New-Object ComputerSystem.LSAutil -ArgumentList "DefaultPassword" - $lsaUtil.SetSecret($decryptedPass) - - # Store the autologon registry settings. - Set-ItemProperty -Path $WinlogonPath -Name AutoAdminLogon -Value $Enable -Force - - Set-ItemProperty -Path $WinlogonPath -Name DefaultUserName -Value $Username -Force - Set-ItemProperty -Path $WinlogonPath -Name DefaultDomainName -Value $Domain -Force - - if ($AutoLogonCount) { - Set-ItemProperty -Path $WinlogonPath -Name AutoLogonCount -Value $AutoLogonCount -Force - } else { - Remove-ItemProperty -Path $WinlogonPath -Name AutoLogonCount -ErrorAction SilentlyContinue - } - - if ($RemoveLegalPrompt) { - Set-ItemProperty -Path $WinlogonPath -Name LegalNoticeCaption -Value $null -Force - Set-ItemProperty -Path $WinlogonPath -Name LegalNoticeText -Value $null -Force - - Set-ItemProperty -Path $WinlogonBannerPolicyPath -Name legalnoticecaption -Value $null -Force - Set-ItemProperty -Path $WinlogonBannerPolicyPath -Name legalnoticetext -Value $null -Force - } - } catch { - throw 'Failed to set auto logon. The error was: "{0}".' -f $_ - } - -} - -<# - .SYNOPSIS - Enables auto logon using the specified username and password. - - .PARAMETER Username - The username of the user to automatically logon as. - - .PARAMETER Password - The password for the user to automatically logon as. - - .PARAMETER Domain - The domain of the user to automatically logon as. - - .PARAMETER AutoLogonCount - The number of logons that auto logon will be enabled. - - .PARAMETER RemoveLegalPrompt - Removes the system banner to ensure interventionless logon. - - .PARAMETER BackupFile - If specified the existing settings such as the system banner text will be backed up to the specified file. - - .EXAMPLE - PS C:\> Set-SecureAutoLogon ` - -Username $env:USERNAME ` - -Password (Read-Host -AsSecureString) ` - -AutoLogonCount 2 ` - -RemoveLegalPrompt ` - -BackupFile "C:\WinlogonBackup.xml" - - .INPUTS - None. - - .OUTPUTS - None. - - .NOTES - Revision History: - 2011-04-19 : Andy Arismendi - Created. - 2011-09-29 : Andy Arismendi - Changed to use LSA secrets to store password securely. - - .LINK - http://support.microsoft.com/kb/324737 - - .LINK - http://msdn.microsoft.com/en-us/library/aa378750 - -#> \ No newline at end of file diff --git a/extensions/ChrisTitusAppHandler.ps1 b/extensions/ChrisTitusAppHandler.ps1 deleted file mode 100644 index cbf43d9..0000000 --- a/extensions/ChrisTitusAppHandler.ps1 +++ /dev/null @@ -1 +0,0 @@ -irm christitus.com/win | iex \ No newline at end of file diff --git a/extensions/ClearEventLogsHandler.ps1 b/extensions/ClearEventLogsHandler.ps1 deleted file mode 100644 index 6abe7ba..0000000 --- a/extensions/ClearEventLogsHandler.ps1 +++ /dev/null @@ -1,2 +0,0 @@ -Import-Module Microsoft.PowerShell.Management -Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log } \ No newline at end of file diff --git a/extensions/OneDriveHandler.ps1 b/extensions/OneDriveHandler.ps1 deleted file mode 100644 index e84ca0d..0000000 --- a/extensions/OneDriveHandler.ps1 +++ /dev/null @@ -1,60 +0,0 @@ -Import-Module -DisableNameChecking $PSScriptRoot\..\lib\force-mkdir.psm1 -Import-Module -DisableNameChecking $PSScriptRoot\..\lib\take-own.psm1 - -Write-Output "Kill OneDrive process" -taskkill.exe /F /IM "OneDrive.exe" -taskkill.exe /F /IM "explorer.exe" - -Write-Output "Remove OneDrive" -if (Test-Path "$env:systemroot\System32\OneDriveSetup.exe") { - & "$env:systemroot\System32\OneDriveSetup.exe" /uninstall -} -if (Test-Path "$env:systemroot\SysWOW64\OneDriveSetup.exe") { - & "$env:systemroot\SysWOW64\OneDriveSetup.exe" /uninstall -} - -Write-Output "Removing OneDrive leftovers" -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:localappdata\Microsoft\OneDrive" -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:programdata\Microsoft OneDrive" -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:systemdrive\OneDriveTemp" -# check if directory is empty before removing: -If ((Get-ChildItem "$env:userprofile\OneDrive" -Recurse | Measure-Object).Count -eq 0) { - Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:userprofile\OneDrive" -} - -Write-Output "Disable OneDrive via Group Policies" -force-mkdir "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\OneDrive" -Set-ItemProperty "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\OneDrive" "DisableFileSyncNGSC" 1 - -Write-Output "Remove Onedrive from explorer sidebar" -New-PSDrive -PSProvider "Registry" -Root "HKEY_CLASSES_ROOT" -Name "HKCR" -mkdir -Force "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" -Set-ItemProperty "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" "System.IsPinnedToNameSpaceTree" 0 -mkdir -Force "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" -Set-ItemProperty "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" "System.IsPinnedToNameSpaceTree" 0 -Remove-PSDrive "HKCR" - -# Thank you Matthew Israelsson -Write-Output "Removing run hook for new users" -reg load "hku\Default" "C:\Users\Default\NTUSER.DAT" -reg delete "HKEY_USERS\Default\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "OneDriveSetup" /f -reg unload "hku\Default" - -Write-Output "Removing startmenu entry" -Remove-Item -Force -ErrorAction SilentlyContinue "$env:userprofile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk" - -Write-Output "Removing scheduled task" -Get-ScheduledTask -TaskPath '\' -TaskName 'OneDrive*' -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false - -Write-Output "Restarting explorer" -Start-Process "explorer.exe" - -Write-Output "Waiting for explorer to complete loading" -Start-Sleep 10 - -Write-Output "Removing additional OneDrive leftovers" -foreach ($item in (Get-ChildItem "$env:WinDir\WinSxS\*onedrive*")) { - Takeown-Folder $item.FullName - Remove-Item -Recurse -Force $item.FullName -} -Write-Output "Clippy can confirm the uninstallation of the OneDrive app." diff --git a/extensions/UI.css b/extensions/UI.css deleted file mode 100644 index 286cd65..0000000 --- a/extensions/UI.css +++ /dev/null @@ -1,675 +0,0 @@ -/* Dark Mode for Winpilot by Belim */ - -/* Main body */ -body { - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - background: linear-gradient(to right, #1e1e1e, #2b2b2b); /* Modern dark gradient */ - color: #ffffff; /* White text color */ - padding: 40px; - text-align: left; - margin: 0; - zoom: 0.9; /* WebView2 zoom level */ -} - -/* Hide all containers except the left-container and system container by default */ -.workspace-content .glassy-box:not(#stepleftHeader):not(#stepHomeHeader) { - display: none; -} - - -.container { - display: flex; - flex-wrap: wrap; /* Wrap to next line */ -} - -.left-container { - flex: 2; /* Initial width */ - display: flex; - flex-direction: column; - align-items: stretch; - margin-right: 20px; - margin-top: 20px; -} - -.workspace-container { - flex: 3; /* Initial width */ - margin-left: 0px; -} - -@media (max-width: 600px) { - .container { - flex-direction: column; /* Change to a column layout on smaller screens */ - } - - .left-container { - order: 2; /* Move left container to bottom */ - margin-top: 0; /* Remove top margin */ - margin-bottom: 20px; /* Add bottom margin */ - } - - .workspace-container { - order: 1; /* Move workspace container to top */ - } -} - -/* Navigation menu container */ -.navigation-menu { - padding: 0; - margin-left: auto; - margin-bottom: 10px; -} - -/* Menu item styles */ -.navigation-menu a { - margin-right: 10px; - text-decoration: none; - color: #999; - font-weight: bold; - font-size: 16px; - transition: color 0.3s ease, transform 0.3s ease; - position: relative; - margin-right: 20px; -} - -/* Hover effect */ -.navigation-menu a:hover { - color: #ff00dd; /* Light magenta on hover */ -} - -/* Active/focus state */ -.navigation-menu a.active, -.navigation-menu a:focus { - color: #ff00dd; /* Light magenta for active link */ - outline: none; - transform: scale(1.1); -} - -/* Indicator for active menu item */ -.navigation-menu a.active::before, -.navigation-menu a:focus::before { - content: ''; - position: absolute; - top: 50%; - left: -15px; - transform: translateY(-50%); - width: 10px; - height: 10px; - background: radial-gradient(circle, #aa00ff, #ff00dd); /* Light magenta to pink gradient */ - border-radius: 50%; - animation: blink 1s infinite alternate; -} - -/* Blinking animation */ -@keyframes blink { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -/* Workspace Header styling */ -#stepHomeHeader { - top: 30px; - background: linear-gradient(45deg, #1f1f1f 0%, #303030 50%, #1f1f1f 100%); /* Dark gradient */ - border-radius: 12px; - padding: 20px; - margin: 10px 0; - z-index: 998; -} - -/* All other Header styling */ -#stepLeftHeader, -#stepSystemHeader, -#stepAppsHeader, -#stepAppxHeader, -#steptweakHeader { - top: 30px; - background: linear-gradient(45deg, #1f1f1f 0%, #303030 50%, #1f1f1f 100%); /* Dark gradient */ - border-radius: 12px; - padding: 20px; - margin: 10px 0; - margin-bottom: 50px; - z-index: 998; - transition: background-color 0.3s ease; -} - -/* Hover effect */ -#stepLeftHeader:hover, -#stepSystemHeader:hover, -#stepAppsHeader:hover, -#stepAppxHeader:hover, -#steptweakHeader:hover { - background: linear-gradient(45deg, #303030 0%, #424242 50%, #303030 100%); /* Dark gradient on hover */ -} - -/* Background color */ -#stepLeftHeader, -#stepSystemHeader, -#stepAppsHeader, -#stepAppxHeader, -#steptweakHeader { - background: linear-gradient(45deg, #1f1f1f 0%, #990099 50%, #1f1f1f 100%); /* Dark magenta/purple gradient */ -} - -/* Styling for links, e.g. Share, GitHub etc. */ -.links-container { - position: absolute; - top: 10px; - right: 10px; -} - -.modern-link { - color: #ff00dd; /* Light magenta */ - text-decoration: none; - transition: color 0.3s ease; -} - -.modern-link:hover { - color: #ff99ff; /* Lighter magenta on hover */ -} - -/* Settings menu */ -.settings-dropbtn { - background-color: transparent; - color: #d5d5d5; - padding: 0px 16px; - font-size: inherit; - border: none; - cursor: pointer; - border-radius: 5px; -} - -/* Dropdown container (hidden by default) */ -.settings-dropdown { - position: relative; - display: inline-block; - z-index: 99999; -} - -/* Dropdown content */ -.settings-dropdown-content { - display: none; - position: absolute; - background-color: #1f1f1f; /* Dark background */ - min-width: 160px; - z-index: 1; - box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2); - border-radius: 5px; - right: 0; -} - -/* Links inside dropdown */ -.settings-dropdown-content a { - color: #ffffff; /* White text */ - padding: 12px 16px; - text-decoration: none; - display: block; -} - -.settings-dropdown-content a:hover { - background-color: #424242; /* Darker background on hover */ -} - -.settings-dropdown:hover .settings-dropdown-content { - display: block; -} - -/* Change the background color of dropdown button when the dropdown content is shown */ -.settings-dropdown:hover .settings-dropbtn { - background-color: #ff00dd; /* Light magenta */ - color: #ffffff; /* White text */ -} - -/* Styling for back button */ -#btnBack { - position: absolute; - top: 10px; - left: 10px; - background-color: transparent; - color: #999; - border: none; -} - -#btnBack .icon { - font-family: 'Segoe MDL2 Assets'; - font-size: 14px; -} - -#btnBack:hover { - background-color: #333333; /* Darker background on hover */ -} - -/* Main Container styling */ -.glassy-box { - position: relative; - flex: 1; - max-width: 100%; - margin-right: 20px; -} - -/* UI: Glassy-Box buttons in Headers/Plugins, e.g. CoTweaker, Decrapify etc. */ -.glassy-box button { - position: relative; - font-family: "Segoe UI"; - font-size: 14px; - display: inline-block; - padding: 10px 20px; - border: 1px solid #ffffff; /* White border */ - margin-bottom: 5px; - border-radius: 10px; - color: #ffffff; /* White text */ - background: #990099; /* Dark magenta background */ - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); - cursor: pointer; -} - -.glassy-box button:hover { - border: 1px solid #ff00dd; /* Light magenta border on hover */ -} - -/* Clippy Animation */ -@keyframes clippyAnimation { - 0% { transform: translateY(0); } - 50% { transform: translateY(-10px); } - 100% { transform: translateY(0); } -} - -/* Styling for Clippy container */ -#clippy-container { - position: fixed; - bottom: 20px; - right: -150px; - z-index: 999; - animation: clippyAnimation 2s infinite; -} - -/* Styling for Clippy image */ -#clippy-container img { - width: 180px; - height: auto; - filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.5)); /* White drop shadow */ -} - -/* Styling for Assisted buttons container inside logContainer */ -.assisted-container { - display: flex; -} - -/* Styling for logContainer */ -#logContainer { - position: fixed; - bottom: 110px; - left: 20px; - right: calc(20% + 100px); - z-index: 999; - background-color: rgba(255, 255, 204, 0.8); /* Light transparent yellow-orange background */ - font-size: 14px; - color: #333; /* Dark grey text */ - border: 3px solid #000; /* Light grey border */ - border-radius: 10px; - padding: 10px; /* Increased padding */ - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Dark transparent shadow */ -} - -/* Triangle pointer for logContainer */ -#logContainer::before { - content: ""; - position: absolute; - bottom: calc(50% - 10px); - right: -20px; - border-width: 10px; - border-style: solid; - border-color: transparent transparent transparent rgba(255, 255, 204, 0.9); /* Light transparent yellow-orange triangle pointer */ - z-index: -1; -} - -/* UI: Chatbox Container */ -.chatbox-container { - left: 30px; - width: 65%; - max-height: 80%; - padding: 10px; - backdrop-filter: blur(10px); /* Apply blur effect to the background */ -} - -/* Additional style for chatbox container */ -.chatbox-container input { - border-radius: 8px; - padding: 15px; - box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1); - color: #f0f0f0; -} - -/* Chatbox: input styling */ -#chatbox { - background-color: rgba(51, 51, 51, 0.9); - width: 120%; - height: 20px; - padding: 12px; - font-size: 16px; - border: none; /* Remove default border */ - border: 1px solid #666666; - border-radius: 10px; - margin-bottom: 10px; - border-bottom: 1px solid #7a336c; /* Magenta bottom border */ - outline: none; -} - -.chatbox-items div { - display: inline-block; - padding: 5px; - font-size: 14px; - cursor: pointer; - background-color: #333333; - border: 2px solid #7a336c; /* Rounded Microsoft Copilot magenta border for each result */ - border-radius: 8px; /* Rounded corners */ - margin-bottom: 10px; -} - -.chatbox-items div:hover { - background-color: #555555; - color: magenta; -} - -/* Assisted buttons container */ -/* Button sizes for the buttons container */ -#buttons-container, -#buttonsAppx-container { - display: flex; - flex-wrap: wrap; /* Allow buttons to wrap to the next line if necessary */ - gap: 8px; /* Let's add some spacing between buttons */ - margin-bottom: 8px; /* Add some space after buttons-container */ -} - -/* Common button styles */ -#buttons-container button, -#buttonsAppx-container button, -#refreshButton { - font-family: "Comic Sans MS", sans-serif; /* Because Clippy loved Comic Sans! */ - font-size: 13px; - text-align: left; - margin-bottom: 8px; - border-radius: 10px; - background: transparent; /* Transparent background */ - cursor: pointer; - min-width: 150px; - transition: transform 0.3s ease; - flex: 1; - border: none; -} - -/* Styling for the middle/third button */ -#buttons-container button:nth-child(3) { - font-weight: 500; - background: #9d0194; - color: #fff; - border: 1px solid #7a336c; -} - -/* Pink border on hover */ -#buttons-container button:hover, -#buttonsAppx-container button:hover, -#refreshButton:hover { - border: 1px solid magenta; -} - -/* Scale up the button on hover */ -#buttonsAppx-container button:hover { - transform: scale(1.2); -} - -/* Add a trash/bin icon before the button text */ -#buttonsAppx-container button::before { - content: "📱 Remove "; -} - -#refreshButton:hover { - height: 20px; - border-color: #0078cf; -} - -/* ASSISTED BUTTONS: Additional buttons are shown progressively as the container width increases, -with a maximum of 6 buttons being displayed at widths of 1200px or larger based on the size of the viewport. */ - -/* Initially hide all buttons */ -#buttons-container button { - display: none; -} - -/* Show the first two buttons initially */ -#buttons-container button:nth-child(-n+2) { - display: inline-block; -} - -/* Show additional buttons as container width increases */ -@media screen and (min-width: 400px) { - #buttons-container button:nth-child(-n+2) { - display: inline-block; - } -} - -@media screen and (min-width: 600px) { - #buttons-container button:nth-child(-n+4) { - display: inline-block; - } -} - -@media screen and (min-width: 800px) { - #buttons-container button:nth-child(-n+5) { - display: inline-block; - } -} - -@media screen and (min-width: 1000px) { - #buttons-container button:nth-child(-n+6) { - display: inline-block; - } -} - -/* Ensure a maximum of 6 buttons are shown */ -@media screen and (min-width: 1200px) { - #buttons-container button { - display: inline-block; - } -} - -/* PLUGIN: CoTweaker */ -/* UI: Header styling for Toggle Switches in CoTweaker */ -/* Highlight Feature status in CoTweaker js backend */ -.CoTweakerFeatureON { color: green; } -.CoTweakerFeatureOFF { color: red; } - -/* Support statement for Handhelds */ -.handheld-badge { - position: absolute; - top: 20px; - right: 20px; - background-color: #6f4fdc; - color: white; - padding: 4px 8px; - border-radius: 4px; - font-size: 12px; - margin-left: 8px; - border-radius: 5px; -} - -/* Styling for the section headers */ -.section-header { - font-size: 1.2em; - font-weight: bold; - margin-top: 20px; - color: #f0f0f0; - border-bottom: 2px solid rgba(255, 0, 255, 0.4); /* Semi-transparent magenta border */ - padding-bottom: 10px; -} - -/* Styling for the settings group */ -.settings-group { - margin-bottom: 30px; - padding: 20px; -} - -/* Styling for the descriptions */ -.description { - display: none; /* Initially hide descriptions */ - margin-top: 10px; -} - -/* Styling for the individual settings */ -.toggle-switch-label { - position: relative; - display: inline-block; - width: 40px; - height: 20px; - background-color: #ccc; - border-radius: 20px; - transition: background-color 0.3s; - vertical-align: middle; - margin-right: 10px; -} - -.toggle-switch-label:before { - content: ''; - position: absolute; - width: 16px; - height: 16px; - border-radius: 50%; - background-color: white; - top: 2px; - left: 2px; - transition: transform 0.3s; -} - -input[type="checkbox"] { - display: none; -} - -input[type="checkbox"]:checked + .toggle-switch-label { - background-color: #86d993; /* Green color when checked */ -} - -input[type="checkbox"]:checked + .toggle-switch-label:before { - transform: translateX(20px); /* Move the circle to the right when checked */ -} - -.checkbox-label { - cursor: help; -} - -/* PLUGIN: Decrapify */ -.package-group { - margin-bottom: 20px; -} - -.package-group h2 { - font-size: 24px; - color: #fff; /* Light text color */ - margin-bottom: 10px; -} - -.toggle-switch-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - grid-gap: 10px; -} - -.custom-toggle-switch { - display: flex; - align-items: center; -} - -.custom-toggle-switch input { - display: none; -} - -.custom-toggle-switch label { - cursor: pointer; - background-color: #212121; /* Darker background */ - border-radius: 10px; - padding: 8px 12px; - color: #fff; /* Light text color */ -} - -.custom-toggle-switch input:checked + label { - background-color: #1976D2; /* Windows 11 accent color */ - color: #fff; -} - -/* PLUGIN: WingetUI */ -#appList { - display: flex; - flex-wrap: wrap; - justify-content: space-between; -} - -.app-item { - background: linear-gradient(45deg, #2c2c2c 0%, #333333 20%, #444444 40%, #555555 60%, #666666 80%, #2c2c2c 100%); - border-radius: 12px; - box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); - padding: 20px; - width: 100%; - box-sizing: border-box; - transition: transform 0.3s; - width: calc(33.33% - 20px); /* Width of each app item */ - margin-bottom: 20px; /* Space between rows */ -} - -.app-item:hover { - transform: scale(1.05); - box-shadow: 0 0 30px rgba(0, 0, 0, 0.2); /* Slightly larger shadow on hover */ -} - -/* PLUGIN: Extensions */ -#plugin-categories-container { - display: flex; - flex-wrap: wrap; - gap: 10px; -} - -/* Preinstalled badge */ -.plugin-badge { - background-color: #8f3cd5; - color: white; - padding: 4px 8px; - border-radius: 4px; - font-size: 12px; - margin-left: 8px; -} - -.plugin-entry { - width: calc(33.33% - 20px); - background-color: #f2effd; - border: 1px solid #e8e8ed; - border-radius: 5px; - padding: 20px; - margin-bottom: 10px; -} - -.plugin-entry h3 { - color: #333; - font-size: 18px; - margin-bottom: 10px; -} - -.plugin-entry p { - color: #666; - font-size: 14px; - margin-bottom: 15px; -} - -.plugin-entry .execute-button { - background-color: #e26bf8; - color: #fff; - border: none; - border-radius: 3px; - padding: 5px 10px; - font-size: 14px; - cursor: pointer; - transition: background-color 0.3s; -} - -.plugin-entry .execute-button:hover { - background-color: #8f3cd5; -} diff --git a/extensions/plug.appsPrivacyTemplate.ps1 b/extensions/plug.appsPrivacyTemplate.ps1 deleted file mode 100644 index f73b966..0000000 --- a/extensions/plug.appsPrivacyTemplate.ps1 +++ /dev/null @@ -1,68 +0,0 @@ -### This template will block and disable telemetry features of the following apps: ### -###- Block Google Chrome Software Reporter Tool -# The Software Reporter Tool (also known as Chrome Cleanup Tool and Software Removal Tool, the executable file is software_reporter_tool.exe), is a tool that Google distributes with the Google Chrome web browser. -# It is a part of Google Chrome's Clean up Computer feature which scans your computer for harmful software. If this tool finds any harmful app or extension which can cause problems, it removes them from your computer. -# Anything that interferes with a user's browsing experience may be removed by the tool. -# Its disadvantages, high CPU load or privacy implications, may be reason enough to block it from running. This script will disable the software_reporter_tool.exe in a more cleaner way using Image File Execution Options Debugger value. -# Setting this value to an executable designed to kill processes disables it. Chrome won't re-enable it with almost each update. Next to this, it will also be disabled per default in Registry. -New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Google\Chrome" -Name ChromeCleanupEnabled -Type String -Value 0 -Force -New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Google\Chrome" -Name ChromeCleanupReportingEnabled -Type String -Value 0 -Force -New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Google\Chrome" -Name MetricsReportingEnabled -Type String -Value 0 -Force -# This will disable the software_reporter_tool.exe in a more cleaner way using Image File Execution Options Debugger value. -# Setting this value to an executable designed to kill processes disables it. Chrome won't re-enable it with almost each update. -If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\software_reporter_tool.exe")) { -New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\software_reporter_tool.exe" -Force | Out-Null -Write-Output "Google Chrome Software Reporter Tool has been successfully blocked." -} -Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\software_reporter_tool.exe" -Name "Debugger" -Type String -Value %windir%\System32\taskkill.exe -Force - -###- Disable Mozilla Firefox telemetry -# Firefox 75 comes with a new telemetry agent that sends information about your operating system and your default browser to Firefox every day. -# The information collected is sent as a background telemetry ping every 24 hours to Mozilla. -# Mozilla has introduced a Windows group policy that prevents the default-browser-agent.exe executable from sending your default browser info. -New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Mozilla\Firefox" -Name DisableTelemetry -Type DWord -Value 1 -Force -New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Mozilla\Firefox" -Name DisableDefaultBrowserAgent -Type DWord -Value 1 -Force - -###- Disable CCleaner Monitoring -# Since Avast acquired Piriform, the popular system cleaning software CCleaner has become bloated with malware, bundled PUPs(potentially unwanted programs), and an alarming amount of pop-up ads. -# If you're highly dependent on CCleaner you can disable with this script the CCleaner Active Monitoring ("Active Monitoring" feature has been renamed with v5.46 to "Smart Cleaning"), -# automatic Update check and download function, trial offer notifications, the new integrated Software Updater and the privacy option to "Help Improve CCleaner by sending anonymous usage data". -Stop-Process -name CCleaner* -New-ItemProperty -Path "HKCU:\Software\Piriform\CCleaner" -Name Monitoring -Type String -Value 0 -Force -New-ItemProperty -Path "HKCU:\Software\Piriform\CCleaner" -Name HelpImproveCCleaner -Type String -Value 0 -Force -New-ItemProperty -Path "HKCU:\Software\Piriform\CCleaner" -Name SystemMonitoring -Type String -Value 0 -Force -New-ItemProperty -Path "HKCU:\Software\Piriform\CCleaner" -Name UpdateAuto -Type String -Value 0 -Force -New-ItemProperty -Path "HKCU:\Software\Piriform\CCleaner" -Name UpdateCheck -Type String -Value 0 -Force -New-ItemProperty -Path "HKCU:\Software\Piriform\CCleaner" -Name CheckTrialOffer -Type String -Value 0 -Force -New-ItemProperty -Path "HKLM:\Software\Piriform\CCleaner" -Name (Cfg)GetIpmForTrial -Type String -Value 0 -Force -New-ItemProperty -Path "HKLM:\Software\Piriform\CCleaner" -Name (Cfg)SoftwareUpdater -Type String -Value 0 -Force -New-ItemProperty -Path "HKLM:\Software\Piriform\CCleaner" -Name (Cfg)SoftwareUpdaterIpm -Type String -Value 0 -Force -Get-ScheduledTask -TaskName "CCleaner Update" | Disable-ScheduledTask - -###- Disable Dropbox Update service -# This will disable Dropbox auto update service -Get-ScheduledTask -TaskName "DropboxUpdateTaskMachineCore" | Disable-ScheduledTask -Get-ScheduledTask -TaskName "DropboxUpdateTaskMachineUA" | Disable-ScheduledTask - -###- Disable Google Update service -# This will disable Google update service -Get-ScheduledTask -TaskName "GoogleUpdateTaskMachineCore" | Disable-ScheduledTask -Get-ScheduledTask -TaskName "GoogleUpdateTaskMachineUA" | Disable-ScheduledTask - -###- Disable Media Player telemetry -# This will disable Media Player telemetry -New-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\MediaPlayer\Preferences" -Name UsageTracking -Type DWord -Value 0 -Force -New-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\WindowsMediaPlayer" -Name PreventCDDVDMetadataRetrieval -Type DWord -Value 1 -Force -New-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\WindowsMediaPlayer" -Name PreventMusicFileMetadataRetrieval -Type DWord -Value 1 -Force -New-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\WindowsMediaPlayer" -Name PreventRadioPresetsRetrieval -Type DWord -Value 0 -Force -New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\WMDRM" -Name DisableOnline -Type DWord -Value 1 -Force -Set-Service WMPNetworkSvc -StartupType Disabled - -###- Disable Microsoft Office telemetry -# This will disable Microsoft Office telemetry (supports Microsoft Office 2013 and 2016) -Get-ScheduledTask -TaskName "OfficeTelemetryAgentFallBack2016" | Disable-ScheduledTask -Get-ScheduledTask -TaskName "OfficeTelemetryAgentLogOn2016" | Disable-ScheduledTask -New-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Office\15.0\osm" -Name Enablelogging -Type DWord -Value 0 -Force -New-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Office\15.0\osm" -Name EnableUpload -Type DWord -Value 0 -Force -New-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Office\16.0\osm" -Name Enablelogging -Type DWord -Value 0 -Force -New-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Office\16.0\osm" -Name EnableUpload -Type DWord -Value 0 -Force \ No newline at end of file diff --git a/extensions/plug.disableServices.ps1 b/extensions/plug.disableServices.ps1 deleted file mode 100644 index a8b169d..0000000 --- a/extensions/plug.disableServices.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -# Description: -# This script disables unwanted Windows services. If you do not want to disable -# certain services comment out the corresponding lines below. - -$services = @( - "diagnosticshub.standardcollector.service" # Microsoft (R) Diagnostics Hub Standard Collector Service - "DiagTrack" # Diagnostics Tracking Service - "dmwappushservice" # WAP Push Message Routing Service (see known issues) - "lfsvc" # Geolocation Service - "MapsBroker" # Downloaded Maps Manager - "NetTcpPortSharing" # Net.Tcp Port Sharing Service - "RemoteAccess" # Routing and Remote Access - "RemoteRegistry" # Remote Registry - "SharedAccess" # Internet Connection Sharing (ICS) - "TrkWks" # Distributed Link Tracking Client - "WbioSrvc" # Windows Biometric Service (required for Fingerprint reader / facial detection) - #"WlanSvc" # WLAN AutoConfig (Disabling this can cause issues with wifi connectivity) - "WMPNetworkSvc" # Windows Media Player Network Sharing Service - #"wscsvc" # Windows Security Center Service - #"WSearch" # Windows Search - "XblAuthManager" # Xbox Live Auth Manager - "XblGameSave" # Xbox Live Game Save Service - "XboxNetApiSvc" # Xbox Live Networking Service - "ndu" # Windows Network Data Usage Monitor - # Services which cannot be disabled - #"WdNisSvc" -) - -foreach ($service in $services) { - Write-Output "Trying to disable $service" - Get-Service -Name $service | Set-Service -StartupType Disabled -} diff --git a/extensions/plug.removeDefaultApps.ps1 b/extensions/plug.removeDefaultApps.ps1 deleted file mode 100644 index 98a1ce4..0000000 --- a/extensions/plug.removeDefaultApps.ps1 +++ /dev/null @@ -1,172 +0,0 @@ -# Description: -# This script removes unwanted Apps that come with Windows. If you do not want -# to remove certain Apps comment out the corresponding lines below. - -Import-Module -DisableNameChecking $PSScriptRoot\..\lib\take-own.psm1 -Import-Module -DisableNameChecking $PSScriptRoot\..\lib\New-FolderForced.psm1 - -Write-Output "Elevating privileges for this process" -do {} until (Elevate-Privileges SeTakeOwnershipPrivilege) - -Write-Output "Uninstalling default apps" -$apps = @( - # default Windows 10 apps - "Microsoft.549981C3F5F10" #Cortana - "Microsoft.3DBuilder" - "Microsoft.Appconnector" - "Microsoft.BingFinance" - "Microsoft.BingNews" - "Microsoft.BingSports" - "Microsoft.BingTranslator" - "Microsoft.BingWeather" - #"Microsoft.FreshPaint" - "Microsoft.GamingServices" - "Microsoft.Microsoft3DViewer" - "Microsoft.MicrosoftOfficeHub" - "Microsoft.MicrosoftPowerBIForWindows" - "Microsoft.MicrosoftSolitaireCollection" - #"Microsoft.MicrosoftStickyNotes" - "Microsoft.MinecraftUWP" - "Microsoft.NetworkSpeedTest" - "Microsoft.Office.OneNote" - "Microsoft.People" - "Microsoft.Print3D" - "Microsoft.SkypeApp" - "Microsoft.Wallet" - #"Microsoft.Windows.Photos" - "Microsoft.WindowsAlarms" - #"Microsoft.WindowsCalculator" - "Microsoft.WindowsCamera" - "microsoft.windowscommunicationsapps" - "Microsoft.WindowsMaps" - "Microsoft.WindowsPhone" - "Microsoft.WindowsSoundRecorder" - #"Microsoft.WindowsStore" # can't be re-installed - "Microsoft.Xbox.TCUI" - "Microsoft.XboxApp" - "Microsoft.XboxGameOverlay" - "Microsoft.XboxGamingOverlay" - "Microsoft.XboxSpeechToTextOverlay" - "Microsoft.YourPhone" - "Microsoft.ZuneMusic" - "Microsoft.ZuneVideo" - "Microsoft.SkypeApp" - "Clipchamp.Clipchamp" - - # Threshold 2 apps - "Microsoft.CommsPhone" - "Microsoft.ConnectivityStore" - "Microsoft.GetHelp" - "Microsoft.Getstarted" - "Microsoft.Messaging" - "Microsoft.Office.Sway" - "Microsoft.OneConnect" - "Microsoft.WindowsFeedbackHub" - - # Creators Update apps - "Microsoft.Microsoft3DViewer" - #"Microsoft.MSPaint" - - #Redstone apps - "Microsoft.BingFoodAndDrink" - "Microsoft.BingHealthAndFitness" - "Microsoft.BingTravel" - "Microsoft.WindowsReadingList" - - # Redstone 5 apps - "Microsoft.MixedReality.Portal" - "Microsoft.ScreenSketch" - "Microsoft.XboxGamingOverlay" - - # non-Microsoft - "2FE3CB00.PicsArt-PhotoStudio" - "46928bounde.EclipseManager" - "4DF9E0F8.Netflix" - "613EBCEA.PolarrPhotoEditorAcademicEdition" - "6Wunderkinder.Wunderlist" - "7EE7776C.LinkedInforWindows" - "89006A2E.AutodeskSketchBook" - "9E2F88E3.Twitter" - "A278AB0D.DisneyMagicKingdoms" - "A278AB0D.MarchofEmpires" - "ActiproSoftwareLLC.562882FEEB491" # next one is for the Code Writer from Actipro Software LLC - "CAF9E577.Plex" - "ClearChannelRadioDigital.iHeartRadio" - "D52A8D61.FarmVille2CountryEscape" - "D5EA27B7.Duolingo-LearnLanguagesforFree" - "DB6EA5DB.CyberLinkMediaSuiteEssentials" - "DolbyLaboratories.DolbyAccess" - "DolbyLaboratories.DolbyAccess" - "Drawboard.DrawboardPDF" - "Facebook.Facebook" - "Fitbit.FitbitCoach" - "Flipboard.Flipboard" - "GAMELOFTSA.Asphalt8Airborne" - "KeeperSecurityInc.Keeper" - "NORDCURRENT.COOKINGFEVER" - "PandoraMediaInc.29680B314EFC2" - "Playtika.CaesarsSlotsFreeCasino" - "ShazamEntertainmentLtd.Shazam" - "SlingTVLLC.SlingTV" - "SpotifyAB.SpotifyMusic" - "ThumbmunkeysLtd.PhototasticCollage" - "TuneIn.TuneInRadio" - "WinZipComputing.WinZipUniversal" - "XINGAG.XING" - "flaregamesGmbH.RoyalRevolt2" - "king.com.*" - "king.com.BubbleWitch3Saga" - "king.com.CandyCrushSaga" - "king.com.CandyCrushSodaSaga" - "BytedancePte.Ltd.TikTok" - "Facebook.InstagramBeta" - - # apps which cannot be removed using Remove-AppxPackage - #"Microsoft.BioEnrollment" - #"Microsoft.MicrosoftEdge" - #"Microsoft.Windows.Cortana" - #"Microsoft.WindowsFeedback" - #"Microsoft.XboxGameCallableUI" - #"Microsoft.XboxIdentityProvider" - #"Windows.ContactSupport" -) - -$appxprovisionedpackage = Get-AppxProvisionedPackage -Online - -foreach ($app in $apps) { - Write-Output "Trying to remove $app" - - Get-AppxPackage -Name $app -AllUsers | Remove-AppxPackage -AllUsers - - ($appxprovisionedpackage).Where( {$_.DisplayName -EQ $app}) | - Remove-AppxProvisionedPackage -Online -} Write-Host "Clippy has completed the process and removed all possible apps." - -# Prevents Apps from re-installing -$cdm = @( - "ContentDeliveryAllowed" - "FeatureManagementEnabled" - "OemPreInstalledAppsEnabled" - "PreInstalledAppsEnabled" - "PreInstalledAppsEverEnabled" - "SilentInstalledAppsEnabled" - "SubscribedContent-314559Enabled" - "SubscribedContent-338387Enabled" - "SubscribedContent-338388Enabled" - "SubscribedContent-338389Enabled" - "SubscribedContent-338393Enabled" - "SubscribedContentEnabled" - "SystemPaneSuggestionsEnabled" -) - -New-FolderForced -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -foreach ($key in $cdm) { - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" $key 0 -} - -New-FolderForced -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsStore" -Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsStore" "AutoDownload" 2 - -# Prevents "Suggested Applications" returning -New-FolderForced -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" "DisableWindowsConsumerFeatures" 1 diff --git a/extensions/plug.restoreInboxApps.ps1 b/extensions/plug.restoreInboxApps.ps1 deleted file mode 100644 index d011e14..0000000 --- a/extensions/plug.restoreInboxApps.ps1 +++ /dev/null @@ -1,31 +0,0 @@ -# Get all installed Windows apps for all users -$allApps = Get-AppxPackage -AllUsers - -# Counter for tracking progress -$totalApps = $allApps.Count -$currentAppIndex = 1 -$reinstalledCount = 0 - -# Loop through each app and reinstall -foreach ($app in $allApps) { - # Display current status - Write-Host "[$currentAppIndex / $totalApps] Reinstalling $($app.Name)..." -ForegroundColor Yellow - - # Try to reinstall the app - try { - Add-AppxPackage -Register "$($app.InstallLocation)\appxmanifest.xml" -DisableDevelopmentMode -ErrorAction Stop - Write-Host "[$currentAppIndex / $totalApps] $($app.Name) reinstalled successfully." -ForegroundColor Green - $reinstalledCount++ - } catch { - Write-Host "[$currentAppIndex / $totalApps] Error occurred while reinstalling $($app.Name): $_" -ForegroundColor Red - } - - # Increment the counter - $currentAppIndex++ -} - -# Display final status -if ($reinstalledCount -eq $totalApps) { - Write-Host "All apps reinstalled successfully." -ForegroundColor Green - Write-Host "Winpilot and Clippy have reinstalled everything possible." -ForegroundColor Cyan -} diff --git a/mods/AutoLogon.ini b/mods/AutoLogon.ini deleted file mode 100644 index 5b7b2d2..0000000 --- a/mods/AutoLogon.ini +++ /dev/null @@ -1,12 +0,0 @@ -[Info] -DisplayName=Enable secure AutoLogon -Publisher=https://gist.github.com/RezaAmbler/bc91bfeb57458bb9a9bc -AboutScript=If your computer is used in an environment where you are happy for all users to have easy access, you can enable auto login with this script. -ScriptLanguage=PowerShell -ConditionScript=autologon.ps1 -CreateNoWindow=false - - - - - diff --git a/mods/Backup Edge Bookmarks.ini b/mods/Backup Edge Bookmarks.ini deleted file mode 100644 index 235bf43..0000000 --- a/mods/Backup Edge Bookmarks.ini +++ /dev/null @@ -1,12 +0,0 @@ -[Info] -DisplayName=Backup Edge (based on Chromium) Bookmarks to Desktop -Publisher=Gunnar Haslinger -AboutScript=Read Microsoft Edge (based on Chromium) Bookmarks (JSON File) and Export/Backup to HTML-File (Edge/Firefox/Chrome compatible Format) on your Desktop. -ScriptLanguage=PowerShell -ConditionScript=backup-edge_chromium-bookmarks.ps1 -CreateNoWindow=true - - - - - diff --git a/mods/Bypass Edge default handler.ini b/mods/Bypass Edge default handler.ini deleted file mode 100644 index ec94dff..0000000 --- a/mods/Bypass Edge default handler.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Info] -DisplayName=Download MSEdgeRedirect -Publisher=https://github.com/AveYo/fox/blob/main/ChrEdgeFkOff.cmd -AboutScript=Certain elements of Windows 11, such as the News and interests widget, open links in Edge regardless of which browser is set as default. This is done through the use of edge:// protocol links. This mod intercepts URIs that force-open web links in Microsoft Edge and redirects it to the system's default web browser to revert to Edge as the default handler for web searches, all you have to do is run the script again. -ScriptLanguage=PowerShell -ConditionScript=bypass-edge_default_handler_web.ps1 -CreateNoWindow=true \ No newline at end of file diff --git a/mods/Chris Titus WinUtil.ini b/mods/Chris Titus WinUtil.ini deleted file mode 100644 index 76bb787..0000000 --- a/mods/Chris Titus WinUtil.ini +++ /dev/null @@ -1,12 +0,0 @@ -[Info] -DisplayName=Chris Titus Tech's Windows Utility - Install Programs, Tweaks, Fixes, and Updates -Publisher=https://github.com/ChrisTitusTech/winutil -AboutScript=This Utility is a compilation of windows tasks I perform on each Windows system I use. It is meant to streamline installs, debloat with tweaks, troubleshoot with config, and fix Windows updates. I am extremely picky on any contributions to keep this project clean and efficient. -ScriptLanguage=PowerShell -ConditionScript=ChrisTitusApp.ps1 -CreateNoWindow=true - - - - - diff --git a/mods/ChrisTitusApp.ps1 b/mods/ChrisTitusApp.ps1 deleted file mode 100644 index cbf43d9..0000000 --- a/mods/ChrisTitusApp.ps1 +++ /dev/null @@ -1 +0,0 @@ -irm christitus.com/win | iex \ No newline at end of file diff --git a/mods/Clean-up Windows.ini b/mods/Clean-up Windows.ini deleted file mode 100644 index e750157..0000000 --- a/mods/Clean-up Windows.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Info] -DisplayName=Run Microsoft Disk Clean-up aka cleanmgr.exe -Publisher=https://stackoverflow.com/questions/40534323/windows-update-cleanup-in-registry-editor/40537520#40537520 -AboutScript=This will use classic Disk clean-up utility aka Cleanmgr.exe to clear unnecessary files from your computer's hard disk instead of Microsoft's replacement "Storage Sense app" which is part of the Settings app. This script will use command-line options to specify that Cleanmgr.exe cleans up all areas expect Recycle Bin and Previous Windows Installations. -ScriptLanguage=PowerShell -ConditionScript=clean-up_windows.ps1 -CreateNoWindow=true diff --git a/mods/Clear event logs.ini b/mods/Clear event logs.ini deleted file mode 100644 index eca5d59..0000000 --- a/mods/Clear event logs.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Info] -DisplayName=Clear event logs -Publisher=Builtbybel -AboutScript=In some cases it is necessary to delete all entries from Windows event logs on a computer or a server. Of course, you can clear the system logs from the Event Viewer console GUI - Eventvwr.msc (right-click the log you would like to clear and select Clear Log). -ScriptLanguage=PowerShell -ConditionScript=clear-event_logs.ps1 -CreateNoWindow=true diff --git a/mods/Disable services.ini b/mods/Disable services.ini deleted file mode 100644 index 8ee842e..0000000 --- a/mods/Disable services.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Info] -DisplayName=Disable services -Publisher=https://nerdschalk.com/what-windows-11-services-to-disable-safely-and-how -AboutScript=This mod will turn off unnecessary Windows 11 services. A detailed explantation of each service can be found here: https://nerdschalk.com/what-windows-11-services-to-disable-safely-and-how -ScriptLanguage=PowerShell -ConditionScript=disable-services.ps1 -CreateNoWindow=true \ No newline at end of file diff --git a/mods/Remove OneDrive.ini b/mods/Remove OneDrive.ini deleted file mode 100644 index 3c7aa35..0000000 --- a/mods/Remove OneDrive.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Info] -DisplayName=Remove and disable OneDrive integration -Publisher=https://github.com/W4RH4WK/Debloat-Windows-10 -AboutScript=This script will remove and disable OneDrive integration. -ScriptLanguage=PowerShell -ConditionScript=remove_onedrive.ps1 -CreateNoWindow=true \ No newline at end of file diff --git a/mods/Remove telemetry of third-party apps.ini b/mods/Remove telemetry of third-party apps.ini deleted file mode 100644 index 6d4b511..0000000 --- a/mods/Remove telemetry of third-party apps.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Info] -DisplayName=Remove telemetry of third-party apps -Publisher=Builtbybel -AboutScript=This mod will block and disable telemetry features of the following apps:\n- Block Google Chrome Software Reporter Tool\n- Disable Mozilla Firefox telemetry\n- Disable CCleaner Monitoring\n- Disable Dropbox Update service\n- Disable Google Update service\n- Disable Media Player telemetry\n- Disable Microsoft Office telemetry -ScriptLanguage=PowerShell -ConditionScript=remove_telemetry-third-party-apps.ps1 -CreateNoWindow=true \ No newline at end of file diff --git a/mods/Restore In-box apps.ini b/mods/Restore In-box apps.ini deleted file mode 100644 index b69aed1..0000000 --- a/mods/Restore In-box apps.ini +++ /dev/null @@ -1,8 +0,0 @@ -[Info] -DisplayName=Reinstall all built-in apps -Publisher=Builtbybel -AboutScript=This mod will reinstall all built-in modern apps in a single step. This command will take a few moments and will reinstall all built-in apps. If you receive any error message, ignore it. You may need to restart the computer to take effect. -ScriptLanguage=PowerShell -ConditionScript=reinstall-inbox-apps.ps1 -CreateNoWindow=false -ScriptParam=-noexit \ No newline at end of file diff --git a/mods/Ultimate Performance Mode.ini b/mods/Ultimate Performance Mode.ini deleted file mode 100644 index 49c60a8..0000000 --- a/mods/Ultimate Performance Mode.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Info] -DisplayName=Enable Ultimate Performance Mode -Publisher=Builtbybel -AboutScript=Microsoft added the "Ultimate Performance mode" power scheme to Windows 10 April 2018 Update to optimize the system's performance, especially high-end PCs. The "Ultimate Performance" power plan option may not be available on some systems, especially if you are using a laptop. -ScriptLanguage=PowerShell -ConditionScript=ultimate_performance-mode.ps1 -CreateNoWindow=true \ No newline at end of file diff --git a/mods/Update Store apps.ini b/mods/Update Store apps.ini deleted file mode 100644 index 6173aac..0000000 --- a/mods/Update Store apps.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Info] -DisplayName=Update Microsoft Store apps -Publisher=Builtbybel -AboutScript=This mod will run an update check for Microsoft Store apps. -ScriptLanguage=PowerShell -ConditionScript=update_store-apps.ps1 -CreateNoWindow=true \ No newline at end of file diff --git a/mods/autologon.ps1 b/mods/autologon.ps1 deleted file mode 100644 index 796d3f8..0000000 --- a/mods/autologon.ps1 +++ /dev/null @@ -1,311 +0,0 @@ -[cmdletbinding()] -param ( - [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string] - $Username, - - [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [System.Security.SecureString] - $Password, - - [string] - $Domain, - - [Int] - $AutoLogonCount, - - [switch] - $RemoveLegalPrompt, - - [System.IO.FileInfo] - $BackupFile -) - -begin { - - [string] $WinlogonPath = "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" - [string] $WinlogonBannerPolicyPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" - - [string] $Enable = 1 - [string] $Disable = 0 - - #region C# Code to P-invoke LSA LsaStorePrivateData function. - Add-Type @" - using System; - using System.Collections.Generic; - using System.Text; - using System.Runtime.InteropServices; - - namespace ComputerSystem - { - public class LSAutil - { - [StructLayout(LayoutKind.Sequential)] - private struct LSA_UNICODE_STRING - { - public UInt16 Length; - public UInt16 MaximumLength; - public IntPtr Buffer; - } - - [StructLayout(LayoutKind.Sequential)] - private struct LSA_OBJECT_ATTRIBUTES - { - public int Length; - public IntPtr RootDirectory; - public LSA_UNICODE_STRING ObjectName; - public uint Attributes; - public IntPtr SecurityDescriptor; - public IntPtr SecurityQualityOfService; - } - - private enum LSA_AccessPolicy : long - { - POLICY_VIEW_LOCAL_INFORMATION = 0x00000001L, - POLICY_VIEW_AUDIT_INFORMATION = 0x00000002L, - POLICY_GET_PRIVATE_INFORMATION = 0x00000004L, - POLICY_TRUST_ADMIN = 0x00000008L, - POLICY_CREATE_ACCOUNT = 0x00000010L, - POLICY_CREATE_SECRET = 0x00000020L, - POLICY_CREATE_PRIVILEGE = 0x00000040L, - POLICY_SET_DEFAULT_QUOTA_LIMITS = 0x00000080L, - POLICY_SET_AUDIT_REQUIREMENTS = 0x00000100L, - POLICY_AUDIT_LOG_ADMIN = 0x00000200L, - POLICY_SERVER_ADMIN = 0x00000400L, - POLICY_LOOKUP_NAMES = 0x00000800L, - POLICY_NOTIFICATION = 0x00001000L - } - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaRetrievePrivateData( - IntPtr PolicyHandle, - ref LSA_UNICODE_STRING KeyName, - out IntPtr PrivateData - ); - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaStorePrivateData( - IntPtr policyHandle, - ref LSA_UNICODE_STRING KeyName, - ref LSA_UNICODE_STRING PrivateData - ); - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaOpenPolicy( - ref LSA_UNICODE_STRING SystemName, - ref LSA_OBJECT_ATTRIBUTES ObjectAttributes, - uint DesiredAccess, - out IntPtr PolicyHandle - ); - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaNtStatusToWinError( - uint status - ); - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaClose( - IntPtr policyHandle - ); - - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] - private static extern uint LsaFreeMemory( - IntPtr buffer - ); - - private LSA_OBJECT_ATTRIBUTES objectAttributes; - private LSA_UNICODE_STRING localsystem; - private LSA_UNICODE_STRING secretName; - - public LSAutil(string key) - { - if (key.Length == 0) - { - throw new Exception("Key lenght zero"); - } - - objectAttributes = new LSA_OBJECT_ATTRIBUTES(); - objectAttributes.Length = 0; - objectAttributes.RootDirectory = IntPtr.Zero; - objectAttributes.Attributes = 0; - objectAttributes.SecurityDescriptor = IntPtr.Zero; - objectAttributes.SecurityQualityOfService = IntPtr.Zero; - - localsystem = new LSA_UNICODE_STRING(); - localsystem.Buffer = IntPtr.Zero; - localsystem.Length = 0; - localsystem.MaximumLength = 0; - - secretName = new LSA_UNICODE_STRING(); - secretName.Buffer = Marshal.StringToHGlobalUni(key); - secretName.Length = (UInt16)(key.Length * UnicodeEncoding.CharSize); - secretName.MaximumLength = (UInt16)((key.Length + 1) * UnicodeEncoding.CharSize); - } - - private IntPtr GetLsaPolicy(LSA_AccessPolicy access) - { - IntPtr LsaPolicyHandle; - - uint ntsResult = LsaOpenPolicy(ref this.localsystem, ref this.objectAttributes, (uint)access, out LsaPolicyHandle); - - uint winErrorCode = LsaNtStatusToWinError(ntsResult); - if (winErrorCode != 0) - { - throw new Exception("LsaOpenPolicy failed: " + winErrorCode); - } - - return LsaPolicyHandle; - } - - private static void ReleaseLsaPolicy(IntPtr LsaPolicyHandle) - { - uint ntsResult = LsaClose(LsaPolicyHandle); - uint winErrorCode = LsaNtStatusToWinError(ntsResult); - if (winErrorCode != 0) - { - throw new Exception("LsaClose failed: " + winErrorCode); - } - } - - public void SetSecret(string value) - { - LSA_UNICODE_STRING lusSecretData = new LSA_UNICODE_STRING(); - - if (value.Length > 0) - { - //Create data and key - lusSecretData.Buffer = Marshal.StringToHGlobalUni(value); - lusSecretData.Length = (UInt16)(value.Length * UnicodeEncoding.CharSize); - lusSecretData.MaximumLength = (UInt16)((value.Length + 1) * UnicodeEncoding.CharSize); - } - else - { - //Delete data and key - lusSecretData.Buffer = IntPtr.Zero; - lusSecretData.Length = 0; - lusSecretData.MaximumLength = 0; - } - - IntPtr LsaPolicyHandle = GetLsaPolicy(LSA_AccessPolicy.POLICY_CREATE_SECRET); - uint result = LsaStorePrivateData(LsaPolicyHandle, ref secretName, ref lusSecretData); - ReleaseLsaPolicy(LsaPolicyHandle); - - uint winErrorCode = LsaNtStatusToWinError(result); - if (winErrorCode != 0) - { - throw new Exception("StorePrivateData failed: " + winErrorCode); - } - } - } - } -"@ - #endregion -} - -process { - - try { - $ErrorActionPreference = "Stop" - - $decryptedPass = [Runtime.InteropServices.Marshal]::PtrToStringAuto( - [Runtime.InteropServices.Marshal]::SecureStringToBSTR($Password) - ) - - if ($BackupFile) { - # Initialize the hash table with a string comparer to allow case sensitive keys. - # This allows differentiation between the winlogon and system policy logon banner strings. - $OrigionalSettings = New-Object System.Collections.Hashtable ([system.stringcomparer]::CurrentCulture) - - $OrigionalSettings.AutoAdminLogon = (Get-ItemProperty $WinlogonPath ).AutoAdminLogon - $OrigionalSettings.ForceAutoLogon = (Get-ItemProperty $WinlogonPath).ForceAutoLogon - $OrigionalSettings.DefaultUserName = (Get-ItemProperty $WinlogonPath).DefaultUserName - $OrigionalSettings.DefaultDomainName = (Get-ItemProperty $WinlogonPath).DefaultDomainName - $OrigionalSettings.DefaultPassword = (Get-ItemProperty $WinlogonPath).DefaultPassword - $OrigionalSettings.AutoLogonCount = (Get-ItemProperty $WinlogonPath).AutoLogonCount - - # The winlogon logon banner settings. - $OrigionalSettings.LegalNoticeCaption = (Get-ItemProperty $WinlogonPath).LegalNoticeCaption - $OrigionalSettings.LegalNoticeText = (Get-ItemProperty $WinlogonPath).LegalNoticeText - - # The system policy logon banner settings. - $OrigionalSettings.legalnoticecaption = (Get-ItemProperty $WinlogonBannerPolicyPath).legalnoticecaption - $OrigionalSettings.legalnoticetext = (Get-ItemProperty $WinlogonBannerPolicyPath).legalnoticetext - - $OrigionalSettings | Export-Clixml -Depth 10 -Path $BackupFile - } - - # Store the password securely. - $lsaUtil = New-Object ComputerSystem.LSAutil -ArgumentList "DefaultPassword" - $lsaUtil.SetSecret($decryptedPass) - - # Store the autologon registry settings. - Set-ItemProperty -Path $WinlogonPath -Name AutoAdminLogon -Value $Enable -Force - - Set-ItemProperty -Path $WinlogonPath -Name DefaultUserName -Value $Username -Force - Set-ItemProperty -Path $WinlogonPath -Name DefaultDomainName -Value $Domain -Force - - if ($AutoLogonCount) { - Set-ItemProperty -Path $WinlogonPath -Name AutoLogonCount -Value $AutoLogonCount -Force - } else { - Remove-ItemProperty -Path $WinlogonPath -Name AutoLogonCount -ErrorAction SilentlyContinue - } - - if ($RemoveLegalPrompt) { - Set-ItemProperty -Path $WinlogonPath -Name LegalNoticeCaption -Value $null -Force - Set-ItemProperty -Path $WinlogonPath -Name LegalNoticeText -Value $null -Force - - Set-ItemProperty -Path $WinlogonBannerPolicyPath -Name legalnoticecaption -Value $null -Force - Set-ItemProperty -Path $WinlogonBannerPolicyPath -Name legalnoticetext -Value $null -Force - } - } catch { - throw 'Failed to set auto logon. The error was: "{0}".' -f $_ - } - -} - -<# - .SYNOPSIS - Enables auto logon using the specified username and password. - - .PARAMETER Username - The username of the user to automatically logon as. - - .PARAMETER Password - The password for the user to automatically logon as. - - .PARAMETER Domain - The domain of the user to automatically logon as. - - .PARAMETER AutoLogonCount - The number of logons that auto logon will be enabled. - - .PARAMETER RemoveLegalPrompt - Removes the system banner to ensure interventionless logon. - - .PARAMETER BackupFile - If specified the existing settings such as the system banner text will be backed up to the specified file. - - .EXAMPLE - PS C:\> Set-SecureAutoLogon ` - -Username $env:USERNAME ` - -Password (Read-Host -AsSecureString) ` - -AutoLogonCount 2 ` - -RemoveLegalPrompt ` - -BackupFile "C:\WinlogonBackup.xml" - - .INPUTS - None. - - .OUTPUTS - None. - - .NOTES - Revision History: - 2011-04-19 : Andy Arismendi - Created. - 2011-09-29 : Andy Arismendi - Changed to use LSA secrets to store password securely. - - .LINK - http://support.microsoft.com/kb/324737 - - .LINK - http://msdn.microsoft.com/en-us/library/aa378750 - -#> \ No newline at end of file diff --git a/mods/backup-edge_chromium-bookmarks.ps1 b/mods/backup-edge_chromium-bookmarks.ps1 deleted file mode 100644 index cdeb286..0000000 --- a/mods/backup-edge_chromium-bookmarks.ps1 +++ /dev/null @@ -1,87 +0,0 @@ -# Read EdgeChromium Bookmarks (JSON File) and Export/Backup to HTML File -# Gunnar Haslinger, 30.10.2019 - tested width EdgeChromium Beta 78 -# SCCMOG - Richie Schuster, 2022.02.08 - Tested with Edge Chromium 98.0.1108.43 - https://github.com/SCCMOG - SCCMOG.com - -# Path to EdgeChromium Bookmarks File and HTML Export -$JSON_File_Path = "$($env:localappdata)\Microsoft\Edge\User Data\Profile 1\Bookmarks" -$ExportedTime = Get-Date -Format 'yyyy-MM-dd_HH.mm' -$HTML_File_Root = $DesktopPath = [Environment]::GetFolderPath("Desktop") -$HTML_File_Path = "$($HTML_File_Root)\EdgeChromium-Bookmarks.backup_$($ExportedTime).html" -# Reference-Timestamp needed to convert Timestamps of JSON (Milliseconds / Ticks since LDAP / NT epoch 01.01.1601 00:00:00 UTC) to Unix-Timestamp (Epoch) -$Date_LDAP_NT_EPOCH = Get-Date -Year 1601 -Month 1 -Day 1 -Hour 0 -Minute 0 -Second 0 - -if (!(Test-Path -Path $JSON_File_Path -PathType Leaf)) { - throw "Source-File Path $JSON_File_Path does not exist!" -} -if (!(Test-Path -Path $HTML_File_Root -PathType Container)) { - throw "Destination-Root Path $HTML_File_Root does not exist!" -} - -# ---- HTML Header ---- -$BookmarksHTML_Header = @' - - - -
-'@ - -$BookmarksHTML_Header | Out-File -FilePath $HTML_File_Path -Force -Encoding utf8 - -# ---- Enumerate Bookmarks Folders ---- -Function Get-BookmarkFolder { - [cmdletbinding()] - Param( - [Parameter(Position = 0, ValueFromPipeline = $True)] - $Node - ) - function ConvertTo-UnixTimeStamp { - param( - [Parameter(Position = 0, ValueFromPipeline = $True)] - $TimeStamp - ) - $date = [Decimal] $TimeStamp - if ($date -gt 0) { - $date = $Date_LDAP_NT_EPOCH.AddTicks($date * 10) - $date = $date | Get-Date -UFormat %s - $unixTimeStamp = [int][double]::Parse($date) - 1 - return $unixTimeStamp - } - } - if ($node.name -like "Favorites Bar") { - $DateAdded = [Decimal] $node.date_added | ConvertTo-UnixTimeStamp - $DateModified = [Decimal] $node.date_modified | ConvertTo-UnixTimeStamp - "
" | Out-File -FilePath $HTML_File_Path -Append -Force -Encoding utf8 - } - foreach ($child in $node.children) { - $DateAdded = [Decimal] $child.date_added | ConvertTo-UnixTimeStamp - $DateModified = [Decimal] $child.date_modified | ConvertTo-UnixTimeStamp - if ($child.type -eq 'folder') { - "
" | Out-File -FilePath $HTML_File_Path -Append -Force -Encoding utf8 - Get-BookmarkFolder $child # Recursive call in case of Folders / SubFolders - "
" | Out-File -FilePath $HTML_File_Path -Append -Force -Encoding utf8 - } - else { - # Type not Folder => URL - "
" | Out-File -FilePath $HTML_File_Path -Append -Force -Encoding utf8 - } -} - -# ---- Convert the JSON Contens (recursive) ---- -$data = Get-content $JSON_File_Path -Encoding UTF8 | out-string | ConvertFrom-Json -$sections = $data.roots.PSObject.Properties | Select-Object -ExpandProperty name -ForEach ($entry in $sections) { - $data.roots.$entry | Get-BookmarkFolder -} - -# ---- HTML Footer ---- -'