本文中包含两个脚本,一个是托管磁盘的快照创建脚本,一个是托管磁盘查看快照的脚本。
比较简单,只是几个命令的调用,这里就不详细解释具体的语句意义了,大家直接看脚本吧:
创建快照的脚本:
param(
[Parameter(Mandatory = $true)]
[string]$SubscriptionName,
[Parameter(Mandatory = $true)]
[string]$ResourceGroupName,
[Parameter(Mandatory = $true)]
[string]$ManagedDiskName,
[Parameter(Mandatory = $false)]
[ValidateSet('StandardLRS', 'PremiumLRS')]
[string]$AccountType = "Not Assigned"
)
[void](Select-AzureRmSubscription -SubscriptionName $SubscriptionName);
$snapshotName = "{0}_Snapshot_{1}" -f $ManagedDiskName, (Get-Date).ToString("yyyyMMddHHmmss");
$disk = Get-AzureRmDisk -ResourceGroupName $ResourceGroupName -DiskName $ManagedDiskName;
if ($disk -eq $null)
{
Write-Host "Disk not found";
return;
}
if ($AccountType -eq "Not Assigned")
{
$AccountType = "StandardLRS";
}
Write-Host ("Creating snapshot for {0}, snapshot name: {1}" -f $ManagedDiskName, $snapshotName) -ForegroundColor Yellow;
$snapshotConfig = New-AzureRmSnapshotConfig -Location $disk.Location -AccountType $AccountType -SourceUri $disk.Id -CreateOption Copy;
[void]($snapshotConfig | New-AzureRmSnapshot -SnapshotName $snapshotName -ResourceGroupName $ResourceGroupName);
Write-Host "Finished" -ForegroundColor Green;
查看快照的脚本:
param(
[Parameter(Mandatory = $true)]
[string]$SubscriptionName,
[Parameter(Mandatory = $true)]
[string]$ResourceGroupName,
[Parameter(Mandatory = $true)]
[string]$ManagedDiskName
)
[void](Select-AzureRmSubscription -SubscriptionName $SubscriptionName);
$disk = Get-AzureRmDisk -ResourceGroupName $ResourceGroupName -DiskName $ManagedDiskName;
if ($disk -eq $null)
{
Write-Host "Disk not found";
return;
}
$snapshots = Get-AzureRmSnapshot;
$filteredSnapshots = @($snapshots | where {$_.CreationData.SourceUri -eq $disk.Id});
Write-Host ("Snapshot found for disk {0}:" -f $ManagedDiskName) -ForegroundColor Yellow;
$filteredSnapshots | select @{Name="TimeCreated"; Expression={$_.TimeCreated.ToLocalTime()}}, Name, AccountType, Location;
脚本执行范例: