winutil/functions/private/Invoke-WinUtilCurrentSystem.ps1
Chris Titus 68927444b6
05 16 23 testing (#881)
* Fix power profile (#766) (#767)

* Fix power profile query

* fix syntax

* fix

* Update Invoke-WPFUltimatePerformance.ps1

* Update winutil.ps1

* power profile fix

* add reset network with netsh (#768)

* add verbose logon (#773)

* add verbose logon

Enable or disable verbose sign in status messages. Verbose status messages may be helpful when you are troubleshooting slow startup, shutdown, logon, or logoff behavior.

* compress-into-one-checkbox

* compile winutil.ps1

* Update README.md (#774)

* Update README.md

* Update README.md

* Adding 3 programs to the install tab (#789)

* Prism Launcher - Custom FOSS minecraft launcher

* Gsudo - Command line program that allows you to elevate a program as admin.

* WingetUI - Graphical front end for winget, chochlatey and scoop

Co-authored-by: Chris Titus <contact@christitus.com>

* add undoscript feature + implement it on every tweaks (#776)

* add undoscript feature + implement it on right click menu

- add undoscript feature
- add undo for right click menu to go back to windows 11 default right click menu by implementing undoscript feature

* undoscript for WPFMiscTweaksDisplay

* undoscript for WPFEssTweaksRemoveEdge

* undoscript for WPFEssTweaksRemoveCortana

* undoscript for WPFEssTweaksStorage

* Update Invoke-WinUtilTweaks.ps1

thanks to @DeveloperDurp

* compile

* Fix packages name (#815)

* fix-winrar_package_name

* fix-vc++_package_name

* fix #687

* implement check for admin (#818)

check if script is running as admin or not and if not then it attempt to relaunch with admin privilege.

* add "NetFx4Extended-ASPNET45" under dotnet features (#831)

* add-docker-desktop (#834)

Co-authored-by: Chris Titus <contact@christitus.com>

* Fix 'Get Installed' for multiple-dependency apps (#835)

* Update winutil.ps1 (#858)

fix typos

* Fixing AcceptEULA on Autologin

* Program Update: Replace Origin with EA App #544 (#875)

* New Theme support, initial functions.  (#878)

* Fix power profile (#766)

* Fix power profile query

* fix syntax

* fix

* Update Invoke-WPFUltimatePerformance.ps1

* Update winutil.ps1

* power profile fix

* Adding Nomacs Opensource free and fast Image viewer

* Adding theme support

Later when this is tested well, we can do one of 2 things.
1. Pass theme on a command line so people with bad vision will have an option to have a better (more visible theme)
2. Create a drop down with themes and a save button which would save it ti some local config file

* Fix for the compile script

---------

Co-authored-by: Chris Titus <contact@christitus.com>

* Dark Mode Enable

* auto detect theme

---------

Co-authored-by: Padsala Tushal <57517785+padsalatushal@users.noreply.github.com>
Co-authored-by: Taken <taken@mairimashita.org>
Co-authored-by: Yurin Doctrine <bayramyurgidenn@gmail.com>
Co-authored-by: Aaron <54756786+AaronVickers@users.noreply.github.com>
Co-authored-by: Sahil Jassal <56100355+shljsl75891@users.noreply.github.com>
Co-authored-by: supplefrog <78985073+supplefrog@users.noreply.github.com>
Co-authored-by: KonTy <9524513+KonTy@users.noreply.github.com>
2023-07-13 15:46:00 -05:00

105 lines
3.7 KiB
PowerShell

Function Invoke-WinUtilCurrentSystem {
<#
.DESCRIPTION
Function is meant to read existing system registry and check according configuration.
Example: Is telemetry enabled? check the box.
.EXAMPLE
Get-WinUtilCheckBoxes "WPFInstall"
#>
param(
$CheckBox
)
if ($checkbox -eq "winget"){
$originalEncoding = [Console]::OutputEncoding
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
$Sync.InstalledPrograms = winget list -s winget | Select-Object -skip 3 | ConvertFrom-String -PropertyNames "Name", "Id", "Version", "Available" -Delimiter '\s{2,}'
[Console]::OutputEncoding = $originalEncoding
$filter = Get-WinUtilVariables -Type Checkbox | Where-Object {$psitem -like "WPFInstall*"}
$sync.GetEnumerator() | Where-Object {$psitem.Key -in $filter} | ForEach-Object {
$dependencies = $($sync.configs.applications.$($psitem.Key).winget -split ";")
Foreach ($dependency in $dependencies) {
if($dependency -in $sync.InstalledPrograms.Id){
Write-Output $psitem.name
}
}
}
}
if($CheckBox -eq "tweaks"){
if(!(Test-Path 'HKU:\')){New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS}
$ScheduledTasks = Get-ScheduledTask
$sync.configs.tweaks | Get-Member -MemberType NoteProperty | ForEach-Object {
$Config = $psitem.Name
#WPFEssTweaksTele
$registryKeys = $sync.configs.tweaks.$Config.registry
$scheduledtaskKeys = $sync.configs.tweaks.$Config.scheduledtask
$serviceKeys = $sync.configs.tweaks.$Config.service
if($registryKeys -or $scheduledtaskKeys -or $serviceKeys){
$Values = @()
Foreach ($tweaks in $registryKeys){
Foreach($tweak in $tweaks){
if(test-path $tweak.Path){
$actualValue = Get-ItemProperty -Name $tweak.Name -Path $tweak.Path -ErrorAction SilentlyContinue | Select-Object -ExpandProperty $($tweak.Name)
$expectedValue = $tweak.Value
if ($expectedValue -notlike $actualValue){
$values += $False
}
}
}
}
Foreach ($tweaks in $scheduledtaskKeys){
Foreach($tweak in $tweaks){
$task = $ScheduledTasks | Where-Object {$($psitem.TaskPath + $psitem.TaskName) -like "\$($tweak.name)"}
if($task){
$actualValue = $task.State
$expectedValue = $tweak.State
if ($expectedValue -ne $actualValue){
$values += $False
}
}
}
}
Foreach ($tweaks in $serviceKeys){
Foreach($tweak in $tweaks){
$Service = Get-Service -Name $tweak.Name
if($Service){
$actualValue = $Service.StartType
$expectedValue = $tweak.StartupType
if ($expectedValue -ne $actualValue){
$values += $False
}
}
}
}
if($values -notcontains $false){
Write-Output $Config
}
}
}
}
}