如何使用 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。
我正在尝试还原 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。