Um script de arranque é um ficheiro que executa tarefas durante o processo de arranque de uma instância de máquina virtual (VM). Os scripts de arranque podem aplicar-se a todas as VMs num projeto ou a uma única VM. Os scripts de inicialização especificados pelos metadados ao nível da VM substituem os scripts de inicialização especificados pelos metadados ao nível do projeto, e os scripts de inicialização só são executados quando uma rede está disponível. Este documento descreve como usar scripts de arranque em instâncias de VMs do Windows Server. Para obter informações sobre como adicionar um script de arranque ao nível do projeto, consulte o artigo gcloud compute project-info add-metadata
.
Os scripts de arranque do Windows têm de ser scripts de shell de comandos (.cmd
), PowerShell (.ps1
) ou ficheiros de comandos (.bat
) e têm de ter a extensão de ficheiro adequada.
Se especificar um script de arranque através de um dos procedimentos neste documento, o Compute Engine faz o seguinte:
Copia o script de arranque para a VM
O Agendador de tarefas executa o script de arranque como a
LocalSystem
conta quando a VM é iniciada
Para obter informações sobre as várias tarefas relacionadas com scripts de arranque e quando executar cada uma delas, consulte o documento de vista geral dos scripts de arranque.
Antes de começar
- Leia a vista geral dos scripts de arranque.
- Leia acerca das noções básicas dos metadados de VMs.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
- Set a default region and zone.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.
Chaves de metadados para scripts de arranque do Windows
Um script de arranque é transmitido a uma VM a partir de uma localização especificada por uma chave de metadados. Uma chave de metadados especifica se o script de arranque é armazenado localmente, armazenado no Cloud Storage ou transmitido diretamente para a VM. A chave de metadados que usa também pode depender do tamanho ou do tipo de ficheiro do script de arranque.
A tabela seguinte mostra as chaves de metadados que pode usar para scripts de arranque do Windows e fornece informações sobre a chave a usar com base na localização de armazenamento, no tamanho e no tipo de ficheiro do script de arranque.
Chave de metadados Use para sysprep-specialize-script-ps1
Transmitir um script do PowerShell não assinado que esteja armazenado localmente ou adicionado diretamente e que tenha um tamanho máximo de 256 KB sysprep-specialize-script-cmd
Transmitir um script de shell de comando armazenado localmente ou adicionado diretamente e com um tamanho máximo de 256 KB sysprep-specialize-script-bat
Transmitir um script de ficheiro de lote armazenado localmente ou adicionado diretamente e que tenha um tamanho máximo de 256 KB sysprep-specialize-script-url
Transmitir um ficheiro de lote, uma shell de comandos, um script do PowerShell assinado/não assinado ou um ficheiro executável armazenado no Cloud Storage e com um tamanho superior a 256 KB windows-startup-script-ps1
Transmitir um script do PowerShell não assinado que esteja armazenado localmente ou adicionado diretamente e que tenha um tamanho máximo de 256 KB windows-startup-script-cmd
Transmitir um script de shell de comando armazenado localmente ou adicionado diretamente e com um tamanho máximo de 256 KB windows-startup-script-bat
Transmitir um script de ficheiro de lote armazenado localmente ou adicionado diretamente e com um tamanho máximo de 256 KB windows-startup-script-url
Transmitir um ficheiro de lote, uma shell de comandos, um script do PowerShell assinado/não assinado ou um ficheiro executável armazenado no Cloud Storage e com um tamanho superior a 256 KB Para mais informações acerca da ordem de execução dos vários tipos de scripts de inicialização, consulte o repositório GoogleCloudPlatform/compute-image-windows no GitHub.
Ordem de execução dos scripts de arranque do Windows
Pode usar vários scripts de arranque. Os scripts de arranque armazenados localmente ou adicionados são executados diretamente antes dos scripts de arranque armazenados no Cloud Storage. O tipo de ficheiro que contém o script também afeta a ordem de execução. A tabela seguinte mostra, com base na chave de metadados, a ordem de execução dos scripts de arranque do Windows.
Chave de metadados Ordem de execução sysprep-specialize-script-ps1
Primeiro, durante o arranque inicial sysprep-specialize-script-cmd
Segundos durante o arranque inicial sysprep-specialize-script-bat
Terceiro durante o arranque inicial sysprep-specialize-script-url
Quarto durante o arranque inicial windows-startup-script-ps1
Primeiro, durante cada arranque após o arranque inicial windows-startup-script-cmd
Segundos durante cada arranque após o arranque inicial windows-startup-script-bat
Terceiro durante cada arranque após o arranque inicial windows-startup-script-url
Quarto durante cada arranque após o arranque inicial Transmitir um script de arranque do Windows diretamente
Transmita o conteúdo de um ficheiro de comandos, uma shell de comandos ou um script de arranque do PowerShell não assinado diretamente para uma VM do Windows Server. Os procedimentos seguintes mostram como transmitir um script do PowerShell não assinado.
Consola
Transmitir um script de arranque do Windows diretamente a uma nova VM
Na Trusted Cloud consola, aceda à página Criar uma instância.
Para Disco de arranque, selecione Alterar e faça o seguinte:
- No separador Imagens públicas, escolha um sistema operativo Windows Server.
- Clique em Selecionar.
Expanda a secção Opções avançadas e faça o seguinte:
- Expanda a secção Gestão.
Na secção Metadados, clique em Adicionar item para definir a Chave e o Valor:
Chave: definida como
windows-startup-script-ps1
.Os scripts de arranque transmitidos à VM através de chaves de metadados que começam com
windows-startup-script
são executados em todos os arranques após o arranque inicial da VM.Valor: adicione o seguinte script:
# Installing IIS Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature # Ensure the directory exists if (-not (Test-Path("C:\inetpub\wwwroot"))) {New-Item "C:\inetpub\wwwroot" -Type Directory} # Write the expanded string out to the file, overwriting the file if it already exists. "<html><body><p>Windows startup script added directly.</p></body></html>" | Out-File -FilePath C:\inetpub\wwwroot\index.html -Encoding ascii -Force
Clique em Criar.
Transmitir um script de arranque do Windows diretamente a uma VM existente
Na Trusted Cloud consola, aceda à página Instâncias de VM.
Clique no Nome da VM.
Clique em Edit.
Em Metadados, especifique o seguinte:
key
:windows-startup-script-ps1
value
: o conteúdo do script de arranque
A validar o script de arranque
Depois de iniciar a VM, veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos para que o script de arranque de exemplo termine.
gcloud (Bash)
Transmitir um script de arranque do Windows diretamente a uma nova VM
Transmita o conteúdo de um script de arranque diretamente para uma VM do Windows Server quando a criar através do seguinte comando:
gcloud compute instances create
gcloud compute instances create VM_NAME \ --image-project=windows-cloud \ --image-family=windows-2019-core \ --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
Transmitir um script de arranque do Windows diretamente a uma VM existenteAdicione o script de arranque diretamente a uma VM existente através do seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME \ --image-project=windows-cloud \ --image-family=windows-2019-core \ --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
A validar o script de arranqueDepois de iniciar a VM, veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos para que o script de arranque de exemplo seja concluído.
gcloud (linha de comandos)
Transmitir um script de arranque do Windows diretamente a uma nova VM
Transmita o conteúdo de um script de arranque diretamente para uma VM do Windows Server quando a criar através do seguinte comando:
gcloud compute instances create
gcloud compute instances create VM_NAME ^ --image-project=windows-cloud ^ --image-family=windows-2019-core ^ --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
Transmitir um script de arranque do Windows diretamente a uma VM existenteAdicione o script de arranque diretamente a uma VM existente através do seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME ^ --image-project=windows-cloud ^ --image-family=windows-2019-core ^ --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
A validar o script de arranqueDepois de iniciar a VM, veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos para que o script de arranque de exemplo seja concluído.
gcloud (PowerShell)
Transmitir um script de arranque do Windows diretamente a uma nova VM
Transmita o conteúdo de um script de arranque diretamente para uma VM do Windows Server quando a criar através do seguinte comando:
gcloud compute instances create
gcloud compute instances create VM_NAME ` --image-project=windows-cloud ` --image-family=windows-2019-core ` --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
Transmitir um script de arranque do Windows diretamente a uma VM existenteAdicione o script de arranque diretamente a uma VM existente através do seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME ` --image-project=windows-cloud ` --image-family=windows-2019-core ` --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
A validar o script de arranqueDepois de iniciar a VM, veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos para que o script de arranque de exemplo seja concluído.
REST
Transmitir um script de arranque do Windows diretamente a uma nova VM
Transmita o conteúdo de um script de arranque diretamente para uma VM do Windows Server quando a criar através do seguinte método.
instances.insert
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "networkInterfaces": [ { "accessConfigs": [ { "type": "ONE_TO_ONE_NAT" } ] } ], "metadata": { "items": [ { "key": "windows-startup-script-ps1", "value": "Import-Module servermanager\nInstall-WindowsFeature Web-Server -IncludeAllSubFeature\necho '<html><body><p>Windows startup script added directly.</p></body></html>' > C:\\inetpub\\wwwroot\\index.html" } ] }, ... }
Substitua o seguinte:
PROJECT_ID: o ID do projeto.
ZONE: a zona na qual criar a VM.
Transmitir um script de arranque do Windows diretamente a uma VM existente
Obtenha o valor
metadata.fingerprint
da VM através do métodoinstances.get
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Substitua o seguinte:
PROJECT_ID: o ID do projeto onde a VM existe.
ZONE: a zona da VM.
VM_NAME: o nome da VM.
Transmita o script de arranque através do valor
fingerprint
, juntamente com a chave e o valor dos metadados para o script de arranque, numa chamada ao métodoinstances.setMetadata
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "fingerprint": FINGERPRINT, "items": [ { "key": "windows-startup-script-ps1", "value": "Import-Module servermanager\nInstall-WindowsFeature Web-Server -IncludeAllSubFeature\necho '<html><body><p>Windows startup script added directly.</p></body></html>' > C:\\inetpub\\wwwroot\\index.html" } ], ... }
Substitua o seguinte:
PROJECT_ID: o ID do projeto onde a VM existe.
ZONE: a zona da VM.
VM_NAME: o nome da VM.
FINGERPRINT: o valor
metadata.fingerprint
obtido através do métodoinstances.get
.
A validar o script de arranque
Depois de iniciar a VM, veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos para que o script de arranque de exemplo termine.
Transmitir um script de arranque do Windows a partir de um ficheiro local
Pode armazenar um script de arranque num ficheiro de comandos local, num script de shell de comandos ou num script do PowerShell não assinado na sua estação de trabalho e transmitir o ficheiro local como metadados a uma VM quando a cria. Não pode usar ficheiros armazenados em VMs como scripts de arranque.
Antes de transmitir um script de arranque do Windows de um ficheiro local para uma VM, faça o seguinte:
Crie um ficheiro local (
.ps1
) para armazenar o script de arranque.Tenha em atenção o caminho relativo da CLI gcloud para o script de arranque.
Adicione o seguinte script de arranque ao ficheiro:
# Installing IIS Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature # Ensure the directory exists if (-not (Test-Path("C:\inetpub\wwwroot"))) {New-Item "C:\inetpub\wwwroot" -Type Directory} # Write the expanded string out to the file, overwriting the file if it already exists. "<html><body><p>Windows startup script passed from a file on your local workstation.</p></body></html>" | Out-File -FilePath C:\inetpub\wwwroot\index.html -Encoding ascii -Force
gcloud (Bash)
Transmitir um script de arranque do Windows de um ficheiro local para uma nova VM
Crie uma VM e transmita o conteúdo de um ficheiro local para ser usado como o script de arranque através do comando
gcloud compute instances create
com a flag--metadata-from-file
:gcloud compute instances create VM_NAME \ --image-project=windows-cloud \ --image-family=windows-2019-core \ --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
- VM_NAME: o nome da VM
- FILE_PATH: o caminho relativo para o ficheiro de script de arranque
Transmita um script de arranque a uma VM existente a partir de um ficheiro local através do seguinte
gcloud compute instances add-metadata
comando:gcloud compute instances add-metadata VM_NAME \ --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
- VM_NAME: o nome da VM
- FILE_PATH: o caminho relativo para o ficheiro de script de arranque
Veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos para que o script de inicialização de exemplo termine.
gcloud (linha de comandos)
Transmitir um script de arranque do Windows de um ficheiro local para uma nova VM
Crie uma VM e transmita o conteúdo de um ficheiro local para ser usado como o script de arranque através do comando
gcloud compute instances create
com a flag--metadata-from-file
:gcloud compute instances create VM_NAME ^ --image-project=windows-cloud ^ --image-family=windows-2019-core ^ --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
- VM_NAME: o nome da VM
- FILE_PATH: o caminho relativo para o ficheiro de script de arranque
Transmita um script de arranque a uma VM existente a partir de um ficheiro local através do seguinte
gcloud compute instances add-metadata
comando:gcloud compute instances add-metadata VM_NAME ^ --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
- VM_NAME: o nome da VM
- FILE_PATH: o caminho relativo para o ficheiro de script de arranque
Veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos para que o script de inicialização de exemplo termine.
gcloud (PowerShell)
Transmitir um script de arranque do Windows de um ficheiro local para uma nova VM
Crie uma VM e transmita o conteúdo de um ficheiro local para ser usado como o script de arranque através do comando
gcloud compute instances create
com a flag--metadata-from-file
:gcloud compute instances create VM_NAME ` --image-project=windows-cloud ` --image-family=windows-2019-core ` --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
- VM_NAME: o nome da VM
- FILE_PATH: o caminho relativo para o ficheiro de script de arranque
Transmita um script de arranque a uma VM existente a partir de um ficheiro local através do seguinte
gcloud compute instances add-metadata
comando:gcloud compute instances add-metadata VM_NAME ` --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
- VM_NAME: o nome da VM
- FILE_PATH: o caminho relativo para o ficheiro de script de arranque
Veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos para que o script de inicialização de exemplo termine.
Transmitir um script de arranque do Windows a partir do Cloud Storage
Pode armazenar um script de arranque como um ficheiro de comandos, um script de shell de comandos, um script do PowerShell assinado/não assinado ou um executável no Cloud Storage e transmiti-lo a uma VM quando a criar. Depois de adicionar um script de arranque ao Cloud Storage, tem um URL que pode usar para referenciar o script de arranque quando cria uma VM.
Antes de adicionar um script de arranque a partir de um contentor do Cloud Storage, faça o seguinte:
Crie um ficheiro para armazenar o script de arranque. Este exemplo usa um ficheiro do PowerShell (
.ps1
).Adicione o seguinte script do PowerShell ao ficheiro, que instala um servidor Web e cria uma página Web simples:
# Installing IIS Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature # Ensure the directory exists if (-not (Test-Path("C:\inetpub\wwwroot"))) {New-Item "C:\inetpub\wwwroot" -Type Directory} # Write the expanded string out to the file, overwriting the file if it already exists. "<html><body><p>Windows startup script passed from Cloud Storage.</p></body></html>" | Out-File -FilePath C:\inetpub\wwwroot\index.html -Encoding ascii -Force
Implicações de segurança
Por predefinição, os proprietários e os editores de projetos podem aceder aos ficheiros do Cloud Storage no mesmo projeto, a menos que existam controlos de acesso explícitos que o impeçam.
Se o objeto ou o contentor do Cloud Storage for menos seguro do que os metadados, existe um risco de escalada de privilégios se o script de arranque for modificado e a VM for reiniciada. Isto deve-se ao facto de, após o reinício da VM, o script de arranque ser executado como
LocalSystem
e, em seguida, poder usar as autorizações da conta de serviço anexada para aceder a outros recursos.
Consola
Transmitir um script de arranque armazenado no Cloud Storage a uma nova VM
Na Trusted Cloud consola, aceda à página Criar uma instância.
Para Disco de arranque, selecione Alterar e faça o seguinte:
- No separador Imagens públicas, escolha um sistema operativo Windows Server.
- Clique em Selecionar.
Na secção Identidade e acesso à API, selecione uma conta de serviço que tenha a função Storage Object Viewer.
Expanda a secção Opções avançadas e, de seguida, faça o seguinte:
- Expanda a secção Gestão.
Na secção Metadados, adicione valores para o seguinte:
Chave: a chave de metadados. Especifique a chave de metadados para que o script seja executado durante cada arranque após o arranque inicial.
windows-startup-script-url
Valor: o valor dos metadados. Defina a localização do ficheiro de script de arranque no armazenamento na nuvem através de um dos seguintes formatos:
- URL autenticado:
https://storage.googleapis.com/BUCKET/FILE
- URI do gcloud storage:
gs://BUCKET/FILE
Substitua o seguinte:
- BUCKET: o nome do contentor que contém o ficheiro do script de arranque
- FILE: o nome do ficheiro do script de arranque
- URL autenticado:
Para criar a VM, clique em Criar.
Transmitir um script de arranque armazenado no Cloud Storage a uma VM existente
Na Trusted Cloud consola, aceda à página Instâncias de VM.
Clique no Nome da VM.
Clique em Edit.
Em Metadados, adicione os seguintes valores:
- URL autenticado:
https://storage.googleapis.com/BUCKET/FILE
- URI do gcloud storage:
gs://BUCKET/FILE
- URL autenticado:
A validar o script de arranque
Veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos até que o script de início de exemplo termine.
gcloud (Bash)
Transmitir um script de arranque armazenado no Cloud Storage a uma nova VM
Transmita um script de arranque armazenado no Cloud Storage para uma VM do Windows Server através do seguinte
gcloud compute instances create
. Para o valor da flag--scopes
, usestorage-ro
para que a VM possa aceder ao Cloud Storage.gcloud compute instances create VM_NAME \ --image-project=windows-cloud \ --image-family=windows-2019-core \ --scopes=storage-ro \ --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
- VM_NAME: o nome da VM.
-
CLOUD_STORAGE_URL: os valores dos metadados. Defina a localização do ficheiro de script de arranque através de um dos seguintes formatos:
-
URL autenticado:
https://storage.googleapis.com/BUCKET/FILE
-
URI do gcloud storage:
gs://BUCKET/FILE
-
URL autenticado:
Transmita um script de arranque armazenado no Cloud Storage para uma VM existente através do seguinte
gcloud compute instances add-metadata
comando:gcloud compute instances add-metadata VM_NAME \ --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
- VM_NAME: o nome da VM.
-
CLOUD_STORAGE_URL: os valores dos metadados. Defina a localização do ficheiro de script de arranque através de um dos seguintes formatos:
-
URL autenticado:
https://storage.googleapis.com/BUCKET/FILE
-
URI do gcloud storage:
gs://BUCKET/FILE
-
URL autenticado:
Veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos para que o script de arranque de exemplo termine.
gcloud (linha de comandos)
Transmitir um script de arranque armazenado no Cloud Storage a uma nova VM
Transmita um script de arranque armazenado no Cloud Storage para uma VM do Windows Server através do seguinte
gcloud compute instances create
. Para o valor da flag--scopes
, usestorage-ro
para que a VM possa aceder ao Cloud Storage.gcloud compute instances create VM_NAME ^ --image-project=windows-cloud ^ --image-family=windows-2019-core ^ --scopes=storage-ro ^ --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
- VM_NAME: o nome da VM.
-
CLOUD_STORAGE_URL: os valores dos metadados. Defina a localização do ficheiro de script de arranque através de um dos seguintes formatos:
-
URL autenticado:
https://storage.googleapis.com/BUCKET/FILE
-
URI do gcloud storage:
gs://BUCKET/FILE
-
URL autenticado:
Transmita um script de arranque armazenado no Cloud Storage para uma VM existente através do seguinte
gcloud compute instances add-metadata
comando:gcloud compute instances add-metadata VM_NAME ^ --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
- VM_NAME: o nome da VM.
-
CLOUD_STORAGE_URL: os valores dos metadados. Defina a localização do ficheiro de script de arranque através de um dos seguintes formatos:
-
URL autenticado:
https://storage.googleapis.com/BUCKET/FILE
-
URI do gcloud storage:
gs://BUCKET/FILE
-
URL autenticado:
Veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos para que o script de arranque de exemplo termine.
gcloud (PowerShell)
Transmitir um script de arranque armazenado no Cloud Storage a uma nova VM
Transmita um script de arranque armazenado no Cloud Storage para uma VM do Windows Server através do seguinte
gcloud compute instances create
. Para o valor da flag--scopes
, usestorage-ro
para que a VM possa aceder ao Cloud Storage.gcloud compute instances create VM_NAME ` --image-project=windows-cloud ` --image-family=windows-2019-core ` --scopes=storage-ro ` --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
- VM_NAME: o nome da VM.
-
CLOUD_STORAGE_URL: os valores dos metadados. Defina a localização do ficheiro de script de arranque através de um dos seguintes formatos:
-
URL autenticado:
https://storage.googleapis.com/BUCKET/FILE
-
URI do gcloud storage:
gs://BUCKET/FILE
-
URL autenticado:
Transmita um script de arranque armazenado no Cloud Storage para uma VM existente através do seguinte
gcloud compute instances add-metadata
comando:gcloud compute instances add-metadata VM_NAME ` --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
- VM_NAME: o nome da VM.
-
CLOUD_STORAGE_URL: os valores dos metadados. Defina a localização do ficheiro de script de arranque através de um dos seguintes formatos:
-
URL autenticado:
https://storage.googleapis.com/BUCKET/FILE
-
URI do gcloud storage:
gs://BUCKET/FILE
-
URL autenticado:
Veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos para que o script de arranque de exemplo termine.
REST
Transmitir um script de arranque armazenado no Cloud Storage a uma nova VM
Transmita um script de arranque armazenado no Cloud Storage para uma VM do Windows Server através do seguinte
instances.insert
método. No camposcopes
, adicionehttps://www.googleapis.com/auth/devstorage.read_only
para que a VM possa aceder ao Cloud Storage.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "networkInterfaces": [ { "accessConfigs": [ { "type": "ONE_TO_ONE_NAT" } ] } ], "serviceAccounts": [ { "email": "default", "scopes": [ "https://www.googleapis.com/auth/devstorage.read_only" ] } ], "metadata": { "items": [ { "key": "windows-startup-script-url", "value": "CLOUD_STORAGE_URL" }, ... ] }, ... }
Substitua o seguinte:
PROJECT_ID: o ID do projeto.
ZONE: a zona na qual criar a VM.
CLOUD_STORAGE_URL: o valor de metadados. Definido para a localização do Cloud Storage do ficheiro de script de arranque com um dos seguintes formatos:
- URL autenticado:
https://storage.googleapis.com/BUCKET/FILE
- URI do gcloud storage:
gs://BUCKET/FILE
- URL autenticado:
Transmitir um script de arranque armazenado no Cloud Storage a uma VM existente
Obtenha o valor
metadata.fingerprint
da VM através do métodoinstances.get
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Substitua o seguinte:
PROJECT_ID: o ID do projeto onde a VM existe.
ZONE: a zona da VM.
VM_NAME: o nome da VM
Transmita o script de arranque através do valor
fingerprint
, juntamente com a chave e o valor dos metadados para o script de arranque, numa chamada ao métodoinstances.setMetadata
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "fingerprint": FINGERPRINT, "items": [ { "key": "windows-startup-script-url", "value": "CLOUD_STORAGE_URL" } ], ... }
Substitua o seguinte:
PROJECT_ID: o ID do projeto onde a VM existe.
ZONE: a zona da VM.
VM_NAME: o nome da VM.
FINGERPRINT: o valor
metadata.fingerprint
obtido através do métodoinstances.get
.CLOUD_STORAGE_URL: o valor de metadados. Definido para a localização do Cloud Storage do ficheiro de script de arranque com um dos seguintes formatos:
- URL autenticado:
https://storage.googleapis.com/BUCKET/FILE
- URI do gcloud storage:
gs://BUCKET/FILE
- URL autenticado:
A validar o script de arranque
Veja o IP externo num navegador de Internet para verificar se o script de arranque criou o Website. Pode ter de aguardar cerca de 10 minutos até que o script de início de exemplo termine.
Aceder a metadados a partir de um script de arranque do Windows
Num script de arranque, pode aceder aos valores dos metadados. Por exemplo, pode usar o mesmo script para várias VMs e parametrizar cada script individualmente transmitindo diferentes valores de metadados a cada VM.
Para aceder a um valor de metadados personalizado a partir de um script de arranque, faça o seguinte:
Crie um script de arranque que consulte o valor de uma chave de metadados. Por exemplo, o seguinte script de arranque do PowerShell (
.ps1
) consulta o valor da chave de metadadosfoo
.$METADATA_VALUE = (Invoke-RestMethod -Headers @{'Metadata-Flavor' = 'Google'} -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/foo") # Installing IIS Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature # Ensure the directory exists if (-not (Test-Path("C:\inetpub\wwwroot"))) {New-Item "C:\inetpub\wwwroot" -Type Directory} # Write the expanded string out to the file, overwriting the file if it already exists. "<html><body><p>Accessing metadata value of foo: $METADATA_VALUE</p></body></html>" | Out-File -FilePath C:\inetpub\wwwroot\index.html -Encoding ascii -Force
Defina o valor da chave de metadados
foo
quando criar uma VM através do seguintegcloud compute instances create
comando. Para este exemplo, o script de arranque é transmitido à VM a partir de um ficheiro local.gcloud
gcloud compute instances create VM_NAME \ --image-project=windows-cloud \ --image-family=windows-2019 \ --metadata-from-file=windows-startup-script-ps1=FILE_PATH \ --metadata=foo=bar
Substitua o seguinte:
VM_NAME: o nome da VM
FILE_PATH: o caminho relativo para o ficheiro de script de arranque
Para mais informações sobre como especificar um par chave-valor de metadados, consulte o artigo Defina e remova metadados personalizados.
Veja o IP externo num navegador de Internet para verificar se o script de arranque apresenta o valor de
foo
. Pode ter de aguardar cerca de 10 minutos para que o script de arranque de exemplo termine.
Voltar a executar um script de arranque do Windows
Volte a executar um script de arranque numa VM do Windows fazendo o seguinte:
Executando o seguinte comando:
C:\Program Files\Google\Compute Engine\metadata_scripts\run_startup_scripts.cmd
Ver a saída de um script de arranque do Windows
Veja o resultado de um script de arranque do Windows Server através de qualquer uma das seguintes opções e verifique se existem eventos
GCEMetadataScripts
:Porta de série 1 na Trusted Cloud consola. Para mais informações, consulte o artigo Ver a saída da porta série.
Registo de aplicações do Event Viewer do Windows.
IAP Desktop a partir de uma estação de trabalho do Windows. Para mais informações, consulte o repositório GoogleCloudPlatform/iap-desktop no GitHub.
O que se segue?
Saiba como usar scripts de arranque em VMs Linux.
Saiba como adicionar um script de encerramento.
Saiba mais acerca dos metadados de VMs.
Saiba como executar scripts de arranque em VMs do Windows e associar-se a um domínio do Microsoft AD gerido.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-29 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-29 UTC."],[],[],null,[]] -