我必须从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
是因为Image1
在ABC
资源组中,而不在XYZ
中。如果是,如何指定它来映射ABC
中的映像并在XYZ
中创建VM。
答案 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
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。