繁体   English   中英

在Azure中运行Power Shell脚本

[英]Running a power shell script in Azure

嗨,我是刚开始运行Azure的Powershell脚本并寻求最佳指导的人吗?

我创建了一个powershell脚本来定位资源组中正在运行的计算机并将其输出到文本文件,

安排此脚本以天蓝色自动运行的最佳方法是什么?

脚本如下:

#Login-AzureRmAccount 
#$sub = Get-AzureRmSubscription | Out-GridView -PassThru | Set-AzureRmContext

$path="dcsppomsstorage.blob.core.windows.net/dcsvmpowerstate/activeserver1.txt"
function SPWservers {

[string]$ResourceGroupName = "*DCS-PP*"


$VMresourcegroups = (Get-AzureRmResourceGroup).Where({$_.ResourceGroupName -like $ResourceGroupName})
foreach($VMresourcegroup in $VMresourcegroups){
$vms=Get-AzureRmVM -ResourceGroupName $VMresourcegroup.ResourceGroupName
foreach ($vm in $vms)
{

$Status = (get-azurermvm -ResourceGroupName $VMresourcegroup.ResourceGroupName -Name $vm.Name -Status).Statuses

Write "powerstate for $($vm.Name) is $($Status[1].DisplayStatus)" | Format-Table $vm.Name, $Status[1].DisplayStatus -GroupBy $vm.name

}
}
}




SPWservers| out-file $path

正如Bruno Faria所说,我们可以使用Azure自动化来做到这一点。

但是目前,我们无法将Runbook作业的输出直接保存到Azure存储Blob。

解决方法是,我们可以检查Azure门户中的输出。 脚本如下:

$Conn = Get-AutomationConnection -Name AzureRunAsConnection
Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
function SPWservers {
[string]$ResourceGroupName = "vms"
$VMresourcegroups = (Get-AzureRmResourceGroup).Where({$_.ResourceGroupName -like $ResourceGroupName})
foreach($VMresourcegroup in $VMresourcegroups){
$vms=Get-AzureRmVM -ResourceGroupName $VMresourcegroup.ResourceGroupName
foreach ($vm in $vms)
{

$Status = (get-azurermvm -ResourceGroupName $VMresourcegroup.ResourceGroupName -Name $vm.Name -Status).Statuses

Write "powerstate for $($vm.Name) is $($Status[1].DisplayStatus)" | Format-Table $vm.Name, $Status[1].DisplayStatus -GroupBy $vm.name

}
}
}

SPWservers| write-output

完成此运行手册作业后,我们可以在此处找到输出

在此处输入图片说明

关于Azure Runbook 时间表 ,我们可以在此处进行设置:

在此处输入图片说明

有关在Azure自动化中计划运行手册的更多信息,请参考本文

我建议在Azure自动化中使用PowerShell Runbook作为解决问题的最佳指南。

PowerShell Runbook

PowerShell Runbook基于Windows PowerShell。 您可以使用Azure门户中的文本编辑器直接编辑Runbook的代码。 您还可以使用任何脱机文本编辑器,并将运行手册导入Azure自动化。 好处

使用PowerShell代码实现所有复杂的逻辑,而无需考虑PowerShell Workflow的其他复杂性。 Runbook的启动速度比PowerShell Workflow Runbook的启动速度快,因为它不需要在运行前进行编译。

https://docs.microsoft.com/en-us/azure/automation/automation-runbook-types#powershell-runbooks

您可以计划PowerShell Runbook在所需的时间和频率下运行。

此外,如果您使用免费套餐并且每月的总工作时间少于500分钟,则Azure自动化的价格是免费的。 如果您没有很多VM,并且您的工作频率不是很频繁,那么很有可能您可以在Azure中免费完成工作。

这是一个入门入门PowerShell的好教程。

您正在寻找Azure自动化。 它易于使用且效果很好。 除此之外,您可以在免费层上运行长达500分钟的脚本。 有关以下链接的更多信息:

https://docs.microsoft.com/en-us/azure/automation/automation-offering-get-started

如果出于某些原因要浏览其他选项,则还有Azure函数和Azure Web作业。

Azure功能

https://blogs.msdn.microsoft.com/powershell/2017/02/24/using-powershell-modules-in-azure-functions/

网络职位

https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-create-web-jobs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM