首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Azure创建的VM不设置ComputerName

使用Azure创建的VM不设置ComputerName
EN

Stack Overflow用户
提问于 2018-11-13 10:48:06
回答 3查看 1.4K关注 0票数 0

我有一个Azure,当我使用Azure创建VM时,尽管我在脚本中设置了ComputerName,但是VM是在没有将ComputerName设置为提供的值的情况下创建的。

剧本:

代码语言:javascript
复制
$ImageName = 'MyImage'
$RsgName = 'MyRsg'
$VmName = 'MyNewVM'
$DiagnosticStorageName = 'diagnosticsstore5048'

$cred = Get-Credential -Credential 'TheAdmin'

$Image = Get-AzureRmImage -ImageName $ImageName -ResourceGroupName $RsgName

# Get NIC
$nic = Get-AzureRmNetworkInterface -ResourceGroupName $RsgName

# Configure the new VM
$Vm = New-AzureRmVMConfig -VMName $VmName -VMSize 'Standard_A2_v2'
$Vm = Set-AzureRmVMSourceImage -VM $Vm -Id $Image.Id
$Vm = Set-AzureRmVMOSDisk -VM $Vm -Name $VmName'-disk' -StorageAccountType 'StandardLRS' -DiskSizeInGB '128' -CreateOption FromImage -Caching ReadWrite
$Vm = Add-AzureRmVMNetworkInterface -VM $Vm -Id $nic.Id
$Vm = Set-AzureRmVMBootDiagnostics -VM $Vm -Enable -ResourceGroupName $RsgName -StorageAccountName $DiagnosticStorageName
$Vm = Set-AzureRmVMOperatingSystem -VM $Vm -Windows -ComputerName 'dor' -Credential $Cred -ProvisionVMAgent

New-AzureRmVM -VM $Vm -ResourceGroupName $RsgName -Location 'West Europe' -DisableBginfoExtension

上一次我运行脚本来创建VM时,它留下了一个计算机名为“win-I80O6J22ENS”的新VM,图像是按照以下过程创建的:https://learn.microsoft.com/en-gb/azure/virtual-machines/windows/capture-image-resource?toc=%2Fazure%2Fvirtual-machines%2Fwindows%2Fclassic%2Ftoc.json

UPDATE很多人认为我没有正确地概括图像,所以我想在这里添加一下我是如何做的。在VM中运行:

代码语言:javascript
复制
Start-Process -FilePath $env:windir\System32\Sysprep\Sysprep.exe -ArgumentList "/generalize /oobe /shutdown /unattend:$env:windir\System32\Sysprep\unattend.xml"

Unattend.xml中只有一个设置,即步进TimeZone。

一旦完成并关闭了VM OS,我将运行以下命令以获得VM,停止它,并将其设置为通用:

代码语言:javascript
复制
# Shutdown Source VM & Generalize
$SourceVM = Get-AzureRmVM -ResourceGroupName $SourceRsg -Name $SourceVMName
$Null = Stop-AzureRMVM -ResourceGroupName $SourceRsg -Name $SourceVMName -Force
Write-Host 'Stopped Source VM'

Set-AzureRmVm -ResourceGroupName $SourceRsg -Name $SourceVMName -Generalized
Write-Host 'Set Source VM to Generalized'

我注意到,当运行最后一个命令时,输出是:

OperationId: 现状: StartTime: EndTime: 错误:

它并没有说它是否成功?

在此之后,我将从VM磁盘创建映像。

EN

回答 3

Stack Overflow用户

发布于 2018-11-13 12:07:21

它可能是由图像不是"Generalized".引起的。

看一看在Azure中创建广义VM的托管映像指南。

希望能帮上忙!

票数 0
EN

Stack Overflow用户

发布于 2018-11-13 12:20:08

如果您有专门的映像,计算机名称将丢失,因为旧计算机名和新计算机名共享相同的RID和SID号,并且在理想的情况下,每个虚拟机部署都有不同的RID和SID号。如果图像是广义的,则可以显示计算机名称。

有关更多信息,请查看本文:

https://learn.microsoft.com/en-us/azure/virtual-machines/windows/create-vm-specialized

https://learn.microsoft.com/en-us/azure/virtual-machines/windows/capture-image-resource

票数 0
EN

Stack Overflow用户

发布于 2018-11-13 16:04:37

每个人都想指出的一点,从你对这个问题的描述来看,图像似乎没有被正确概括,或者泛化的方面失败了。

脚本在我的终端工作很好,所以唯一的问题是图像。屏幕截图

尝试从该映像中进行另一个部署,请参见,您获得了相同的计算机名称(WIN-I80O6J22ENS)。

如果您得到了相同的名称,这是一个肯定的问题与泛化。

如果名称更改,这可能意味着您映像的机器有一个不接受名称'dor‘的策略,因此系统正在生成默认名称。

无论哪种方式,问题都不是与Powershell或Azure有关。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53279329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档