如何使用 powershell 从门户导出 AzureVM 配置

How to Export AzureVM config using powershell from portal

我正在尝试还原 VM (http://blogs.technet.com/b/keithmayer/archive/2014/02/04/step-by-step-perform-cloud-restores-of-windows-azure-virtual-machines-using-powershell-part-2.aspx),这需要在删除 VM 之前导出 VM 配置。现在,我正试图通过一本操作手册来实现这一切。 Export-AzureVM 使用来自该机器的 Windows PowerShell 将配置详细信息保存在本地机器的文件中。现在,因为我是 运行 Azure 门户中的这个,有没有办法在 Azure Powershell 中保存配置文件?

编辑: 这在 Azure 门户中按预期工作,但我不确定从哪里获取 C: 驱动器。

$exportedFile = "C:\file.xml"
New-Item -Path $exportFolder -ItemType Directory
$exportPath = $exportFolder + "\" + $vm.Name + ".xml"
$vm | Export-AzureVM -Path $exportPath

输出:

Directory: C:\
Mode            LastWriteTime        Length      Name             PSComputerName                       
----            ---------            ------      ----             ----------                       
d----           8/20/2015   2:15 PM             ExportVMs         localhost                            

您必须将导出的文件复制到某个您可以从任何地方访问的地方。当然,您可以从 Internet 上存在的所有文件存储服务中进行选择。我的第一种方法是将这些导出的文件复制到 Azure 存储帐户。

下面是一些示例 PowerShell 代码,展示了如何将文件复制到 Azure 存储帐户。该示例甚至创建了一个新的存储帐户。如果您已有要使用的 Azure 存储帐户,只需删除创建新帐户的行。

# Used settings
$subscriptionName = "Your Subscription Name" # Get-AzureSubscription
$location = "West Europe" # Get-AzureLocation
$storageAccountName = "mystorageaccount123"

# Create storage account and set is as current.
New-AzureStorageAccount -Location $location -StorageAccountName $storageAccountName -Type Standard_LRS
Set-AzureSubscription -SubscriptionName $subscriptionName -CurrentStorageAccountName $storageAccountName

$container = "exportedfiles"

# Create destination container in storage if it does not exist.
$containerList = Get-AzureStorageContainer -Name $container -ErrorAction Ignore # Ignore error if container not found.
if ($containerList.Length -eq 0) {
    New-AzureStorageContainer -Name $container -Permission Off
}

$exportedFile = "C:\file.xml" # That is something you should know where you have exported your file.

# Upload PowerShell file
Set-AzureStorageBlobContent -Container $container -File $exportedFile -Force

我从我自己在 GitHub Gist 上的示例代码中提取了示例代码,并根据您的问题进行了调整。如果你愿意,你可以找到整个sample here

如果您需要一个工具来访问 Azure 存储帐户,see this list。有一些很好的工具。我个人使用 ClumsyLeaf CloudXplorer。