3

我想安排一个停止 Azure VM 的任务。我有一个执行此操作的脚本,但问题是 PowerShell 中的Stop-AzureVM命令提示用户选择“Y”或“N”。我是否可以无论如何(在脚本内部或调度任务的命令中)发送“Y”值,以便调度任务在运行时不会被挂钩。

使用 PS 脚本更新问题,包括 David Markogon 的有用回答

Set-ExecutionPolicy RemoteSigned 
$env:PSModulePath=$env:PSModulePath+";"+"C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShellAzure\PowerShell"
Import-Module Azure
Set-ExecutionPolicy RemoteSigned -Force
Set-AzureSubscription –DefaultSubscription "Name of Subscription" 
foreach($AzureVMObject in get-AzureVM) 
{ if($AzureVMObject.Name -ne "NAME-VM-DONT-STOP" -and $AzureVMObject.Status -eq "ReadyRole") 
{ Stop-AzureVM -ServiceName $AzureVMObject.Name -Name $AzureVMObject.Name -Force}}
4

1 回答 1

4

为什么不直接使用-Force国旗?如果您尝试取消分配部署中的最后一个虚拟机,这可能就是您需要确认的原因。

Stop-AzureVM -ServiceName myservice -Name myvmname -Force

您还可以选择停止 VM 并保持其配置,以保留 IP 地址:

Stop-AzureVM -ServiceName myservice -Name myvmname -StayProvisioned

注意:您需要获取最新的 PowerShell cmdlet 以供 Azure 使用-StayProvisioned,因为它是大约一周前刚刚添加的。

于 2013-06-21T16:04:41.990 回答