* xml decouple

* Typos: Documents, Start installs (#18)

Document -> Documents
Start install -> Start installs

Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* Added DISM command and button to tool (#19)

* Added DISM command and button to tool

* Added additional scans and colours to make it clear when each scan type starts

Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* Fix issue in #14 (#20)

* Fix issue in #14

 - It seems that Chris forgot to add a button for the Repair Windows Update Script and accidentally put it under the Default Windows Update Settings button.
   - Fixed by adding the $WPFFixesUpdate.Add_Click function before the Reset Script
   - Fixes #14

* decoupling xaml and ps1 (#7)

Co-authored-by: Chris Titus <dfm.titus@gmail.com>

Co-authored-by: Rahul Somasundaram <rahulstsgr@gmail.com>
Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* Add winget check and installer (#21)

* Add winget check and installer

 - Adds Check if winget is installed
   - If not installed, checks if the computer is running 1809+ and if the computer is running Windows Server or LTSC
    - If running pre-1809, winget install stops as it is not supported
    - If running Windows Server or Windows LTSC, runs alternative installer compatible with those editions of Windows

* decoupling xaml and ps1 (#7)

Co-authored-by: Chris Titus <dfm.titus@gmail.com>

Co-authored-by: Rahul Somasundaram <rahulstsgr@gmail.com>
Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* Small Fixes. (#22)

* Update winutil.ps1

* Use Curl instead of Bits transfer for O&O Shutup.

* Update winutil.ps1

* decoupling xaml and ps1 (#7)

Co-authored-by: Chris Titus <dfm.titus@gmail.com>

Co-authored-by: Rahul Somasundaram <rahulstsgr@gmail.com>
Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* upload example (#12)

Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* code format using powershell VS code extension (#28)

* Working runspaces (#32)

* upload example

* decoupling xaml and ps1 (#7)

Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* Update README.md

* convert to runspaces

* add security updates to invoke-button

* Update README.md

removed extra text about test branch

* initial commit to test restmethod

* formatting

Co-authored-by: Rahul Somasundaram <rahulstsgr@gmail.com>
Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* Fix bug in #39 (#40)

- Closes #39
  - $arch is not set to a value in the script, and it throws an error when the If-Statement is called
    - Fixed by replacing the $arch variable check with a wmic check

* Fix and Tweak #19 (#43)

* Fix Issue in #19

 - Pull Request #19 didn't add an entry for PanelDISM into MainWindow.xaml, causing an error to be thrown when the script if executed and a button to not be created
   - Fixed by adding an entry into MainWIndow.xaml that creates the needed button under the FixesUpdate button
   - Note: To see the fix, you need to comment line 9 and uncomment line 8 to use the local MainWindow.xaml instead of the one in the Main Branch

* Fix Formatting and Tweak Things

 - Fixed the formatting
 - Tweaked Write-Host's
   - Added newlines (`n) to space out the Statuses
   - Added progress indicators
     - Required "s and 's to be swapped so x/4 does not perform an operation

* Slight Tweak

* Added Uncheck all button in the Install tab (#29)

* Revert "Added Uncheck all button in the Install tab (#29)" (#72)

This reverts commit 833837155a.

* Throw warning if no programs are selected for installation (#30)

Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* Fix a few spelling errors (#44)

- Fixed a few spelling errors
   - dependancies -> dependencies
   - Evnronment -> Environment
   - haved -> have
   - Hibernte -> Hibernate
   - histroy -> history
   - extentions -> extensions

* Arguments (#52)

* Implement Arguments

- Using $env:args, the script scans for arguments; then if found, Invokes the Runspace associated with said arg. Or in the case of the old panels, just opens the panel.
  - \b is to prevent mutual words from causing issues (Ex: Install and InstallUpgrade would conflict without \b)

* Actually add \b

Forgot to save before previous commit  : |

* Fix Order Issue

- The arg check occurred too early, causing an error

* Remove Invoke-Runspace

- Replaced Invoke-Runspace with Invoke-Command as there is no need to worry about the gui when running unattended

* Add Program Install Arg Check

 - Added arg check for Install
   - Format is 'Install: company.program,.company.program2'

Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* Replace all instances of "incase" to "in case" (#60)

Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* Added  -NoRestart to WindowsOptionalFeature (#65)

* Handled UAC exit on install and upgrade (#31)

Co-authored-by: ChrisTitusTech <dfm.titus@gmail.com>
Co-authored-by: Ayoub Hebbaj <30575106+M3nti0nL3Ss@users.noreply.github.com>
Co-authored-by: Jards <jordancattwood@hotmail.com>
Co-authored-by: Carter <60557606+Carterpersall@users.noreply.github.com>
Co-authored-by: Rahul Somasundaram <rahulstsgr@gmail.com>
Co-authored-by: Aetopia <41850963+Aetopia@users.noreply.github.com>
Co-authored-by: DeveloperDurp <74198206+DeveloperDurp@users.noreply.github.com>
Co-authored-by: Rahul Somasundaram <ssrahul96@gmail.com>
Co-authored-by: GrahamboJangles <36944031+GrahamboJangles@users.noreply.github.com>
Co-authored-by: PWall <34860495+pwall2222@users.noreply.github.com>
This commit is contained in:
Frank L Kaplan 2022-09-05 11:32:48 -07:00 committed by GitHub
parent bf1d455f80
commit fecc54d71d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 2899 additions and 3000 deletions

View File

@ -197,6 +197,7 @@
<Button Name="FeatureInstall" FontSize="14" Background="AliceBlue" Content="Install Features" Margin="20,5,20,0" Padding="10"/>
<Label Content="Fixes" FontSize="16"/>
<Button Name="FixesUpdate" FontSize="14" Background="AliceBlue" Content="Reset Windows Update" Margin="20,5,20,0" Padding="10"/>
<Button Name="PanelDISM" FontSize="14" Background="AliceBlue" Content="System Corruption Scan" Margin="20,5,20,0" Padding="10"/>
</StackPanel>
<StackPanel Background="#777777" SnapsToDevicePixels="True" Grid.Column="1" Margin="10,5">

229
applications.json Normal file
View File

@ -0,0 +1,229 @@
{
"install": {
"Installadobe": {
"winget": "Adobe.Acrobat.Reader.64-bit"
},
"Installadvancedip": {
"winget": "Famatech.AdvancedIPScanner"
},
"Installanydesk": {
"winget": "AnyDeskSoftwareGmbH.AnyDesk"
},
"Installatom": {
"winget": "GitHub.Atom"
},
"Installaudacity": {
"winget": "Audacity.Audacity"
},
"Installautohotkey": {
"winget": "Lexikos.AutoHotkey"
},
"Installbitwarden": {
"winget": "Bitwarden.Bitwarden"
},
"Installblender": {
"winget": "BlenderFoundation.Blender"
},
"Installbrave": {
"winget": "BraveSoftware.BraveBrowser"
},
"Installchrome": {
"winget": "Google.Chrome"
},
"Installchromium": {
"winget": "eloston.ungoogled-chromium"
},
"Installcpuz": {
"winget": "CPUID.CPU-Z"
},
"Installdiscord": {
"winget": "Discord.Discord"
},
"Installeartrumpet": {
"winget": "File-New-Project.EarTrumpet"
},
"Installepicgames": {
"winget": "EpicGames.EpicGamesLauncher"
},
"Installesearch": {
"winget": "voidtools.Everything --source winget"
},
"Installetcher": {
"winget": "Balena.Etcher"
},
"Installfirefox": {
"winget": "Mozilla.Firefox"
},
"Installflameshot": {
"winget": "Flameshot.Flameshot"
},
"Installfoobar": {
"winget": "PeterPawlowski.foobar2000"
},
"Installgimp": {
"winget": "GIMP.GIMP"
},
"Installgithubdesktop": {
"winget": "Git.Git;GitHub.GitHubDesktop"
},
"Installgog": {
"winget": "GOG.Galaxy"
},
"Installgpuz": {
"winget": "TechPowerUp.GPU-Z"
},
"Installgreenshot": {
"winget": "Greenshot.Greenshot"
},
"Installhandbrake": {
"winget": "HandBrake.HandBrake"
},
"Installhexchat": {
"winget": "HexChat.HexChat"
},
"Installhwinfo": {
"winget": "REALiX.HWiNFO"
},
"Installimageglass": {
"winget": "DuongDieuPhap.ImageGlass"
},
"Installinkscape": {
"winget": "Inkscape.Inkscape"
},
"Installjava16": {
"winget": "AdoptOpenJDK.OpenJDK.16"
},
"Installjava18": {
"winget": "Oracle.JDK.18"
},
"Installjava8": {
"winget": "AdoptOpenJDK.OpenJDK.8"
},
"Installjetbrains": {
"winget": "JetBrains.Toolbox"
},
"Installkeepass": {
"winget": "KeePassXCTeam.KeePassXC"
},
"Installlibrewolf": {
"winget": "LibreWolf.LibreWolf"
},
"Installmalwarebytes": {
"winget": "Malwarebytes.Malwarebytes"
},
"Installmatrix": {
"winget": "Element.Element"
},
"Installmpc": {
"winget": "clsid2.mpc-hc"
},
"Installmremoteng": {
"winget": "mRemoteNG.mRemoteNG"
},
"Installnodejs": {
"winget": "OpenJS.NodeJS"
},
"Installnodejslts": {
"winget": "OpenJS.NodeJS.LTS"
},
"Installnotepadplus": {
"winget": "Notepad++.Notepad++"
},
"Installnvclean": {
"winget": "TechPowerUp.NVCleanstall"
},
"Installobs": {
"winget": "OBSProject.OBSStudio"
},
"Installobsidian": {
"winget": "Obsidian.Obsidian"
},
"Installpowertoys": {
"winget": "Microsoft.PowerToys"
},
"Installputty": {
"winget": "PuTTY.PuTTY"
},
"Installpython3": {
"winget": "Python.Python.3"
},
"Installrevo": {
"winget": "RevoUninstaller.RevoUninstaller"
},
"Installrufus": {
"winget": "Rufus.Rufus"
},
"Installsevenzip": {
"winget": "7zip.7zip"
},
"Installsharex": {
"winget": "ShareX.ShareX"
},
"Installsignal": {
"winget": "OpenWhisperSystems.Signal"
},
"Installskype": {
"winget": "Microsoft.Skype"
},
"Installslack": {
"winget": "SlackTechnologies.Slack"
},
"Installspotify": {
"winget": "Spotify.Spotify"
},
"Installsteam": {
"winget": "Valve.Steam"
},
"Installsublime": {
"winget": "SublimeHQ.SublimeText.4"
},
"Installsumatra": {
"winget": "SumatraPDF.SumatraPDF"
},
"Installteams": {
"winget": "Microsoft.Teams"
},
"Installteamviewer": {
"winget": "TeamViewer.TeamViewer"
},
"Installterminal": {
"winget": "Microsoft.WindowsTerminal"
},
"Installtreesize": {
"winget": "JAMSoftware.TreeSize.Free"
},
"Installttaskbar": {
"winget": "TranslucentTB.TranslucentTB"
},
"Installvisualstudio": {
"winget": "Microsoft.VisualStudio.2022.Community"
},
"Installvivaldi": {
"winget": "VivaldiTechnologies.Vivaldi"
},
"Installvlc": {
"winget": "VideoLAN.VLC"
},
"Installvoicemeeter": {
"winget": "VB-Audio.Voicemeeter"
},
"Installvscode": {
"winget": "Git.Git;Microsoft.VisualStudioCode --source winget"
},
"Installvscodium": {
"winget": "Git.Git;VSCodium.VSCodium"
},
"Installwindirstat": {
"winget": "WinDirStat.WinDirStat"
},
"Installwinscp": {
"winget": "WinSCP.WinSCP"
},
"Installwireshark": {
"winget": "WiresharkFoundation.Wireshark"
},
"Installzoom": {
"winget": "Zoom.Zoom"
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -22,7 +22,8 @@ catch [System.Management.Automation.MethodInvocationException] {
write-warning "Ensure your &lt;button in the `$inputXML does NOT have a Click=ButtonClick property. PS can't handle this`n`n`n`n"
}
}
catch{# If it broke some other way <img draggable="false" role="img" class="emoji" alt="😀" src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/svg/1f600.svg">
catch {
# If it broke some other way <img draggable="false" role="img" class="emoji" alt="😀" src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/svg/1f600.svg">
Write-Host "Unable to load Windows.Markup.XamlReader. Double-check syntax and ensure .net is installed."
}
@ -40,6 +41,12 @@ get-variable WPF*
Get-FormVariables
#===========================================================================
# Global Variables
#===========================================================================
$AppTitle = "Chris Titus Tech's Windows Utility"
#===========================================================================
# Navigation Controls
#===========================================================================
@ -378,37 +385,111 @@ $WPFinstall.Add_Click({
$WPFInstallzoom.IsChecked = $false
}
# Check if winget is installed
Write-Host "Checking if Winget is Installed..."
if (Test-Path ~\AppData\Local\Microsoft\WindowsApps\winget.exe) {
#Checks if winget executable exists and if the Windows Version is 1809 or higher
Write-Host "Winget Already Installed"
}
else {
if (((((Get-ComputerInfo).OSName.IndexOf("LTSC")) -ne -1) -or ((Get-ComputerInfo).OSName.IndexOf("Server") -ne -1)) -and (((Get-ComputerInfo).WindowsVersion) -ge "1809")) {
#Checks if Windows edition is LTSC/Server 2019+
#Manually Installing Winget
Write-Host "Running Alternative Installer for LTSC/Server Editions"
#Download Needed Files
Write-Host "Downloading Needed Files..."
Start-BitsTransfer -Source "https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx" -Destination "./Microsoft.VCLibs.x64.14.00.Desktop.appx"
Start-BitsTransfer -Source "https://github.com/microsoft/winget-cli/releases/download/v1.2.10271/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle" -Destination "./Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
Start-BitsTransfer -Source "https://github.com/microsoft/winget-cli/releases/download/v1.2.10271/b0a0692da1034339b76dce1c298a1e42_License1.xml" -Destination "./b0a0692da1034339b76dce1c298a1e42_License1.xml"
#Installing Packages
Write-Host "Installing Packages..."
Add-AppxProvisionedPackage -Online -PackagePath ".\Microsoft.VCLibs.x64.14.00.Desktop.appx" -SkipLicense
Add-AppxProvisionedPackage -Online -PackagePath ".\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle" -LicensePath ".\b0a0692da1034339b76dce1c298a1e42_License1.xml"
Write-Host "winget Installed (Reboot might be required before winget will work)"
#Sleep for 5 seconds to maximize chance that winget will work without reboot
Write-Host "Pausing for 5 seconds to maximize chance that winget will work without reboot"
Start-Sleep -s 5
#Removing no longer needed Files
Write-Host "Removing no longer needed Files..."
Remove-Item -Path ".\Microsoft.VCLibs.x64.14.00.Desktop.appx" -Force
Remove-Item -Path ".\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle" -Force
Remove-Item -Path ".\b0a0692da1034339b76dce1c298a1e42_License1.xml" -Force
Write-Host "Removed Files that are no longer needed"
}
elseif (((Get-ComputerInfo).WindowsVersion) -lt "1809") {
#Checks if Windows Version is too old for winget
Write-Host "Winget is not supported on this version of Windows (Pre-1809)"
}
else {
#Installing Winget from the Microsoft Store
Write-Host "Winget not found, installing it now."
Start-Process "ms-appinstaller:?source=https://aka.ms/getwinget"
$nid = (Get-Process AppInstaller).Id
Wait-Process -Id $nid
Write-Host "Winget Installed"
}
}
if ($wingetinstall.Count -eq 0) {
$WarningMsg = "Please select the program(s) to install"
[System.Windows.MessageBox]::Show($WarningMsg, $AppTitle, [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
return
}
# Install all winget programs in new window
$wingetinstall.ToArray()
# Define Output variable
$wingetResult = New-Object System.Collections.Generic.List[System.Object]
foreach ( $node in $wingetinstall )
{
foreach ( $node in $wingetinstall ) {
try {
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command winget install -e --accept-source-agreements --accept-package-agreements --silent $node | Out-Host" -Wait -WindowStyle Maximized
$wingetResult.Add("$node`n")
}
catch [System.InvalidOperationException] {
Write-Warning "Allow Yes on User Access Control to Install"
}
catch {
Write-Error $_.Exception
}
}
$wingetResult.ToArray()
$wingetResult | % { $_ } | Out-Host
# Popup after finished
$ButtonType = [System.Windows.MessageBoxButton]::OK
$MessageboxTitle = "Installed Programs "
$Messageboxbody = ($wingetResult)
if ($wingetResult -ne "") {
$Messageboxbody = "Installed Programs `n$($wingetResult)"
}
else {
$Messageboxbody = "No Program(s) are installed"
}
$MessageIcon = [System.Windows.MessageBoxImage]::Information
[System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$MessageIcon)
[System.Windows.MessageBox]::Show($Messageboxbody, $AppTitle, $ButtonType, $MessageIcon)
})
$WPFInstallUpgrade.Add_Click({
$isUpgradeSuccess = $false
try {
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command winget upgrade --all | Out-Host" -Wait -WindowStyle Maximized
$isUpgradeSuccess = $true
}
catch [System.InvalidOperationException] {
Write-Warning "Allow Yes on User Access Control to Upgrade"
}
catch {
Write-Error $_.Exception
}
$ButtonType = [System.Windows.MessageBoxButton]::OK
$MessageboxTitle = "Upgraded All Programs "
$Messageboxbody = ("Done")
$Messageboxbody = if($isUpgradeSuccess) {"Upgrade Done"} else {"Upgrade was not succesful"}
$MessageIcon = [System.Windows.MessageBoxImage]::Information
[System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$MessageIcon)
[System.Windows.MessageBox]::Show($Messageboxbody, $AppTitle, $ButtonType, $MessageIcon)
})
#===========================================================================
@ -523,9 +604,8 @@ $WPFtweaksbutton.Add_Click({
}
If ( $WPFEssTweaksOO.IsChecked -eq $true ) {
Write-Host "Running O&O Shutup with Recommended Settings"
Import-Module BitsTransfer
Start-BitsTransfer -Source "https://raw.githubusercontent.com/ChrisTitusTech/win10script/master/ooshutup10.cfg" -Destination ooshutup10.cfg
Start-BitsTransfer -Source "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -Destination OOSU10.exe
curl.exe -ss "https://raw.githubusercontent.com/ChrisTitusTech/win10script/master/ooshutup10.cfg" -o ooshutup10.cfg
curl.exe -ss "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -o OOSU10.exe
./OOSU10.exe ooshutup10.cfg /quiet
$WPFEssTweaksOO.IsChecked = $false
}
@ -715,7 +795,8 @@ $WPFtweaksbutton.Add_Click({
Stop-Process $taskmgr
$preferences.Preferences[28] = 0
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -Type Binary -Value $preferences.Preferences
} else {Write-Host "Task Manager patch not run in builds 22557+ due to bug"}
}
else { Write-Host "Task Manager patch not run in builds 22557+ due to bug" }
Write-Host "Showing file operations details..."
If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager")) {
@ -741,7 +822,7 @@ $WPFtweaksbutton.Add_Click({
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile" -Name "SystemResponsiveness" -Type DWord -Value 0000000a
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile" -Name "NetworkThrottlingIndex" -Type DWord -Value 0000000a
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control" -Name "WaitToKillServiceTimeout" -Type DWord -Value 2000
Set-ItemProperty -Path "HKLM:\Control Panel\Desktop" -Name "MenuShowDelay" -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\Control Panel\Desktop" -Name "MenuShowDelay" -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\Control Panel\Desktop" -Name "WaitToKillAppTimeout" -Type DWord -Value 5000
Set-ItemProperty -Path "HKLM:\Control Panel\Desktop" -Name "HungAppTimeout" -Type DWord -Value 4000
Set-ItemProperty -Path "HKLM:\Control Panel\Desktop" -Name "AutoEndTasks" -Type DWord -Value 1
@ -1101,36 +1182,36 @@ $WPFundoall.Add_Click({
$WPFFeatureInstall.Add_Click({
If ( $WPFFeaturesdotnet.IsChecked -eq $true ) {
Enable-WindowsOptionalFeature -Online -FeatureName "NetFx4-AdvSrvs" -All
Enable-WindowsOptionalFeature -Online -FeatureName "NetFx3" -All
Enable-WindowsOptionalFeature -Online -FeatureName "NetFx4-AdvSrvs" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "NetFx3" -All -NoRestart
}
If ( $WPFFeatureshyperv.IsChecked -eq $true ) {
Enable-WindowsOptionalFeature -Online -FeatureName "HypervisorPlatform" -All
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-All" -All
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V" -All
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Tools-All" -All
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Management-PowerShell" -All
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Hypervisor" -All
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Services" -All
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Management-Clients" -All
Enable-WindowsOptionalFeature -Online -FeatureName "HypervisorPlatform" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-All" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Tools-All" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Management-PowerShell" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Hypervisor" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Services" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Management-Clients" -All -NoRestart
cmd /c bcdedit /set hypervisorschedulertype classic
Write-Host "HyperV is now installed and configured. Please Reboot before using."
}
If ( $WPFFeatureslegacymedia.IsChecked -eq $true ) {
Enable-WindowsOptionalFeature -Online -FeatureName "WindowsMediaPlayer" -All
Enable-WindowsOptionalFeature -Online -FeatureName "MediaPlayback" -All
Enable-WindowsOptionalFeature -Online -FeatureName "DirectPlay" -All
Enable-WindowsOptionalFeature -Online -FeatureName "LegacyComponents" -All
Enable-WindowsOptionalFeature -Online -FeatureName "WindowsMediaPlayer" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "MediaPlayback" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "DirectPlay" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "LegacyComponents" -All -NoRestart
}
If ( $WPFFeaturewsl.IsChecked -eq $true ) {
Enable-WindowsOptionalFeature -Online -FeatureName "VirtualMachinePlatform" -All
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux" -All
Enable-WindowsOptionalFeature -Online -FeatureName "VirtualMachinePlatform" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux" -All -NoRestart
Write-Host "WSL is now installed and configured. Please Reboot before using."
}
If ( $WPFFeaturenfs.IsChecked -eq $true ) {
Enable-WindowsOptionalFeature -Online -FeatureName "ServicesForNFS-ClientOnly" -All
Enable-WindowsOptionalFeature -Online -FeatureName "ClientForNFS-Infrastructure" -All
Enable-WindowsOptionalFeature -Online -FeatureName "NFS-Administration" -All
Enable-WindowsOptionalFeature -Online -FeatureName "ServicesForNFS-ClientOnly" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "ClientForNFS-Infrastructure" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "NFS-Administration" -All -NoRestart
nfsadmin client stop
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" -Name "AnonymousUID" -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" -Name "AnonymousGID" -Type DWord -Value 0
@ -1146,6 +1227,14 @@ $WPFFeatureInstall.Add_Click({
[System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon)
})
$WPFPanelDISM.Add_Click({
Start-Process PowerShell -ArgumentList "Write-Host '(1/4) Chkdsk' -ForegroundColor Green; Chkdsk /scan;
Write-Host '`n(2/4) SFC - 1st scan' -ForegroundColor Green; sfc /scannow;
Write-Host '`n(3/4) DISM' -ForegroundColor Green; DISM /Online /Cleanup-Image /Restorehealth;
Write-Host '`n(4/4) SFC - 2nd scan' -ForegroundColor Green; sfc /scannow;
Read-Host '`nPress Enter to Continue'" -verb runas
})
$WPFPanelcontrol.Add_Click({
cmd /c control
})
@ -1264,7 +1353,8 @@ foreach ($service in $services) {
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "BranchReadinessLevel" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferFeatureUpdatesPeriodInDays" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferQualityUpdatesPeriodInDays " -ErrorAction SilentlyContinue
})
$WPFFixesUpdate.Add_Click({
### Reset Windows Update Script - reregister dlls, services, and remove registry entires.
Write-Host "1. Stopping Windows Update Services..."
Stop-Service -Name BITS
@ -1272,6 +1362,8 @@ foreach ($service in $services) {
Stop-Service -Name appidsvc
Stop-Service -Name cryptsvc
Write-Host "2. Remove QMGR Data file..."
Remove-Item "$env:allusersprofile\Application Data\Microsoft\Network\Downloader\qmgr*.dat" -ErrorAction SilentlyContinue
@ -1339,9 +1431,10 @@ foreach ($service in $services) {
Get-BitsTransfer | Remove-BitsTransfer
Write-Host "10) Attempting to install the Windows Update Agent..."
If ($arch -eq 64) {
If (!((wmic OS get OSArchitecture | Out-String).IndexOf("64") -eq -1)) {
wusa Windows8-RT-KB2937636-x64 /quiet
} else {
}
else {
wusa Windows8-RT-KB2937636-x86 /quiet
}