PowerShell

Exchange Recover Deleted Items (Exchange Admin Center & PowerShell)

Andres Bohren
Hallo zusammen, Ich habe ja schon kürzich über das neue Exchange Admin Center in Microsoft 365 berichtet. Kürzlich wurde dazu ein Artikel im Exchange Team Blog veröffentlicht. Neu kann man über das Exchange Admin Center auch im GUI gelöschte Objekte wiederherstellen. A New RecoverableItems Experience Comes to Exchange Online! https://techcommunity.microsoft.com/t5/exchange-team-blog/a-new-recoverableitems-experience-comes-to-exchange-online/ba-p/1505353 Dazu braucht es aber erstmal ein paar Grundlagen. Recoverable Items folder in Exchange Server https://docs.microsoft.com/en-us/exchange/policy-and-compliance/recoverable-items-folder/recoverable-items-folder?view=exchserver-2019 Ein Mail kommt erst in die Recoverable Items (Exchange Papierkorb) von Exchange, wenn der Benutzer das Objekt mit Shift + Delete direkt löscht oder nachdem es aus den "

Exchange Online PowerShell V2 and Modern Auth with Application in AzureAD (Step-by-step)

Andres Bohren
Hallo zusammen, Vor ein paar Tagen hat Microsoft auf dem Exchange Team Blog erklärt, wie man mit sich mit Modern Auth und dem Exchange Online PowerShell V2 Module authentifizieren kann. Dies benötigt jedoch die Preview vom Exchange Online PowerShell V2 Module. Modern Auth and Unattended Scripts in Exchange Online PowerShell V2 https://techcommunity.microsoft.com/t5/exchange-team-blog/modern-auth-and-unattended-scripts-in-exchange-online-powershell/ba-p/1497387 App-only authentication for unattended scripts in the EXO V2 module https://docs.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps A first look at Certificate-Based Authentication for Exchange Online Remote PowerShell

Visual Studio Code and Azure DevOps Repo

Andres Bohren
Hallo zusammen, Kürzlich habe ich einen Blog Artikel geschrieben, wie man mit Visual Studio Code ein Version Control Repository in GitHub verwaltet. In diesem Artikel zeige ich euch Azure DevOps und wie man hier Code in einem Repository verwalten kann. Für die ersten fünf Benutzer ist Azure DevOps kostenlos. Danach kostet der Basci Plan 5.91 pro Benutzer und Monat. Für meine Zwecke reicht der Basis Plan. https://azure.microsoft.com/de-de/pricing/details/devops/azure-devops-services/ Nun muss man die Region auswählen

How to install Exchange Online Powershell V2 Preview Module

Andres Bohren
Hallo zusammen, Es gibt eine Preview vom ExchangeOnlineManagement Modul - musste ich natürlich ausprobieren. https://www.powershellgallery.com/packages/ExchangeOnlineManagement/2.0.3-Preview Um PowerShell Module zu installieren, muss die PowerShell als Administrator gestartet werden. Damit keine Module über die PowerShell Profile geladen werden, starte ich eine cmd als Administrator. Dort führe ich dann folgenden Befehl aus: start PowerShell -noprofile Als ich den Befehl für die Installation eingegeben habe, war der Parameter "-AllowPrerelease" unbekannt Install-Module -Name ExchangeOnlineManagement -AllowPrerelease

PowerShell 7.0.2

Andres Bohren
Hallo zusammen, Das Update der PowerShell 7 mit der Version 7.0.2 gibt es schon ein paar Wochen. Höchste Zeit das mal zu installieren. v7.0.2 Release of Powershell https://github.com/PowerShell/PowerShell/releases/tag/v7.0.2 Grüsse Andres Bohren

Visual Studio Code and Version Control - Part 1

