无法从映像旋转Azure中的VM

时间:2018-08-22 06:12:14

标签: azure powershell virtual-machine

我必须从Image在Azure上旋转一个新的VM,我必须使用Powershell脚本而不是从Azure门户来执行此操作。 This是我关注的链接。

现在我的问题是,如果我在资源组ABC中有一个VM映像,并且我需要在资源组XYZ中创建一个VM,可以做到吗?而且我也没有访问资源组ABC的权限。

以及在何处以及如何设置用户名和密码。当我们从门户网站创建新的VM时,它会要求设置用户名和密码。如何使用Powershell做到这一点。

这是我要使用的命令。

New-AzureRmVm `
    -ResourceGroupName "XYZ" `
    -Name "TestVM" `
    -ImageName "Image1" `
    -VirtualNetworkName "VNET1" `
    -SubnetName "Subnet1"

我运行此命令时,出现以下错误。

New-AzureRmVm : Can't find the image 'Image1'.
At line:1 char:1
+ New-AzureRmVm `
+ ~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzureRmVM], ArgumentException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.NewAzureVMCommand

是因为Image1ABC资源组中,而不在XYZ中。如果是,如何指定它来映射ABC中的映像并在XYZ中创建VM。

3 个答案:

答案 0 :(得分:1)

据我所知,您无法从另一个资源组中存在的映像启动新的VM。

注意:映像必须与您要创建VM的资源组相同。

尝试在可用映像的同一资源组中创建启动VM。

New-AzureRmVm `
    -ResourceGroupName "ABC" `
    -Name "TestVM" `
    -ImageName "Image1" `
    -VirtualNetworkName "VNET1" `
    -SubnetName "Subnet1"

答案 1 :(得分:1)

也许您可以将映像存储在Blob存储中,然后在创建VM时传递此.VHD文件的URL。

要在创建虚拟机时设置自己的密码,只需执行以下操作:

$UserName = "example"
$Password = ConvertTo-SecureString "example" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($UserName, $Password)

,然后查看以下命令以指定系统计算机 Set-AzureRmVMOperatingSystem 的配置,有一个参数可以传递凭据对象,例如:

Set-AzureRmVMOperatingSystem -Credential $psCred -VM $configMachine -Windows -ComputerName $nameMachine -EnableAutoUpdate:$false

答案 2 :(得分:0)

据我所知,如果映像位于另一个资源组中并且您无权访问该资源组,则无法自行创建VM。

如果您确实要这样做,可以要求资源组的所有者将映像复制给您或授予您复制权限。

使用PowerShell命令创建虚拟机时,您可以设置用户名和密码,如下所示:

$cred = Get-Credential

结果将类似于此屏幕截图: enter image description here

New-AzureRmVm `
        -ResourceGroupName "myResourceGroupVM" `
        -Name "myVM" `
        -Location "EastUS" `
        -VirtualNetworkName "myVnet" `
        -SubnetName "mySubnet" `
        -SecurityGroupName "myNetworkSecurityGroup" `
        -PublicIpAddressName "myPublicIpAddress" `
        -Credential $cred

有关更多详细信息,请参见Create and Manage Windows VMs with Azure PowerShell