Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Powershell停止VM';s在订阅中_Powershell_Azure - Fatal编程技术网

Azure Powershell停止VM';s在订阅中

Azure Powershell停止VM';s在订阅中,powershell,azure,Powershell,Azure,我是Powershell的新手,更确切地说,我是Azure Powershell的新手。我需要创建一个powershell脚本来关闭订阅中找到的所有VM。我想这需要有管理证书的帮助。但不知道从哪里开始。我刚刚编写了一些简单的代码,列出了所有VM,如下所示: Add-AzureAccount -Environment "AzureCloud" $subscription = "my-sub-scri-ption" Select-AzureSubscription -Current "SubName

我是Powershell的新手,更确切地说,我是Azure Powershell的新手。我需要创建一个powershell脚本来关闭订阅中找到的所有VM。我想这需要有管理证书的帮助。但不知道从哪里开始。我刚刚编写了一些简单的代码,列出了所有VM,如下所示:

Add-AzureAccount -Environment "AzureCloud"
$subscription = "my-sub-scri-ption"
Select-AzureSubscription -Current "SubName"
Set-AzureSubscription -SubscriptionName "SubName" 
Get-AzureVM -ServiceName "VM1"
接收的输出为“Get-AzureVM:值不能为null”。 参数名称:subscriptionId”

有人能在这方面帮助我吗

**编辑:*

我正在使用的powershell脚本如下所示:

Add-AzureAccount -Environment "AzureCloud"
Set-AzureSubscription -SubscriptionName "My Subs"
$serviceName = "Service01"
$vmName = "Service01"
Get-AzureVM | Stop-AzureVM -Force
虽然运行它时显示脚本执行成功,但我仍然可以看到vm已通电。请注意,在我的示例中,serviceName和vmName是相同的。我的代码有问题吗

**重新编辑** 执行代码:

Add-AzureAccount -Environment "AzureCloud"
Set-AzureSubscription -SubscriptionName "My Subs"
$serviceName = "Service01"
$vmName = "Service01"
Get-AzureVM
上述代码的错误:

Get-AzureVM : Value cannot be null.
Parameter name: subscriptionId
At D:\TC_PS\Untitled1.ps1:5 char:1
+ Get-AzureVM
+ ~~~~~~~~~~~
+ CategoryInfo          : CloseError: (:) [Get-AzureVM], ArgumentNullException
+ FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.GetAzureVMCommand
你可以从这里开始:

然后,您只需运行
getazurevm
,它将返回每个云服务的所有虚拟机

要停止虚拟机:
stop AzureVM-ServiceName xxx-Name VM-test-01

要停止订阅中的所有虚拟机,只需运行:
Get AzureVM | stop AzureVM-Force

必须使用
-Force
开关停止云服务的最后一个虚拟机,否则系统在尝试停止服务中的最后一个VM时会抛出错误,以避免删除已发布应用程序的所有资源

如果未指定
-StayProvisioned
开关,则虚拟机将被解除分配。这是
停止AzureVM的默认行为

您可以从这里开始:

然后,您只需运行
getazurevm
,它将返回每个云服务的所有虚拟机

要停止虚拟机:
stop AzureVM-ServiceName xxx-Name VM-test-01

要停止订阅中的所有虚拟机,只需运行:
Get AzureVM | stop AzureVM-Force

必须使用
-Force
开关停止云服务的最后一个虚拟机,否则系统在尝试停止服务中的最后一个VM时会抛出错误,以避免删除已发布应用程序的所有资源


如果未指定
-StayProvisioned
开关,则虚拟机将被解除分配。这是
停止AzureVM的默认行为

谢谢。我想用一个命令停止(停止释放)特定订阅的所有vm。这是因为未来虚拟机的数量可能会发生变化。所以,不能传递这些名字。有这种可能性吗?是的,当然有可能,只需启动
Get-AzureVM | Stop-AzureVM-Force
Force是停止云服务的最后一个虚拟机所必需的。好的,Micheal。。这很清楚,很好。我想在关闭虚拟机的同时解除虚拟机的分配(以最小化成本)。如何实现这一点?
Stop-AzureVM
将取消分配虚拟机,如果您不指定开关
-StayProvisioned
,那么默认情况下,Stop-AzureVM命令将取消分配虚拟机。您好,Michael,我刚刚按如下所示进行了尝试。。虽然脚本执行成功,但我仍然可以看到VM处于联机状态并正在运行。。你能告诉我哪里出错了吗?添加AzureAccount-Environment“AzureCloud”设置AzureSubscription-SubscriptionName“subscription1”$serviceName=“vm1”$vmName=“vm1”停止AzureVM-serviceName$serviceName-Name$vmName谢谢。我想用一个命令停止(停止释放)特定订阅的所有vm。这是因为未来虚拟机的数量可能会发生变化。所以,不能传递这些名字。有这种可能性吗?是的,当然有可能,只需启动
Get-AzureVM | Stop-AzureVM-Force
Force是停止云服务的最后一个虚拟机所必需的。好的,Micheal。。这很清楚,很好。我想在关闭虚拟机的同时解除虚拟机的分配(以最小化成本)。如何实现这一点?
Stop-AzureVM
将取消分配虚拟机,如果您不指定开关
-StayProvisioned
,那么默认情况下,Stop-AzureVM命令将取消分配虚拟机。您好,Michael,我刚刚按如下所示进行了尝试。。虽然脚本执行成功,但我仍然可以看到VM处于联机状态并正在运行。。你能告诉我哪里出错了吗?添加AzureAccount-Environment“AzureCloud”Set-AzureSubscription-SubscriptionName“subscription1”$serviceName=“vm1”$vmName=“vm1”停止AzureVM-serviceName$serviceName-Name$vmName您可以打印Get-AzureVM结果吗,因为发布的代码似乎很好formed@Michael:请参阅重新编辑!!当所选订阅无效时,会发生此错误。现在我将运行
获取AzureSubscription |删除AzureSubscription
这将删除您的所有订阅(我认为您在添加帐户之前运行Set-AzureSubscription),然后只需运行
添加AzureAccount
,登录后检查订阅仅运行
获取AzureSubscription
不需要运行Set-AzureSubscription(用于更改订阅,例如设置当前存储名称),检查正确的订阅名称后,只需运行
选择AzureSubscription“MySubscriptionName”
然后
获取AzureVM
您可以打印获取AzureVM的结果吗,因为发布的代码似乎很好formed@Michael:请参阅重新编辑!!当所选订阅无效时,会发生此错误。现在我将运行
获取AzureSubscription |删除AzureSubscription
这将删除您的所有订阅(我认为您在添加帐户之前运行Set-AzureSubscription),然后只需运行
添加AzureAccount
,登录后,只需运行
获取AzureSubscription
即可检查订阅,无需运行Set-AzureSubscription(用于更改订阅,例如设置cu)