<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Virtuelle Maschine &#8211; Haikos Blog</title>
	<atom:link href="https://www.hertes.net/tag/virtuelle-maschine/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hertes.net</link>
	<description>Blog von Haiko Hertes zu allen Themen rund um Microsoft, Cloud und Datacenter</description>
	<lastBuildDate>Mon, 02 Oct 2023 08:18:33 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>CPU-Kompatibilität in Hyper-V-Cluster mittels PowerShell steuern</title>
		<link>https://www.hertes.net/2023/10/cpu-kompatibilitaet-in-hyper-v-cluster-mittels-powershell-steuern/</link>
					<comments>https://www.hertes.net/2023/10/cpu-kompatibilitaet-in-hyper-v-cluster-mittels-powershell-steuern/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Mon, 02 Oct 2023 16:00:00 +0000</pubDate>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Failover-Cluster]]></category>
		<category><![CDATA[Kompatibilität]]></category>
		<category><![CDATA[Prozessor]]></category>
		<category><![CDATA[S2D]]></category>
		<category><![CDATA[Virtuelle Maschine]]></category>
		<category><![CDATA[VM]]></category>
		<guid isPermaLink="false">https://www.hertes.net/?p=4225</guid>

					<description><![CDATA[Zu einem bestehenden 2-Knoten S2D-Hyper-V-Failover-Cluster aus 2 exakt gleichen Hosts hatte ich vor kurzem einen dritten Knoten hinzugefügt. Es handelte sich hierbei um das selbe HP-Server-Modell. Bei den ersten Live-Migrationen traten jedoch Fehler auf und eine Analyse brachte zu Tage, dass die CPUs am dritten Knoten geringfügig andere sind. Für dieses Problem gibt es im Allgemeinen das Feature &#8222;Processor compatibility&#8220; in Hyper-V (Im Deutschen als &#8222;Prozessorkompatibilitätsmodus&#8220; bezeichnet, in der GUI heisst es dann &#8222;Zu einem physischen Computer mit einer anderen Prozessorversion migrieren&#8220; bzw. &#8222;Migrate to physical computer with a different processor version&#8220;). Dieses Feature kann man natürlich problemlos über die&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Zu einem bestehenden 2-Knoten S2D-Hyper-V-Failover-Cluster aus 2 exakt gleichen Hosts hatte ich vor kurzem einen dritten Knoten hinzugefügt. Es handelte sich hierbei um das selbe HP-Server-Modell. Bei den ersten Live-Migrationen traten jedoch Fehler auf und eine Analyse brachte zu Tage, dass die CPUs am dritten Knoten geringfügig andere sind.</p>



<p>Für dieses Problem gibt es im Allgemeinen das Feature &#8222;Processor compatibility&#8220; in Hyper-V (Im Deutschen als &#8222;Prozessorkompatibilitätsmodus&#8220; bezeichnet, in der GUI heisst es dann &#8222;Zu einem physischen Computer mit einer anderen Prozessorversion migrieren&#8220; bzw. &#8222;Migrate to physical computer with a different processor version&#8220;). Dieses Feature kann man natürlich problemlos über die GUI ein- und ausschalten:</p>



<figure class="wp-block-image size-full"><a href="https://www.hertes.net/wp-content/uploads/2023/10/image.png"><img fetchpriority="high" decoding="async" width="872" height="266" src="https://www.hertes.net/wp-content/uploads/2023/10/image.png" alt="" class="wp-image-4226" srcset="https://www.hertes.net/wp-content/uploads/2023/10/image.png 872w, https://www.hertes.net/wp-content/uploads/2023/10/image-300x92.png 300w, https://www.hertes.net/wp-content/uploads/2023/10/image-768x234.png 768w" sizes="(max-width: 872px) 100vw, 872px" /></a></figure>



<p>Allerdings ergeben sich hier schnell 2 Herausforderungen:</p>



<ul class="wp-block-list">
<li>Das Feature lässt sich nur ändern, während die VM ausgeschaltet ist</li>



<li>In einem Cluster laufen schnell mal eine 2-stellige Anzahl VMs</li>
</ul>



<p>Das kann man natürlich wie so vieles sehr elegant per PowerShell lösen, also habe ich dafür ein passendes Skript geschrieben. Dieses kann entweder zum ein- oder ausschalten des Features benutzt werden und iteriert dabei über einen Cluster und behandelt dabei dann alle VMs im Cluster, bei denen das Feature noch nicht korrekt eingestellt ist, in dem die VMs bei Bedarf zuerst gestoppt, das Feature gesetzt und dann falls vorher laufend die VM wieder startet. Am Ende wird dann noch der Gesamtzustand ausgegeben.</p>



<p>Das Skript findet ihr auf meinem GitHub Repo, siehe hier:</p>



<p><a href="https://github.com/HaikoHertes/scripts/blob/master/HyperV/EnableOrDisableCPUCompatibilityOnHyperVCluster.ps1">scripts/HyperV/EnableOrDisableCPUCompatibilityOnHyperVCluster.ps1 at master · HaikoHertes/scripts (github.com)</a></p>



<p>Damit kann man nun also entweder bei unterschiedlicher Hardware die CPU-Kompatibilität für alle VMs erhöhen oder, nachdem man z.B. die CPUs überall auf den selben Stand gebracht hat, das Feature wieder deaktivieren.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2023/10/cpu-kompatibilitaet-in-hyper-v-cluster-mittels-powershell-steuern/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Neuer Löschen-Dialog für VMs in Azure</title>
		<link>https://www.hertes.net/2022/02/neuer-loeschen-dialog-fuer-vms-in-azure/</link>
					<comments>https://www.hertes.net/2022/02/neuer-loeschen-dialog-fuer-vms-in-azure/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Wed, 02 Feb 2022 20:23:49 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Aufräumen]]></category>
		<category><![CDATA[Löschen]]></category>
		<category><![CDATA[Portal]]></category>
		<category><![CDATA[Virtuelle Maschine]]></category>
		<category><![CDATA[VM]]></category>
		<guid isPermaLink="false">https://www.hertes.net/?p=4143</guid>

					<description><![CDATA[Seit einigen Tagen gibt es im Azure Portal einen neuen Dialog für das Löschen von Viruellen Maschinen. Dieser bietet nun endlich die Möglichkeit, beim Löschen der VM auch alle ihre &#8222;Anhängsel&#8220; wie Disks, NICs und public IPs mit zu löschen: Aus meiner Sicht ist das &#8211; vor allem für die Nutzer, die sich mit Masse auf das Portal abstützen &#8211; eine tolle Sache, um Leichen im System zu vermeiden. Was hier noch fehlt (vor allem für kleine Testumgebungen) wäre das Löschen von Backups, virtuellen Netzen und anderen Resourcen, aber es ist ein Anfang!]]></description>
										<content:encoded><![CDATA[
<p>Seit einigen Tagen gibt es im Azure Portal einen neuen Dialog für das Löschen von Viruellen Maschinen. Dieser bietet nun endlich die Möglichkeit, beim Löschen der VM auch alle ihre &#8222;Anhängsel&#8220; wie Disks, NICs und public IPs mit zu löschen:</p>



<figure class="wp-block-image size-large"><a href="https://www.hertes.net/wp-content/uploads/2022/02/image.png"><img decoding="async" width="1024" height="828" src="https://www.hertes.net/wp-content/uploads/2022/02/image-1024x828.png" alt="" class="wp-image-4144" srcset="https://www.hertes.net/wp-content/uploads/2022/02/image-1024x828.png 1024w, https://www.hertes.net/wp-content/uploads/2022/02/image-300x243.png 300w, https://www.hertes.net/wp-content/uploads/2022/02/image-768x621.png 768w, https://www.hertes.net/wp-content/uploads/2022/02/image.png 1257w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Aus meiner Sicht ist das &#8211; vor allem für die Nutzer, die sich mit Masse auf das Portal abstützen &#8211; eine tolle Sache, um Leichen im System zu vermeiden. Was hier noch fehlt (vor allem für kleine Testumgebungen) wäre das Löschen von Backups, virtuellen Netzen und anderen Resourcen, aber es ist ein Anfang!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2022/02/neuer-loeschen-dialog-fuer-vms-in-azure/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Azure Automation &#8211; Neue Runbooks für VMs</title>
		<link>https://www.hertes.net/2021/03/azure-automation-neue-runbooks-fuer-vms/</link>
					<comments>https://www.hertes.net/2021/03/azure-automation-neue-runbooks-fuer-vms/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Wed, 24 Mar 2021 11:45:26 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[deallocate]]></category>
		<category><![CDATA[Runbook]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Start]]></category>
		<category><![CDATA[Stop]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[Virtuelle Maschine]]></category>
		<category><![CDATA[VM]]></category>
		<guid isPermaLink="false">https://www.hertes.net/?p=4094</guid>

					<description><![CDATA[Vor einiger Zeit (muss mehrere Jahre her sein) habe ich ein paar Azure Automation PowerShell Runbooks auf GitHub und hier veröffentlich, um VMs Zeit- und Tag- gesteuert starten und stoppen zu können und um heruntergefahren, nicht-deallokierte VMs zu deallokieren. Diese basierten auf AzureRM PowerShell Cmdlets / Modulen und einer etwas komplizierten Herangehensweise. Ich habe die Runbooks nun massiv überarbeitet, so dass diese erstens das neuere Az Modul verwenden und auch vom Aufbau her wesentlich einfacher sind. U.a. verwenden die Runbooks jetzt lokale Deutsche Zeit und sind robuster bei der Schreibweise der Tags (Groß-/Kleinschreibung). Ihr findet diese Runbooks wie immer in&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Vor einiger Zeit (muss mehrere Jahre her sein) habe ich ein paar Azure Automation PowerShell Runbooks auf GitHub und hier veröffentlich, um VMs Zeit- und Tag- gesteuert starten und stoppen zu können und um heruntergefahren, nicht-deallokierte VMs zu deallokieren. Diese basierten auf AzureRM PowerShell Cmdlets / Modulen und einer etwas komplizierten Herangehensweise. Ich habe die Runbooks nun massiv überarbeitet, so dass diese erstens das neuere Az Modul verwenden und auch vom Aufbau her wesentlich einfacher sind. U.a. verwenden die Runbooks jetzt lokale Deutsche Zeit und sind robuster bei der Schreibweise der Tags (Groß-/Kleinschreibung).</p>



<p>Ihr findet diese Runbooks wie immer in meinem GitHub Repo, konkret genau hier:</p>



<p>VMs starten und stoppen:</p>



<p><a href="https://github.com/HaikoHertes/scripts/tree/master/Azure/Automation/Snoozing">https://github.com/HaikoHertes/scripts/tree/master/Azure/Automation/Snoozing</a></p>



<p>VMs deallokieren:</p>



<p><a href="https://github.com/HaikoHertes/scripts/tree/master/Azure/Automation/VmDeallocation">https://github.com/HaikoHertes/scripts/tree/master/Azure/Automation/VmDeallocation</a></p>



<p>Viel Spaß damit!</p>



<p>Weitere Informationen zu Azure Automation und Runbooks:</p>



<p><a href="https://docs.microsoft.com/en-us/azure/automation/automation-quickstart-create-account?WT.mc_id=AZ-MVP-5001882">Azure Quickstart &#8211; Create an Azure Automation account | Microsoft Docs</a><br><a href="https://docs.microsoft.com/en-us/azure/automation/create-run-as-account?WT.mc_id=AZ-MVP-5001882">Create an Azure Automation Run As account | Microsoft Docs</a><br><a href="https://docs.microsoft.com/en-us/azure/automation/automation-create-standalone-account?WT.mc_id=AZ-MVP-5001882">Create a standalone Azure Automation account | Microsoft Docs</a><br><a href="https://docs.microsoft.com/en-us/azure/automation/learn/automation-tutorial-runbook-textual?WT.mc_id=AZ-MVP-5001882">Create a PowerShell Workflow runbook in Azure Automation | Microsoft Docs</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2021/03/azure-automation-neue-runbooks-fuer-vms/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Azure Migrate YouTube Serie</title>
		<link>https://www.hertes.net/2020/05/azure-migrate-youtube-serie/</link>
					<comments>https://www.hertes.net/2020/05/azure-migrate-youtube-serie/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Mon, 25 May 2020 17:12:16 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Migrate]]></category>
		<category><![CDATA[Migration]]></category>
		<category><![CDATA[Umzug]]></category>
		<category><![CDATA[Virtuelle Maschine]]></category>
		<category><![CDATA[VM]]></category>
		<category><![CDATA[VMs]]></category>
		<guid isPermaLink="false">https://www.hertes.net/?p=3916</guid>

					<description><![CDATA[Ich wollte euch an dieser Stelle gerne auf meine Mini-Serie zu Azure Migrate auf YouTube aufmerksam machen: Im ersten Teil zeige ich euch, wie man das Azure Migrate Assessment einrichtet, um Kostenabschätzung, Sizing und co. zu bekommen. Im zweiten Part zeige ich die Replikation, Testmigration und Migration von VMs. Und im dritten Part geht es nochmal dediziert um das Assessment auf der Basis von ausschließlich CSV Daten. Viel Spaß beim Ansehen!]]></description>
										<content:encoded><![CDATA[
<p>Ich wollte euch an dieser Stelle gerne auf meine Mini-Serie zu Azure Migrate auf YouTube aufmerksam machen:</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Azure Migrate" width="500" height="281" src="https://www.youtube.com/embed/videoseries?list=PLPK8RW8p4Ok-7VQAAd3kqKBua-wKc8fpa" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>Im <a href="https://youtu.be/nMb-m5Qjsac" target="_blank" rel="noreferrer noopener">ersten Teil</a> zeige ich euch, wie man das Azure Migrate Assessment einrichtet, um Kostenabschätzung, Sizing und co. zu bekommen.</p>



<p>Im <a href="https://youtu.be/WooSglw8VDU" target="_blank" rel="noreferrer noopener">zweiten Part</a> zeige ich die Replikation, Testmigration und Migration von VMs.</p>



<p>Und im <a rel="noreferrer noopener" href="https://youtu.be/V83lwhuO4JU" target="_blank">dritten Part</a> geht es nochmal dediziert um das Assessment auf der Basis von ausschließlich CSV Daten.</p>



<p>Viel Spaß beim Ansehen!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2020/05/azure-migrate-youtube-serie/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Azure &#8211; RBAC Custom Role für das starten und stoppen von VMs</title>
		<link>https://www.hertes.net/2020/02/azure-rbac-custom-role-fuer-das-starten-und-stoppen-von-vms/</link>
					<comments>https://www.hertes.net/2020/02/azure-rbac-custom-role-fuer-das-starten-und-stoppen-von-vms/#comments</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Tue, 18 Feb 2020 18:21:15 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Az]]></category>
		<category><![CDATA[Berechtigungen]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[RBAC]]></category>
		<category><![CDATA[Rechte]]></category>
		<category><![CDATA[Role]]></category>
		<category><![CDATA[Rolle]]></category>
		<category><![CDATA[Rollen]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[Virtuelle Maschine]]></category>
		<category><![CDATA[VM]]></category>
		<guid isPermaLink="false">https://www.hertes.net/?p=3893</guid>

					<description><![CDATA[Weil es die Tage bei einem meiner Kunden wieder mal ein Thema war, möchte ich es hier nun mal im Detail beleuchten. Und zwar geht es um die Anforderung, Virtuelle Maschinen in Azure starten und stoppen zu können, ohne beispielsweise die VM löschen zu können oder ihre SKU zu verändern. Natürlich gibt es den &#8222;Virtual Machine Contributor&#8220; als built-in Role, aber diese darf eben deutlich zu viel. Wie geht man nun an das Thema heran? Zunächst muss man zwei Dinge in Erfahrung bringen: Den Namen des Resource-Providers um den es geht Die Operationen auf diesem Provider, die man erlauben oder&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Weil es die Tage bei einem meiner Kunden wieder mal ein Thema war, möchte ich es hier nun mal im Detail beleuchten. Und zwar geht es um die Anforderung, Virtuelle Maschinen in Azure starten und stoppen zu können, ohne beispielsweise die VM löschen zu können oder ihre SKU zu verändern. Natürlich gibt es den &#8222;Virtual Machine Contributor&#8220; als built-in Role, aber diese darf eben deutlich zu viel.</p>



<p>Wie geht man nun an das Thema heran? Zunächst muss man zwei Dinge in Erfahrung bringen:</p>



<ul class="wp-block-list"><li>Den <strong>Namen </strong>des <strong>Resource-Providers </strong>um den es geht</li><li>Die <strong>Operationen </strong>auf diesem Provider, die man erlauben oder verbieten möchte</li></ul>



<span id="more-3893"></span>



<p>Dazu kann man sich in den Microsoft Docs informieren:</p>



<ul class="wp-block-list"><li> <a href="https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-services-resource-providers?WT.mc_id=AZ-MVP-5001882">https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-services-resource-providers</a>  &#8211; hier findet man die <strong>Resource Provider</strong> zu dein einzelnen Azure Services</li><li> <a href="https://docs.microsoft.com/de-de/azure/role-based-access-control/resource-provider-operations?WT.mc_id=AZ-MVP-5001882">https://docs.microsoft.com/de-de/azure/role-based-access-control/resource-provider-operations</a>  &#8211; und hier die auf den jeweiligen Resource Providern möglichen <strong>Operationen</strong></li></ul>



<p>Für den Fall der Virtual Machine finden wir dazu also:</p>



<ul class="wp-block-list"><li>Der Resource Provider heisst &#8222;<strong>Microsoft.Compute</strong>&#8222;</li><li>Auf diesem sind u.a. folgende Aktionen vorgesehen:<ul><li>Microsoft.Compute/virtualMachines/powerOff/action    <ul><li>Powers off the virtual machine. Note that the virtual machine will continue to be billed.</li></ul></li><li>Microsoft.Compute/virtualMachines/read            <ul><li>Get the properties of a virtual machine</li></ul></li><li> Microsoft.Compute/virtualMachines/restart/action    <ul><li>Restarts the virtual machine</li></ul></li><li> Microsoft.Compute/virtualMachines/start/action<ul><li>Starts the virtual machine</li></ul></li></ul></li></ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="336" src="https://www.hertes.net/wp-content/uploads/2020/02/image-1024x336.png" alt="" class="wp-image-3894" srcset="https://www.hertes.net/wp-content/uploads/2020/02/image-1024x336.png 1024w, https://www.hertes.net/wp-content/uploads/2020/02/image-300x99.png 300w, https://www.hertes.net/wp-content/uploads/2020/02/image-768x252.png 768w, https://www.hertes.net/wp-content/uploads/2020/02/image-1536x505.png 1536w, https://www.hertes.net/wp-content/uploads/2020/02/image.png 2045w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="536" src="https://www.hertes.net/wp-content/uploads/2020/02/image-1-1024x536.png" alt="" class="wp-image-3895" srcset="https://www.hertes.net/wp-content/uploads/2020/02/image-1-1024x536.png 1024w, https://www.hertes.net/wp-content/uploads/2020/02/image-1-300x157.png 300w, https://www.hertes.net/wp-content/uploads/2020/02/image-1-768x402.png 768w, https://www.hertes.net/wp-content/uploads/2020/02/image-1-1536x804.png 1536w, https://www.hertes.net/wp-content/uploads/2020/02/image-1-2048x1072.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Die Liste der möglichen Aktionen auf einem Resource Provider kann man auch via PowerShell bekommen, z.B.:</p>



<p><pre lang="PowerShell" line="1">Get-AzProviderOperation "Microsoft.Compute/*" | FT Operation, Description -AutoSize</pre></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="208" src="https://www.hertes.net/wp-content/uploads/2020/02/image-2-1024x208.png" alt="" class="wp-image-3896" srcset="https://www.hertes.net/wp-content/uploads/2020/02/image-2-1024x208.png 1024w, https://www.hertes.net/wp-content/uploads/2020/02/image-2-300x61.png 300w, https://www.hertes.net/wp-content/uploads/2020/02/image-2-768x156.png 768w, https://www.hertes.net/wp-content/uploads/2020/02/image-2-1536x311.png 1536w, https://www.hertes.net/wp-content/uploads/2020/02/image-2-2048x415.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Man muss allerdings berücksichtigen, dass es zum Starten einer VM auch erstmal nötig ist, die VM überhaupt sehen zu dürfen&#8230;</p>



<p>Als nächstes muss man die Rollen-Definition im JSON-Format schreiben. Dazu kann man sich auch vorab eine bereits existierende Rollendefinition herunterladen, z.B. mit</p>



<p><pre lang="PowerShell" line="1">Get-AzRoleDefinition -Name "Virtual Machine Contributor" | ConvertTo-Json</pre></p>



<p>Nun passt man sich das JSON so an, dass die gewünschten Aktionen abgedeckt sind. Dabei wird die &#8222;ID&#8220; Zeile entfernt und &#8222;IsCustom&#8220; auf &#8222;true&#8220; gesetzt. Außerdem muss der AssignableScope gesetzt werden. In unserem Fall führt das in etwa zu dieser Definition:</p>



<p><pre lang="Javascript" line="1">
{
  "Name": "Virtual Machine Starter-Stopper",
  "IsCustom": true,
  "Description": "Lets you see, start, restart and stop Virtual Machines.",
  "Actions": [
	"Microsoft.Resources/subscriptions/resourceGroups/read",
    "Microsoft.Compute/virtualMachines/read",
	"Microsoft.Compute/virtualMachines/start/action",
	"Microsoft.Compute/virtualMachines/restart/action",
	"Microsoft.Compute/virtualMachines/powerOff/action",
	"Microsoft.Compute/virtualMachines/deallocate/action"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/00000000-1234-5678-91234-000000000000"
  ]
}
</pre></p>



<p>Diese Definition kann man z.B. mit vi in der Azure Cloud Shell in ein File schreiben. Diese kann man dann wiederum mit </p>



<p><pre lang="PowerShell" line="1">New-AzRoleDefinition -InputFile myRole.json</pre></p>



<p>in eine neue Rolle schreiben lassen.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="339" src="https://www.hertes.net/wp-content/uploads/2020/02/image-3-1024x339.png" alt="" class="wp-image-3898" srcset="https://www.hertes.net/wp-content/uploads/2020/02/image-3-1024x339.png 1024w, https://www.hertes.net/wp-content/uploads/2020/02/image-3-300x99.png 300w, https://www.hertes.net/wp-content/uploads/2020/02/image-3-768x254.png 768w, https://www.hertes.net/wp-content/uploads/2020/02/image-3-1536x508.png 1536w, https://www.hertes.net/wp-content/uploads/2020/02/image-3.png 1963w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Nun kann man die Rolle bspw. über das Azure Portal zuweisen:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="755" height="1024" src="https://www.hertes.net/wp-content/uploads/2020/02/image-4-755x1024.png" alt="" class="wp-image-3899" srcset="https://www.hertes.net/wp-content/uploads/2020/02/image-4-755x1024.png 755w, https://www.hertes.net/wp-content/uploads/2020/02/image-4-221x300.png 221w, https://www.hertes.net/wp-content/uploads/2020/02/image-4-768x1042.png 768w, https://www.hertes.net/wp-content/uploads/2020/02/image-4.png 896w" sizes="auto, (max-width: 755px) 100vw, 755px" /></figure>



<p>Und damit kann der Benutzer dann genau die definierten Rechte wahrnehmen &#8211; und nicht mehr!</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="345" src="https://www.hertes.net/wp-content/uploads/2020/02/image-5-1024x345.png" alt="" class="wp-image-3900" srcset="https://www.hertes.net/wp-content/uploads/2020/02/image-5-1024x345.png 1024w, https://www.hertes.net/wp-content/uploads/2020/02/image-5-300x101.png 300w, https://www.hertes.net/wp-content/uploads/2020/02/image-5-768x259.png 768w, https://www.hertes.net/wp-content/uploads/2020/02/image-5-1536x518.png 1536w, https://www.hertes.net/wp-content/uploads/2020/02/image-5-2048x690.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Viel Spaß beim Ausprobieren!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2020/02/azure-rbac-custom-role-fuer-das-starten-und-stoppen-von-vms/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
