如何为Google云Windows Server 2012虚拟机添加启动脚本
解决Google云Windows Server 2012虚拟机启动脚本未生效的问题
你的问题根源很明确:你用了Linux系统的启动脚本格式,但Windows Server虚拟机不识别这个配置。
为什么原来的脚本没生效?
Google Cloud的元数据脚本服务会根据虚拟机的操作系统区分脚本类型:
startup-script是给Linux虚拟机用的,带#!/bin/bashshebang的脚本会被Linux的bash执行- Windows虚拟机默认会忽略
startup-script这个键,所以日志里才会显示No startup scripts to run
正确的解决方案(两种可选)
方法1:使用PowerShell启动脚本(推荐)
Windows GCE虚拟机优先支持PowerShell脚本,配置方式如下:
- 自定义元数据的键改为:
startup-script-ps1 - 自定义元数据的值改为PowerShell命令:
加New-Item -Path "C:\" -Name "newfolder" -ItemType Directory -Force-Force参数是为了避免文件夹已存在时脚本报错,让执行更稳健。
方法2:使用CMD风格启动脚本
如果你习惯用CMD命令,也可以用这个配置:
- 自定义元数据的键改为:
startup-script-cmd - 自定义元数据的值改为:
mkdir C:\newfolder
验证步骤
- 保存元数据配置后,重启你的Windows Server虚拟机
- 查看串口1控制台日志,应该会看到类似
GCEMetadataScripts: Running startup script from metadata的执行记录 - 登录虚拟机后检查C盘根目录,
newfolder应该已经创建完成
内容的提问来源于stack exchange,提问作者iClick Softwares
相关产品推荐
相关产品推荐

