GinShell.Azure/Public/Enable-GsAzureSnapshotPublicAccess.ps1
|
function Enable-GsAzureSnapshotPublicAccess { param ( [Parameter(Mandatory = $true)] [object[]]$Snapshot ) try { if ($Snapshot.PublicNetworkAccess -eq 'Enabled') { Write-GsLog -Message "Public network access is already enabled for snapshot '$($Snapshot.Name)'" -Type Success return } Write-GsLog -Message "Enabling public network access for snapshot '$($Snapshot.Name)'" -Type Action $uri = "/subscriptions/$($Snapshot.Id.Split('/')[2])/resourceGroups/$($Snapshot.ResourceGroupName)/providers/Microsoft.Compute/snapshots/$($Snapshot.Name)?api-version=2022-03-02" $payload = @{ properties = @{ PublicNetworkAccess = 'Enabled' NetworkAccessPolicy = 'AllowAll' } } | ConvertTo-Json -Depth 5 $out = Invoke-AzRestMethod -Method PATCH -Path $uri -Payload $payload Write-GsLog -Message "Public access successfully enabled for snapshot '$($Snapshot.Name)'" -Type Success } catch { Write-GsLog -Message "Failed to enable public access: $($_.Exception.Message)" -Type Error } } |