Archiv der Kategorie: PowerShell

Ist diese IP Adresse Teil des Office 365 Adressbereiches?

Bei der Analyse von Firewall Logs in Office 365 Projekten kommt es immer wieder zu der Fragestellung: Ist diese geblockte IP Adresse Teil des Office 365 Adressbereichs?

Dank PowerShell und der von Microsoft veröffentlichten Information im JSON Format ist die Antwort nur ein paar Zeilen Code entfernt.

Damit ihr das Rad nicht neu erfinden müsst teile ich hier mein Skript „Test-IsO365IpAddress.ps1“. Dem Skript wird einfach die fragliche IP Adresse und optional der TCP/UDP Port übergeben. Es lädt die aktuelle Liste der Adressbereiche von Microsoft und prüft ob die IP Adresse Teil eines der dort enthaltenen IP Netze ist. Ist dies der Fall werden alle Service die dieses Netz nutzen ausgegeben.

Wurde ein Port mit angegeben wird dies bei der Ausgabe der Service berücksichtigt.

Neben dem Service Namen (z.B. „Exchange Online“) wird auch die Kategorie (Optimize, Allow oder Default), die benötigten Ports, das Subnetz und die etwas veraltete Eingruppierung „Required“ ausgegeben.

Mit diesen Daten ausgestattet sollte der Besuch beim Firewall Team erfolgreich sein.

Vielen Dank auch Luben Kirov dessen Netzwerkfunktionen ich für die schnelle Analyse der IP Netze nutzen durfte und Siva Padisetty dessen Funktion checkSubnet ich als Insperation für meine Implementierung genutzt habe.

Report des Log Analytics Workspace für alle Azure VMs

Manchmal möchte man nur wissen, an welchen Log Analytics Workspace (OMS für die älteren Leute da draußen) eine VM ihre Log Daten sendet. Oder sogar alle von euren Azure VMs auf einmal?

Mit dem folgenden Skript ist diese Aufgabe kinderleicht. Und dank RamblingCookieMonster und seinem PSExcel Modul kannst du das Ergebnis direkt an alle Excelliebhaber versenden.

AzureRM.Network 0.9 macht Probleme mit Azure Automation

Solltet Ihr Azure Automation nutzen und das Modul AzureRM.Network in einer der Versionen von 0.9.0 bis min. 0.10.0 nutzen, kann es zu Problemen bei der Ausführung von Azure Automation Runbooks kommen.

Sollten die verwendeten Runbooks insgesamt etwas aufwändiger sein, kann es durch diese Version zu hoher Memory Auslastung kommen. Sollten über 400 MB RAM verwendet werden, endet das Runbook nach drei Versuchen im Status „Suspended“.

The runbook job was attempted 3 times, but it failed each time. Common reasons that runbook jobs fail can be found here:
https://docs.Microsoft.com/en-us/Azure/automation/automation-troubleshooting-automation-errors

Ein Downgrade auf Version 6.8.0 ist erforderlich. Am einfachsten natürlich mit PowerShell.

PowerShell Modul Entwicklung: Pester Tests

Mittels Pester Tests lässt sich bei der PowerShell Modul Entwicklung ein Grad an Qualität sicherstellen, die man sonst nur sehr aufwändig manuell erreichen würde. Dabei gilt es zwei wichtige Faktoren zu prüfen. Modul- und Funktions-Integrität.

Weiterlesen

AzureSimpleREST Module

Obwohl Microsoft einen tollen Job mit ihrem AzureRM Modul macht, gibt es immer wieder Gründe diese Cmdlets nicht zu nutzen. In den meisten Fällen weil Sie langsamer sind als direkte Anfragen gegen die Azure REST API sind. In anderen Fällen weil bestimme Funktionalitäten noch nicht implementiert wurden.

In diese Lücke positioniert sich das von mir geschriebene Modul AzureSimpleREST

Weiterlesen

„Reverse engineering“ der Azure REST API

Die Azure REST API ist grundsätzlich gut dokumentiert und dank des REST API Browsers lässt sich auch auf die schnelle etwas ausprobieren. Jedoch gibt es Momente im Azure Portal die zu verwunderten Gesichtern führen und in diesen Fällen helfen die „Developer tools“ von Chrome um Licht ins Dunkel zu bringen.

Weiterlesen

PowerShell über SSH in Windows 10 Build 1803

Mit Windows 10 Build 1803 hat Microsoft Ihr Versprechen eingelöst und den OpenSSH Client im Standard aktiviert. Das verringert die Hürde für den geneigten Administrator OpenSSH für PowerShell Remoting zu nutzen.

Außerdem wurde das Wort Beta gestrichen, wodurch Microsoft nun offiziell Support für diese Version des OpenSSH Client und Servers bietet.

Weiterlesen

Azure Resource Manager API Übersicht

Beim Schreiben von ARM-Templates braucht man häufig verschiedene API-Versionen der Resource Types. Mit dem nachfolgenden Skript werden alle angezeigt, die in der ausgewählten Subscription vorhanden sind.

 

PowerShell Module – Installation and Update

Wer viel mit der PowerShell arbeitet, kommt nicht um Module aus der PS Gallery herum.

Die Module werden von Zeit zur Zeit aktualisiert und das kann dafür sorgen, dass Cmdlets, Funktionen, Aliase, usw. hinzugefügt, bzw. entfernt werden oder so angepasst werden, dass diese anders angesprochen werden müssen.

Mir ist dies vor ein paar Wochen bei dem Module cNtfsAccessControl aufgefallen, nachdem die DSC-Configuration auf einen Fehler hinauslief.

Zum anderen kommt es zu Problemen, wenn mehrere Versionen des gleichen Moduls auf einem Server installiert sind. Es ist zwar von Microsoft unterstützt und das Importieren von Modulen kann auch pro Version geschehen, aber persönlich finde ich diesen Ansatz ehr unsauber, da es in den meisten Fällen zu Verwirrungen führt und z.B. DSC-Configuations Probleme mit verschiedenen Versionen haben.

Weiterlesen

Azure Automation – Erweiterte Parameterverarbeitung

Beim Arbeiten mit Azure Automation kommt man schnell an den Punkt, dass ein Runbook ein zweites Runbook starten soll. Dabei möchte man meistens auch noch den einen oder anderen Parameter übergeben. Das ist alles kein Problem und schnell und einfach realisiert.

Interessant wird es jedoch wenn komplexere Objekte wie Arrays oder Hashtables übermittelt werden sollen.

Weiterlesen