Powershell 用户输入VM名称应通过powerhsell启动

Powershell 用户输入VM名称应通过powerhsell启动,powershell,Powershell,目的-如果vm处于停止状态,我将尝试启动它 注意-用户将输入Vm名称,如果它停止,那么它将启动,否则它将弹出已处于启动状态的服务器 $user = 'tooltest' #Vmname $rg = Get-AzureRmResourceGroup $data= $rg.ResourceGroupName foreach ( $d in $data){ $res = Get-AzureRmResource | Where-Object {$_.ResourceGroupName -eq

目的-如果vm处于停止状态,我将尝试启动它 注意-用户将输入Vm名称,如果它停止,那么它将启动,否则它将弹出已处于启动状态的服务器

$user = 'tooltest'  #Vmname
$rg = Get-AzureRmResourceGroup
$data= $rg.ResourceGroupName
foreach ( $d in $data){
    $res = Get-AzureRmResource | Where-Object {$_.ResourceGroupName -eq $d}
    if ( $res.Name -eq $user){
        Write-Output $res.Name
        Write-Output $res.ResourceGroupName

        $gg = Get-AzureRmVM -ResourceGroupName [string]$res.ResourceGroupName -Name $user -Status
如果我试图打印$res.ResourceGroupName,我将获得26次ResourceGroupName的输出(该RG中有26个资源)
我只想打印RG一次,有人能帮我吗?

过滤输出的一种方法就是使用
select Object
cmdlet选择需要多少对象

Write-Output $res.ResourceGroupName | Select -First 1


[1]
foreach
循环的其余部分在哪里?我看不到那个循环的结束。。。[2] 看起来你在整个集合中循环。。。并打印出每个循环。这似乎会打印您的所有资源及其组。您是否尝试过将
GET
以如下方式传输到
Select Object
$gg=GET-AzureRmVM-ResourceGroupName[string]$res.ResourceGroupName-Name$user-Status | Select-first 1
你好,谢谢您的回复,但我还是收到了相同的错误“$count2=$res.ResourceGroupName$gg=Get-AzureRmVM-ResourceGroupName[string]$count2-Name$user-Status | select-First 1$gg Get-AzureRmVM:Resource-group'[string]VijayG RG VijayG RG VijayG RG VijayG RG VijayG RG VijayG RG VijayG RG VijayG RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG VijayG-RG无法找到抱歉,应用
Select
try with
Write Output$res.ResourceGroupName|Select-First 1的行错误