Create custom Windows Server images
Stay organized with collections
Save and categorize content based on your preferences.
Windows
You can create customized Windows Server images from existing Compute Engine
Windows Server images. Use these custom images to create instances with boot
disks that are the same as your existing instances.
These custom images are useful for saving the operating system configuration of
your existing instances and reusing the same configuration to create other
instances.
The following tasks are not covered in this section:
Import Windows Server or SQL Server systems; instead use the
VM migration service.
Before you begin
If you haven't already, set up authentication.
Authentication verifies your identity for access to Google Cloud services and APIs. To run
code or samples from a local development environment, you can authenticate to
Compute Engine by selecting one of the following options:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and
APIs, you don't need to set up authentication.
gcloud
Install the Google Cloud CLI.
After installation,
initialize the Google Cloud CLI by running the following command:
To use the Go samples on this page in a local development environment, install and
initialize the gcloud CLI, and then set up Application Default Credentials with
your user credentials.
To use the Java samples on this page in a local development environment, install and
initialize the gcloud CLI, and then set up Application Default Credentials with
your user credentials.
To use the Node.js samples on this page in a local development environment, install and
initialize the gcloud CLI, and then set up Application Default Credentials with
your user credentials.
To use the Python samples on this page in a local development environment, install and
initialize the gcloud CLI, and then set up Application Default Credentials with
your user credentials.
To get the permissions that
you need to create a custom Windows Server image,
ask your administrator to grant you the
following IAM roles on the project:
These predefined roles contain
the permissions required to create a custom Windows Server image. To see the exact permissions that are
required, expand the Required permissions section:
Required permissions
The following permissions are required to create a custom Windows Server image:
compute.images.create
To create a custom image from a disk:
compute.disks.useReadOnly
on the disk
To create a custom image from an existing image:
compute.images.useReadOnly
on on the source image
To create a custom image from a standard or archive snapshot:
compute.snapshots.useReadOnly
on the source snapshot
To add a label to the new image:
compute.images.setLabels
on the label
When creating a custom image, you can specify the image's
Cloud Storage location, excluding
dual-region locations. By specifying the image storage location, you
can meet your regulatory and compliance requirements for data locality as well
as your high availability needs by ensuring redundancy across regions.
The storage location feature is optional. If you don't select a location,
Compute Engine will store your image in the multi-region closest to the
image source. You can create custom images from source disks, images, snapshots,
or images stored in Cloud Storage. You can use these images to create
new VM instances.
All of your existing images prior to this feature launch remain where they are.
The only change is that you can view the image location of all your images.
If you have an existing image you want to move, you must recreate it in the
selected location.
Create a Windows image
You can create disk images from the following sources:
A persistent disk, even while that disk is attached to an instance
Compute Engine occasionally releases new Windows images with the
latest agents and scripts. These items assist Windows instances with startup
and shutdown processes, account management, and address management.
Since Windows image version v20160112, the Windows agent updates itself with
upstream releases. You can disable these agent updates by setting the
disable-agent-updates instance metadata key to true. If you have instances
that are based on older image releases, you can
manually update the Windows agent of those instances.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-10-02 UTC."],[],[]]