使用Azure CLI从专用Windows镜像创建VM时如何免输密码?
解决专用镜像创建Azure VM时的密码输入问题
问题场景
执行以下Azure CLI命令创建VM:
az vm create \ --resource-group RG1\ --name sts-test-1 \ --image "/subscriptions/<guid>/resourceGroups/RG1/providers/Microsoft.Compute/galleries/windows_sts/images/windows_sts_image/versions/0.0.6" \ --specialized true
执行后系统仍提示输入管理员密码和确认管理员密码,原本预期使用*specialized(专用)*镜像时无需输入密码。尝试通过< pass.txt从文件传入密码时,收到错误:
ERROR: Please specify password in non-interactive mode.
需要实现绕过密码输入或完全不传入密码的操作。
解决方法
非交互式场景直接指定密码参数
在命令中添加--admin-password参数,直接传入密码(可读取文件内容),即可跳过交互式密码提示:az vm create \ --resource-group RG1\ --name sts-test-1 \ --image "/subscriptions/<guid>/resourceGroups/RG1/providers/Microsoft.Compute/galleries/windows_sts/images/windows_sts_image/versions/0.0.6" \ --specialized true \ --admin-password $(cat pass.txt)确认专用镜像的完整性
专用镜像应包含原VM的完整OS配置(包括已存在的管理员账户信息),若仍提示密码,需检查镜像是否正确捕获了原VM的状态:- 登录Azure门户,查看该共享镜像库中镜像的属性,确认其类型为专用
- 验证镜像创建时是否基于运行中的VM捕获,而非通用化镜像
用托管标识替代密码登录
若要完全避免密码输入,可在创建VM时关联Azure AD托管标识,后续通过Azure AD凭据登录VM:az vm create \ --resource-group RG1\ --name sts-test-1 \ --image "/subscriptions/<guid>/resourceGroups/RG1/providers/Microsoft.Compute/galleries/windows_sts/images/windows_sts_image/versions/0.0.6" \ --specialized true \ --assign-identity [system]注:需确保VM所在VNet已配置Azure AD登录相关的DNS和权限
内容的提问来源于stack exchange,提问作者Alok
相关产品推荐
相关产品推荐

