simeononsecurity / Windows-Optimize-Harden-Debloat

Enhance the security and privacy of your Windows 10 and Windows 11 deployments with our fully optimized, hardened, and debloated script. Adhere to industry best practices and Department of Defense STIG/SRG requirements for optimal performance and security.
https://simeononsecurity.com/github/optimizing-and-hardening-windows10-deployments/
MIT License
1.18k stars 83 forks source link

Revert #62

Closed flairlysea closed 1 year ago

flairlysea commented 1 year ago

There should be a revert button

github-actions[bot] commented 1 year ago

Message that will be displayed on users' first issue

simeononsecurity commented 1 year ago

There should be a revert button

Reverting isn't as simple as just a button. Unfortunately windows does not have a boolean state system. This means we'd have to store both the desired state and its previous state each time before running. This would become incredibly problematic to manage, especially accounting for users who may run the script multiple times. So unfortunately we don't see a "revert" button as a feasible option both now and in the future.

The script does capture a restore point prior to running however. Please refer to Microsoft's documentation on the matter if you're unaware how to perform a system restore https://support.microsoft.com/en-us/windows/use-system-restore-a5ae3ed9-07c4-fd56-45ee-096777ecd14e

If you're having any specific issues however, we'd be glad to discuss and help you fix them. Please just update us here.

simeononsecurity commented 1 year ago

@flairlysea Any updates? If not, we're going to mark the ticket as closed. Please respond.

dougg0k commented 1 year ago

A revert does not necessarily need to be a toggle. You can have both options. A revert could be just to apply values that are the default.

You could still get each value from the changed ones, as to revert only them to default value, but still, it's a choice. I suppose having a place like a json with changed value and default value or whatever, could be another option.

simeononsecurity commented 1 year ago

A revert does not necessarily need to be a toggle. You can have both options. A revert could be just to apply values that are the default.

You could still get each value from the changed ones, as to revert only them to default value, but still, it's a choice. I suppose having a place like a json with changed value and default value or whatever, could be another option.

@dougg0k Indeed, we appreciate your perspective on this matter. It is worth considering existing solutions such as restore points and snapshots, which can prove beneficial in certain scenarios. However, it is important to address the specific challenges we encounter in our context.

While we acknowledge the desire for additional features, we must prioritize functionality that aligns with the primary objectives of this project. As you rightly pointed out, a considerable portion of the changes in this script is already captured in GPO exports, making it essential to integrate seamlessly with existing structures.

One significant hurdle in implementing a restore option involves dealing with registries that demand special access permissions, often achievable only through GPO. This introduces complexities in managing the script effectively.

Additionally, the use of GPOs inherently lacks an automated mechanism for identifying registries associated with those policies, which further complicates the process.

In light of these considerations, it is crucial to evaluate the value of reinventing the wheel when established Windows features already provide a certain level of functionality. Striking a balance between the standalone and domain versions of the script while ensuring standardization is an important consideration.

As much as we understand the frustrations, we strive to provide pragmatic and efficient solutions that cater to a wide range of users. Rather than reinventing existing solutions, our focus remains on enhancing and optimizing the functionalities within our project.

Lastly, we encourage users to explore the resources already available and exercise caution while implementing changes, especially on critical systems. Testing and evaluating new configurations in controlled environments can prevent potential issues on primary machines.

Your feedback is valuable, and we appreciate your insights as we continue to improve our offerings. Should you have any further inquiries or suggestions, please feel free to share them with us.

simeononsecurity commented 1 year ago

I would like to emphasize the following points:

Firstly, our team has diligently worked on developing comprehensive tooling to facilitate the management of these changes seamlessly. However, it is crucial to note that we are embarking on a groundbreaking endeavor, as no comparable solution exists to the extent implemented in this script.

Secondly, it is essential to understand that our primary aim is not to present an all-encompassing, definitive solution. Our approach revolves around being a free and open-source platform, intended to save valuable time and alleviate complexities for users. It is vital to avoid causing unnecessary inconvenience or complications.

Moreover, we acknowledge that achieving our objectives may involve certain trade-offs. Therefore, users are encouraged to familiarize themselves with the provided documentation and readme to fully grasp the capabilities and limitations of our solution. It is important to recognize that our intended audience is those who can readily comprehend and utilize the information made available.

In summary, our team is committed to delivering a practical and user-friendly solution, and we invite users who align with our vision to benefit from our tools. Should any further inquiries arise, we are more than willing to address them promptly.

dougg0k commented 1 year ago

It make sense, regardless, it was a choice to do or not.