Functions/Set-FeatureSettingsOverride.ps1
|
function Set-FeatureSettingsOverride { <# .Notes AUTHOR: Skyler Hart CREATED: 03/26/2019 21:30:15 LASTEDIT: 2021-04-22 12:51:51 KEYWORDS: REQUIRES: #Requires -Version 3.0 #Requires -Modules ActiveDirectory #Requires -PSSnapin Microsoft.Exchange.Management.PowerShell.Admin #Requires -RunAsAdministrator .LINK https://wanderingstag.github.io #> [CmdletBinding()] Param ( [Parameter( Mandatory=$false, Position=0 )] [Alias('Host','Name','Computer','CN')] [string[]]$ComputerName = "$env:COMPUTERNAME" ) $RES = @() $infos = @() $infos += @{ Value = 'FeatureSettingsOverride' Data = 72 } $infos += @{ Value = 'FeatureSettingsOverrideMask' Data = 3 } foreach ($info in $infos) { $RES += [PSCustomObject]$info } $i = 0 $number = $ComputerName.length foreach ($comp in $ComputerName) { #Progress Bar if ($number -gt "1") { $i++ $amount = ($i / $number) $perc1 = $amount.ToString("P") Write-Progress -activity "Setting remediation values" -status "Computer $i of $number. Percent complete: $perc1" -PercentComplete (($i / $ComputerName.length) * 100) }#if length foreach ($RE in $RES) { $ValueName = $RE.Value $ValueData = $RE.Data ([Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, $comp)).CreateSubKey('SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management') $BaseKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, $comp) $SubKey = $BaseKey.OpenSubKey('SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management',$true) $SubKey.SetValue($ValueName, $ValueData, [Microsoft.Win32.RegistryValueKind]::DWORD) } }#foreach computer } |