Я новичок в Powershell, и я буду совершенно совершенно знаком с Azure Powershell. Мне нужно создать сценарий powershell, чтобы отключить все найденные в подписке виртуальные машины. Я предполагаю, что это нужно сделать с помощью сертификата управления. Но не знаю, с чего начать. Я просто сделал несколько простых строк кода, чтобы перечислить все ВМ, как показано ниже:Azure Powershell для остановки виртуальных машин в подписке
Add-AzureAccount -Environment "AzureCloud"
$subscription = "my-sub-scri-ption"
Select-AzureSubscription -Current "SubName"
Set-AzureSubscription -SubscriptionName "SubName"
Get-AzureVM -ServiceName "VM1"
Выход получил это «Get-AzureVM: Значение не может быть пустым Имя Параметр:. SubscriptionId».
Может кто-то, пожалуйста, помогите мне в этом отношении?
** EDIT: **
Скрипт PowerShell, который я использую ниже:
Add-AzureAccount -Environment "AzureCloud"
Set-AzureSubscription -SubscriptionName "My Subs"
$serviceName = "Service01"
$vmName = "Service01"
Get-AzureVM | Stop-AzureVM -Force
Хотя во время работы он показывает выполнение скрипта будет успешным, я могу видеть, что до сих пор В.М. включен. Обратите внимание, что имя_имя и vmName одинаково в моем случае. Что-то не так в моем коде?
** Re-Edit ** Выполненный код:
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
Не могли бы вы распечатать результат Get-AzureVM, потому что опубликованный код, кажется, хорошо сформирован. –
@Michael: См. Переиздание !! – serverstackqns
Эта ошибка возникает, когда выбранная подписка недействительна. Теперь я бы запускал 'Get-AzureSubscription | Remove-AzureSubscription', это удалит все ваши подписки (я думаю, вы запустили Set-AzureSubscription перед добавлением accout), а затем просто запустите 'Add-AzureAccount', после входа в систему проверьте, что ваши подписки только запускают' Get-AzureSubscription', вы не необходимо запустить Set-AzureSubscription (который используется для изменения подписки, например, для установки текущего имени хранилища), после того, как вы проверите правильное имя SubscriptionName, просто запустите 'Select-AzureSubscription 'MySubscriptionName", затем 'Get-AzureVM' –