Andres Bohren
Hallo zusammen, Die Rolle des Systemadministrators verändert sich schon seit ein paar Jahren. Obwohl Engineering immer noch ein grosser Teil des Alltags ist, wird die Automatisierung immer wichtiger. Ein Systemadministrator, welcher sich nur im GUI zurechtfindet, hat es immer schwieriger. Wer kein PowerShell oder ein paar andere Programmiersprachen wie C#, Javascript, Java, Phyton (die Liste lässt sich beliebig erweitern) kann, hat es immer schwerer. Seit einigen Jahren wird in der IT Industrie das DevOps Modell vorangetrieben.

Visual Studio Code and Version Control - Part 2

Andres Bohren
Hallo zusammen, Im vorangegangenen Artikel habe ich euch gezeigt, wie man VS Code und GIT installiert. Visual Studio Code and Version Control - Part 1 http://blog.icewolf.ch/archive/2020/07/04/visual-studio-code-and-version-control-part-1.aspx Nun muss man sich erstmal mit den Grundlagen von GIT auseinander setzen. Ich habe den untenstehenden Link gefunden und finde, er zeigt recht gut die Grundlagen der Versionsverwaltung mit GIT auf. Natürlich ist das stark vereinfacht, aber ich denke, das wichtigste steht da. git - Der einfache Einstieg

Visual Studio Code and Version Control - Part 3

Andres Bohren
Hallo zusammen, Im letzten Artikel haben wir uns mit den Grundlagen von GIT vertraut gemacht. Visual Studio Code and Version Control - Part 2 http://blog.icewolf.ch/archive/2020/07/04/visual-studio-code-and-version-control-part-2.aspx Nun folgt die praktische Anwendung im VS Code Ein paar Tips hierzu gibt's auch hier: Using Version Control in VS Code https://code.visualstudio.com/docs/editor/versioncontrol Mit Ctrl + Shift + P kommt man in die Command Palette. Dort gibt man folgendes ein: Git: Clone Ich habe mir schon vor einiger Zeit ein GitHub Konto angelegt und dort ein Repository angelegt.

Check for pending reboot with PowerShell

Andres Bohren
Hallo zusammen, Nachdem ich mich beim Exchange Update wieder mal durch den Wizard geklickt hatte und dann darauf hingewiesen wurde, dass noch ein Pending Reboot offen ist. Habe ich gedacht, das könnte man auch rasch vorher checken. Die folgende Tabelle habe ich im Internet gefunden. Daraus habe ich dann rasch ein PowerShell Script gebastelt. How to Check for a Pending Reboot in the Registry (Windows) https://adamtheautomator.com/pending-reboot-registry-windows/ KEY VALUE CONDITION HKLM:\SOFTWARE\Microsoft\Updates UpdateExeVolatile Value is anything other than 0 HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRenameOperations value exists HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRenameOperations2 value exists HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired NA key exists HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\Pending NA Any GUID subkeys exist HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\PostRebootReporting NA key exists HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce DVDRebootSignal value exists HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending NA key exists HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootInProgress NA key exists HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackagesPending NA key exists HKLM:\SOFTWARE\Microsoft\ServerManager\CurrentRebootAttempts NA key exists HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon JoinDomain value exists HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon AvoidSpnSet value exists HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName ComputerName Value ComputerName in HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName is different Daraus habe ich dann folgende PowerShell Script gemacht:

Powershell store password with encryption key

Andres Bohren
Hallo zusammen, Sicher steht der eine oder andere auch vor der Herausforderung, Credentials in Scripten zu verwenden. Dabei sollten die ja nicht gerade im Cleartext in den Scripten sichtbar sein. Mit folgendem Vorgehen, werden die Passwörter mit einem AES Key Encrypted und gespeichert. AES Encryption Key anlegen $Key = New-Object Byte[] 32 [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($Key) $Key | out-file E:\Scripting\aes.key Passwort mit dem Encryption Key speichern (get-credential).Password | ConvertFrom-SecureString -key (get-content E:\Scripting\aes.key) | set-content "