From c87ea56b92f65fdb1c60562a7e0bc416a9558e68 Mon Sep 17 00:00:00 2001 From: Vitalii Chulak Date: Thu, 15 Aug 2024 10:53:22 +0300 Subject: [PATCH] Add script to helpers to enable full range of logging for SetupAPI Signed-off-by: Vitalii Chulak --- Tools/helpers/EnableSetupAPILogging.ps1 | 50 +++++++++++++++++++++++++ Tools/helpers/README.md | 23 +++--------- 2 files changed, 56 insertions(+), 17 deletions(-) create mode 100644 Tools/helpers/EnableSetupAPILogging.ps1 diff --git a/Tools/helpers/EnableSetupAPILogging.ps1 b/Tools/helpers/EnableSetupAPILogging.ps1 new file mode 100644 index 000000000..ec0aa147b --- /dev/null +++ b/Tools/helpers/EnableSetupAPILogging.ps1 @@ -0,0 +1,50 @@ +# This script enables detailed logging for the Windows Setup API +# by setting the appropriate registry key. + +# Copyright (c) 2024 Red Hat, Inc. and/or its affiliates. All rights reserved. + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the names of the copyright holders nor the names of their contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + + +# Ensure the script runs with an unrestricted execution policy (for Windows 10 and Windows Server 2016) +# Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process -Force + +$RegistryPath = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Setup" +$ValueName = "LogMask" +$ValueData = 0xFFFFFFFF +$ValueDataDecimal = 4294967295 + +if (-Not (Test-Path $RegistryPath)) { + New-Item -Path $RegistryPath -Force | Out-Null +} + +Set-ItemProperty -Path $RegistryPath -Name $ValueName -Value $ValueData -Type DWord + +$SetValue = Get-ItemProperty -Path $RegistryPath -Name $ValueName + +if ($SetValue.LogMask -eq $ValueDataDecimal) { + Write-Output "Successfully set LogMask registry value to 0x$($ValueData.ToString('X'))" +} else { + Write-Output "Failed to set LogMask registry value." +} diff --git a/Tools/helpers/README.md b/Tools/helpers/README.md index cca9a6537..b91258a0e 100644 --- a/Tools/helpers/README.md +++ b/Tools/helpers/README.md @@ -17,14 +17,14 @@ This script enables the "Always Keep Memory Dump" feature in Windows by setting 1. Sets the `AlwaysKeepMemoryDump` registry value to 1 under `HKLM:\System\CurrentControlSet\Control\CrashControl`. 2. Verifies the change and outputs the result. -## Planned Scripts +### EnableSetupAPILogging.ps1 -Additional helper scripts are planned for this directory. They may include: +This script enables detailed logging for the Windows Setup API by setting the appropriate registry key. -- System information collection -- Driver installation and management -- Performance optimization for KVM guests -- Troubleshooting tools +#### What it does + +1. Sets the LogMask registry value to 0xFFFFFFFF (4294967295 in decimal) under HKLM:\Software\Microsoft\Windows\CurrentVersion\Setup. +2. Verifies the change and outputs the result. ## Usage Guidelines @@ -50,17 +50,6 @@ Additional helper scripts are planned for this directory. They may include: - Log files - Modified system settings -## Contributing - -Contributions to this collection of helper scripts are welcome. If you have ideas for new scripts or improvements to existing ones, please consider the following: - -1. Ensure your script has a clear, descriptive name. -2. Include detailed comments explaining the scripts purpose and usage. -3. Follow existing style conventions and PowerShell best practices. -4. Update this README with information about new scripts. -5. If applicable, include error handling and logging. - - ## Disclaimer These scripts may modify system settings. Use them at your own risk and always back up your system before making changes.