# Laden und anmelden
Import-Module AzureRM
Login-AzureRMAccount
# Die Konfig muss als JSON gespeichert werden um sie dann zu übergeben
$TempJsonFile = "C:\temp\RBAC.json"
# Die Contributor Rolle als Vorlage nehmen
$Role = Get-AzureRmRoleDefinition "Contributor"
# Wunschnamen definieren
$Role.Name = "Custom-Contributor"
# Markieren, dass es eine Custom Role ist
$Role.IsCustom = $True
# Eine passende Beschreibung vergeben
$Role.Description = "Custom Contributor group with access to anything but changing network settings"
# Auflisten was alles noch verboten werden soll
$Role.NotActions.Add("Microsoft.Network/*/Action")
$Role.NotActions.Add("Microsoft.Network/*/Write")
$Role.NotActions.Add("Microsoft.Network/*/Delete")
# Die Subscription ID für den Scope raussuchen
$SubID = (Get-AzureRmSubscription).ID
# Den Default Scop von Azure löschen und unsere Subscription eintragen
$Role.AssignableScopes.Remove("/")
$Role.AssignableScopes.Add("/subscriptions/$SubID")
# Die Konfig als JSON speichern, ohne ID, denn die muss neu generiert werden
$Role | select * -ExcludeProperty ID | ConvertTo-Json | Out-File $TempJsonFile
# Neue Role erstellen
New-AzureRmRoleDefinition -InputFile $TempJsonFile
# Jason File wieder löschen
Remove-Item $TempJsonFile