Best practices for Windows Server VMs
You can apply several best practices to optimize Compute Engine instances
that run Microsoft Windows Server. This article describes how you can utilize
other products available on Google Cloud and to ensure your Windows instances
are performing optimally in terms of performance, security, redundancy and
availability. For further information on configuration and setup of Windows
instances, see Windows Workloads. For
Microsoft SQL instances, refer to
Best Practices for SQL Server.
General Compute Engine best practices
Security
Backup & Recovery
- Routinely review and verify your backup and recovery strategy.
- Enable regular Persistent Disk Snapshots
for a quick recovery from a previous backup if there is a VM failure.
- Only enable VSS
snapshots on data volumes and where the application is VSS compatible. Avoid
creating VSS snapshots
on the operating system disk because the VSS service marks this disk as
read-only.
Patch Management
- Confirm your Windows operating system is updated to the latest version and all
system and quality updates (also referred to as "cumulative updates" or
"cumulative quality updates") are installed.
- Make use of automatic Windows Update on your instance. Microsoft releases
patches every second Tuesday of each month at minimum. You should have a
strategy for applying these updates to help safeguard the system from known bugs
and/or vulnerabilities. If automatic restarts are not an option, consider
creating patch jobs by using VM Manager, which can
schedule updates and restart your instances at an appropriate time.
Logging and Monitoring
- When you use Microsoft software, you are responsible for understanding and
complying with any licensing agreements that you might have with Microsoft.
To understand the requirements and options for licensing, refer to the
Microsoft Licenses
documentation.
- Keep the guest environment updated in line with your Windows Update strategy.
Regularly updating the guest environment
of your Windows instance will ensure you are running the latest and most stable
version of all necessary Trusted Cloud by S3NS agents and drivers.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[[["\u003cp\u003eUtilize supported Windows Server versions, staying informed about their lifecycle and end-of-support dates on Google Cloud, and use the latest Google Cloud public image versions for new instances.\u003c/p\u003e\n"],["\u003cp\u003eImplement security measures, such as using antivirus software, managing user privileges, and adhering to the principle of least privilege, especially when using Active Directory.\u003c/p\u003e\n"],["\u003cp\u003eRegularly review and verify your backup and recovery plan, enable persistent disk snapshots for quick recovery, and apply VSS snapshots only on data volumes of compatible applications.\u003c/p\u003e\n"],["\u003cp\u003eKeep the Windows operating system updated with the latest system and quality patches, potentially using VM Manager to schedule updates and manage instance restarts.\u003c/p\u003e\n"],["\u003cp\u003eEnable virtual displays, stream serial port output to Cloud Logging, centralize logs using the Ops Agent, and keep the guest environment updated with the latest Google Cloud drivers and agents to ensure optimal performance and troubleshooting capabilities.\u003c/p\u003e\n"]]],[],null,["Windows\n\n*** ** * ** ***\n\nYou can apply several best practices to optimize Compute Engine instances\nthat run Microsoft Windows Server. This article describes how you can utilize\nother products available on Google Cloud and to ensure your Windows instances\nare performing optimally in terms of performance, security, redundancy and\navailability. For further information on configuration and setup of Windows\ninstances, see [Windows Workloads](/compute/docs/instances/windows). For\nMicrosoft SQL instances, refer to\n[Best Practices for SQL Server](/compute/docs/instances/sql-server/best-practices).\n\nGeneral Compute Engine best practices\n\n- Understand which [versions of Windows Server](/compute/docs/images/os-details#windows_server) are supported, best suited for your use case, and which versions might be coming up to the [end of Windows Server support on Google Cloud](/compute/docs/instances/windows/end-of-support). Further information can be found at [Lifecycle FAQ from Microsoft](https://learn.microsoft.com/en-us/lifecycle/faq/extended-security-updates).\n- Understand how to correctly [Add a persistent disk to your Windows VM](/compute/docs/disks/format-mount-disk-windows).\n- Enable or disable Windows Server operating system features not required for the services run by your organization, unused features will consume resources you might not be using.\n- Launch new instances with the latest image version provided by Google Cloud public images, if you are using [Pay-as-you-go (PAYG) licence](/compute/docs/licenses/about).\n\nSecurity\n\n- If you are running Windows, you should be running antivirus software. Malware and software viruses present a significant risk to any system connected to a network, and antivirus software is a simple mitigation step you can use to protect your data. Microsoft provides advice about on [antivirus software](https://support.microsoft.com/en-US/windows-antivirus-software-providers).\n- Understand how to [create new local users](/compute/docs/instances/windows/generating-credentials#create_a_local_user_account) and [grant/revoke Administrator privileges](/compute/docs/instances/windows/generating-credentials#grant_local_users_administrator_privileges) on local accounts to limit critical applications and system files.\n- If you are using Active Directory, make use of [Configuring User Access Control and Permissions](https://learn.microsoft.com/en-us/windows-server/manage/windows-admin-center/configure/user-access-control) to implement the principle of least privilege for user permissions within the Windows operating system. For further information see [summary of best practices for Active Directory](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn487442(v=ws.11)).\n\nBackup \\& Recovery\n\n- Routinely review and verify your backup and recovery strategy.\n- Enable regular [Persistent Disk Snapshots](/compute/docs/disks/snapshots) for a quick recovery from a previous backup if there is a VM failure.\n - Only enable [VSS](https://learn.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service) snapshots on data volumes and where the application is VSS compatible. Avoid [creating VSS snapshots](/compute/docs/instances/windows/creating-windows-persistent-disk-snapshot#create-snapshot) on the operating system disk because the VSS service marks this disk as read-only.\n\nPatch Management\n\n- Confirm your Windows operating system is updated to the latest version and all system and quality updates (also referred to as \"cumulative updates\" or \"cumulative quality updates\") are installed.\n- Make use of automatic Windows Update on your instance. Microsoft releases patches every second Tuesday of each month at minimum. You should have a strategy for applying these updates to help safeguard the system from known bugs and/or vulnerabilities. If automatic restarts are not an option, consider [creating patch jobs by using VM Manager](/compute/docs/os-patch-management), which can schedule updates and restart your instances at an appropriate time.\n\nLogging and Monitoring\n\n- [Enable virtual displays](/compute/docs/instances/enable-instance-virtual-display) to better understand the current state of the operating system, and to allow you to view the console in case your instance is inaccessible.\n- If your VM instance is stopped, logs from the [serial console](/compute/docs/troubleshooting/troubleshooting-using-serial-console) will no longer be available, to retain these logs you can [stream serial port\n output to Cloud Logging](/compute/docs/troubleshooting/viewing-serial-port-output#enable-stackdriver) and use the output stored to assist with troubleshooting and auditing.\n- Consider configuring the [Ops Agent](/logging/docs/agent/ops-agent) to centralize the logs you see in Event Viewer by [streaming logs to Cloud Logging](/logging/docs/agent/ops-agent/authorization), this allows for easier retrieval of the logs and more consistent retention. This step is completely optional, but recommended.\n- Consider installing the [Ops Agent](/logging/docs/agent/ops-agent) to monitor and retain the monitoring data of your instance performance.\n- Consider [streaming logs from third-party Applications](/logging/docs/agent/ops-agent/third-party).\n\nGoogle related drivers, agents \\& features\n\n- When you use Microsoft software, you are responsible for understanding and complying with any licensing agreements that you might have with Microsoft. To understand the requirements and options for licensing, refer to the [Microsoft Licenses](/compute/docs/instances/windows/ms-licensing) documentation.\n- Keep the guest environment updated in line with your Windows Update strategy. Regularly [updating the guest environment](/compute/docs/images/install-guest-environment#update-guest) of your Windows instance will ensure you are running the latest and most stable version of all necessary Google Cloud agents and drivers."]]