如何使用用户交互计划任务

时间:2013-06-21 15:47:14

标签: azure scheduled-tasks powershell-v3.0

我想安排停止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}}

1 个答案:

答案 0 :(得分:4)

为什么不使用-Force标志?如果您尝试在部署中释放最后一个虚拟机,这可能就是您需要确认的原因。

Stop-AzureVM -ServiceName myservice -Name myvmname -Force

您还可以选择停止虚拟机并保留其配置,以保留IP地址:

Stop-AzureVM -ServiceName myservice -Name myvmname -StayProvisioned

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