Azure 如何维护驱动器映射从自定义映像创建新VM

Azure 如何维护驱动器映射从自定义映像创建新VM,azure,teamcity,azure-virtual-machine,azure-powershell,Azure,Teamcity,Azure Virtual Machine,Azure Powershell,我正在尝试创建一个TeamCity构建代理,可以根据需要进行扩展。我已经创建了一个虚拟机,并进行了相应的配置。因为我们有很多项目,所以我附加了一个数据盘,并安装了构建代理来指向它。根据其他文章,我已将数据磁盘映射到F:。完成后,我创建了一个映像,我计划将其用于代理的所有其他VM创建。 问题是,当我执行创建时,它没有维护数据磁盘的驱动器映射,因此现在是E:。当代理服务尝试启动时,它正在查找F:。 即使我在C:\上安装代理,我也希望签出目录位于数据磁盘上,因为我们将签出大量文件(数百GB)。 从Az

我正在尝试创建一个TeamCity构建代理,可以根据需要进行扩展。我已经创建了一个虚拟机,并进行了相应的配置。因为我们有很多项目,所以我附加了一个数据盘,并安装了构建代理来指向它。根据其他文章,我已将数据磁盘映射到F:。完成后,我创建了一个映像,我计划将其用于代理的所有其他VM创建。 问题是,当我执行创建时,它没有维护数据磁盘的驱动器映射,因此现在是E:。当代理服务尝试启动时,它正在查找F:。 即使我在C:\上安装代理,我也希望签出目录位于数据磁盘上,因为我们将签出大量文件(数百GB)。
从Azure Powershell的角度看,似乎找不到这将如何工作

这是一篇博客文章,展示了如何在Azure中持久化驱动器号更改的过程

基本上,您需要执行一项启动任务,检查分配的驱动器号-如果不正确,则重新分配正确的驱动器号

还有一个示例PowerShell脚本用于分配驱动器号。如果没有所有的错误检查,它看起来像:

Function Set-VolumeDriveLetter ($oldvolume, $newvolume) {
    $driveletter = Get-WmiObject win32_volume -filter "DriveLetter = '$oldvolume'"
    $driveletter.DriveLetter = $newvolume
    $driveletter.Put() | Out-Null
    }
Set-VolumeDriveLetter -oldvolume "R:" -newvolume "E:"
详情如下: 让我知道这是否有帮助,以及这两种方法是否适用于您