Varidata 新闻资讯
知识库 | 问答 | 最新技术 | IDC 行业新闻
Varidata 知识文档

了解一下Microsoft PowerShell脚本和命令

发布日期:2021-01-28

与传统的脚本语言(如JScript和VBScript)相比,使用PowerShell脚本和命令在Windows操作系统中快速执行任务提供许多好处。虽然PowerShell脚本编写最初是一种有效管理Windows操作系统的方法,但是Microsoft已扩展PowerShell的功能,以自动化一系列其他任务和系统,包括Microsoft云服务Azure。

 

Azure PowerShell是一个强大的命令行工具,使用脚本和cmdlet来管理虚拟机(VM)中的任务。在本文Varidata将针对一些有用PowerShell cmdlet进行阐述,将可用于与Azure资源进行交互。

 

如果需要使用PowerShell创建Azure虚拟机以供生产或开发使用,则可以使用New-AzVM cmdlet,可以指定参数,例如VHD的位置、内存、处理器等。若要使用默认配置在Azure中快速创建虚拟机,可执行以下PowerShell命令:

New-AzVM -ResourceGroupName “myResourceGroup -Name “myVM”

 

尽管此命令在“ -ResourceGroupName”参数中指定的资源组中快速创建虚拟机,但下一条命令将从托管映像在Azure中创建虚拟机。

New-AzVM -ResourceGroupName “myResourceGroup” -Location “West-US” -Name “myVM” -ImageName “myImageDefinition”

 

Azure虚拟机中的活动报告对于提供有关已部署和当前正在运行的VM数量的详细信息很有用。Microsoft提供Get-AzVM PowerShell cmdlet,可用于从Azure订阅和/或Azure资源组报告虚拟机。

 

若要从Azure资源组获取所有虚拟机,请执行以下PowerShell命令:

Get-AzVM -ResourceGroupName “myResourceGroup”

 

要将输出导出到CSV文件,请添加Export-CSV cmdlet,如下所示:

Get-AzVM -ResourceGroupName “myResourceGroup” | Export-CSV C:TempAllAzureVMs.CSV -NoTypeInfo

 

在Get-AzVM中,还可以指定在Azure中查询虚拟机时希望报告的属性。例如,以下PowerShell命令仅收集在虚拟机上运行的操作系统的类型:

Get-AzVM | Select Name,@{Name=”OSType”; Expression={$_.StorageProfile.OSDisk.OSType}}

 

如果希望列出Azure订阅中的所有虚拟机,请在提升的PowerShell窗口中执行“ Get-AzVM”命令。如果要从文本文件中列出的资源组中列出虚拟机,则可以使用以下PowerShell脚本:

$ResGroups = “C:TempResGroups.TXT”

$ReportFile = “C:TempAllVMsInAzure.CSV”

$STR = “VM Name, Resource Group, Location, Status Code”

Add-Content $ReportFile $STR

Foreach ($ResGroup in Get-Content $ResGroups)

{

$allVMsInReg = Get-AzureRMVM -ResourceGroupName “$ResGroup”

ForEach ($AllVMs in $AllVMsInRes)

{

$VMLocation = $AllVMs.Location

$VMName = $AllVMs.Name

$VMStatus = $AllVMs.StatusCode

 

$STR = $VMName+”,”+$ResGroup+”,”+$VMLocation+”,”+$VMStatus

Add-Content $ReportFile $STR

}

}

 

完成执行该脚本后,将生成一个报告文件,其中包含虚拟机的名称,虚拟机的资源组名称,虚拟机的Azure位置以及指示虚拟机总体状态的状态代码。

 

您可能会不时地停止、启动和重新启动Azure虚拟机,以降低计费成本。例如,如果不使用开发虚拟机,则可能不想运行它们。同样,如果您已将临时虚拟机分配给第三方供应商,则可能需要尽快将其删除。若要停止Azure虚拟机,可以使用Stop-AzVM PowerShell cmdlet,如以下PowerShell命令所示:

Stop-AzVM -ResourceGroupName “myResourceGroup” -Name “myVM”

 

下一个PowerShell脚本可用于停止文本文件中指定的特定虚拟机。假设该文本文件包含要停止的虚拟机列表。创建包含要停止的虚拟机的文本文件后,运行以下PowerShell脚本:

$VMFile = “C:TempAllVMsToStop.TXT”

Foreach ($ThisVM in Get-Content $VMFile)

{

Stop-AzureRMVM -Name $ThisVM

}

 

启动Azure虚拟机类似于停止Azure虚拟机。但是,您当然需要使用Start-AzureRMVM PowerShell cmdlet代替Stop-AzureRMVM cmdlet,如以下命令所示:

Start-AzVM -ResourceGroupName “myResourceGroup” -Name “myVM”

 

如果您遇到Azure虚拟机的任何问题并且无法通过Azure管理门户进行控制,或者在访问虚拟机时遇到任何问题,一种解决方案是使用以下PowerShell命令重新启动它:

Restart-AzVM -ResourceGroupName “myResourceGroup” -Name “myVM”

您的免费试用从这里开始!
联系我们的团队申请物理服务器服务!
注册成为会员,尊享专属礼遇!
您的免费试用从这里开始!
联系我们的团队申请物理服务器服务!
注册成为会员,尊享专属礼遇!
Telegram Skype