Powershell
Scripting - the new way
Hallo zusammen,
Ich habe gestern die PowerShell Version 7.1.2 installiert.
Es wurde ja angekündigt, dass das ExchangeOnlineManagement (V2) PowerShell Modul irgendwann die PowerShell 7 unterstützen soll.
Wie man sieht, ist der Versuch fehlgeschlagen.
Für die Installation eines neuen Moduls muss die PowerShell als Administrator gestartet werden. Ich mache das immer so:
cmd (als Administrator starten)
Start PowerShell -NoProfile -NoLogo
Abfragen des installierten Moduls
Get-Module ExchangeOnlineManagement -ListAvailable
Abfragen der PowerShell Gallery nach dem neusten Modul https://www.powershellgallery.com/packages/ExchangeOnlineManagement/2.0.4
Find-Module ExchangeOnlineManagement -AllowPrerelease
Deinstallieren des alten PowerShell Moduls
Uninstall-Module ExchangeOnlineManagement
Installieren des aktuellsten Moduls
Install-Module ExchangeOnlineManagement
So nun versuchen wir das nochmals mit dem neuen PowerShell Modul
Beim Login hat sich etwas geändert. Anstatt in einem Popup muss das...
Hallo zusammen,
Es gibt eine neue Version von PowerShell 7 https://github.com/PowerShell/powershell/releases
Grüsse
Andres Bohren
Hallo zusammen,
In der Vergangenheit habe ich einige Scrips für Exchange Web Services (EWS) geschrieben. Da die Deaktivierung von Basic Auth immer näher rückt (auch wenn das jetzt wieder ein bisschen zurückgestellt wurde), macht es Sinn, mich mit der OAuth Authentifizierung von EWS zu beschäftigen.
Authenticate an EWS application by using OAuth
https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-authenticate-an-ews-application-by-using-oauth
In Azure AD habe ich eine Applikation erstellt, welche keine Rechte besitzt.
Um die EWS Impersonation zu setzen, muss man das Manifest bearbeiten und zwar den Parameter "requiredResourceAccess"
Es muss folgendes dort eingefügt werden
"requiredResourceAccess": [
{
"resourceAppId": "00000002-0000-0ff1-ce00-000000000000",
"resourceAccess": [
{
"id": "dc890d15-9560-4a4c-9b7f-a736ec74ec40",
"type": "Role"
}
]
}
],
Das bewirkt, dass das "full_access_as_app" als Application Permission vergeben wird. Dann muss man noch den...
Hallo zusammen,
Letztes Jahr habe ich einen Artikel geschrieben, wie man mit einer Application im AzureAD über die ClientID und einem ClientSecret via GraphAPI auf die Outlook Kalender zugreifen kann.
Schaut man sich die Permissions an, so kann man mit diesem Account auf alle Kalender der Exchange Organisation zugreifen. Eine Art von "Application Impersonation" Recht für Kalender.
Dieses unbeschränkte Recht lässt sich durch das Exchange Cmdlet "New-ApplicationAccessPolicy" einsch
New-ApplicationAccessPolicy
https://docs.microsoft.com/en-us/powershell/module/exchange/new-applicationaccesspolicy?view=exchange-ps
Dazu wird eine Mailenabled Security Group benötigt.
Für Exchange sollte es eine Universal Group vom Typ Security sein, welche Mail Enabled ist, also eine Emailadresse besitzt.
Die Gruppe hat zwei Mitglieder a.bohren@icewolf.ch und postmaster@icewolf.ch
Bisschen schade, dass eine...
Hallo zusammen,
Viele wissen gar nicht, dass man mithelfen kann die Microsoft Dokumentation unter https://docs.microsoft.com.
Bei folgendem Beispiel habe ich das gemacht:
New-CsOnlineAudioFile
https://docs.microsoft.com/en-us/powershell/module/skype/new-csonlineaudiofile?view=skype-ps
Klickt man auf den Feedback for "This page" Knopf, kommt man auf GitHub und kann ein Issue eröffnen (benötigt ein kostenloses GitHub Konto).
In diesem Fall habe ich mal nachgefragt, was denn der Unterschied zwischen New-CsOnlineAudioFile und Import-CsOnlineAudioFile.
https://github.com/MicrosoftDocs/office-docs-powershell/issues/7196
Ich glaube ich habe es mittlerweile verstanden: New-CsOnlineAudioFile erstellt ein AudioFile Objekt, welches dann beim Import-CsOnlineAudioFile verwendet werden kann.
#Create AudioFile Object
$content = Get-Content "E:\Temp\CallQueueDemo02.mp3" -Encoding byte -ReadCount 0
$AudioFile = New-CsOnlineAudioFile -FileName "CallQueueDemo02.mp3" -Content $content
$AudioFile
Die Eigenschaften des $AudioFile Objekts kann man mit Get-Member anschauen
$AudioFile | Get-Member
Man...
Hallo zusammen,
Vor zwei Wochen habe ich einen Blog Artikel über Teams Auto Attendnant und Call Queue geschrieben.
Seither habe ich nebenbei daran gearbeitet, das ganze auch per PowerShell anzulegen. Ich bin ja ein grosser Fan von PowerShell und Automatisierung.
Erstmal muss man sich mit dem Teams Modul mit Skype for Business Online verbinden
######################################################################
# Connect to SkypeForBusiness Online (Teams Module)
######################################################################
Import-Module MicrosoftTeams
$sfbSession = New-CsOnlineSession -OverrideAdminDomain icewolfch.onmicrosoft.com
Import-PSSession $sfbSession
Resource Accounts
Es müssen Resource Accounts für den Autoattendant und Call Queue angelegt
######################################################################
# Create Resource Account
######################################################################
#ApplicationID
#Auto Attendant: ce933385-9390-45d1-9512-c8d228074e07
#Call Queue: 11cd3e2e-fccb-42ad-ad00-878b93575e07
New-CsOnlineApplicationInstance
https://docs.microsoft.com/en-us/powershell/module/skype/new-csonlineapplicationinstance?view=skype-ps
New-CsOnlineApplicationInstance -UserPrincipalName CallQueueDemo02@icewolf.ch -DisplayName "CallQueueDemo02" -ApplicationId "11cd3e2e-fccb-42ad-ad00-878b93575e07"
New-CsOnlineApplicationInstance -UserPrincipalName AutoattendantDemo02@icewolf.ch -DisplayName "AutoattendantDemo02@icewolf.ch" -ApplicationId "ce933385-9390-45d1-9512-c8d228074e07"
Um den Resource Accounts...
Hallo zusammen,
In diesem Blog Artikel zeige ich euch, wie man ein SSL/TLS Zertifikat mit PowerShell von Let's Encrypt bereitstellt.
Es braucht einen ACME Client. Für Windows stehen da mehrere Optionen zur Verfügung. Ich habe mich für eines der zwei PowerShell Module entschieden.
Find-Module Posh-ACME
Mit folgenden Befehlen wird das PowerShell Modul installiert und die cmdlets vom Modul angezeigt.
Install-Module Posh-ACME
Import-Module Posh-ACME
Get-Command -Module Posh-ACME
Es muss ein Account mit der Emailadresse angelegt werden.
New-PAAccount -Contact a.bohren@icewolf.ch -AcceptTOS -KeyLenght 4096
Nun kann ein Zertifikat angefordert werden. Die Validierung erfolgt über einen DNS TXT Record.
New-PACertificate edge.serveralive.ch -AcceptTOS -Contact "a.bohren@icewolf.ch" -DnsSleep 15
Den TXT Record habe ich in meiner DNS Zone in...
Hallo zusammen,
In meinem LAB habe ich einen Windows Server 2012 R2. Damit die PowerShell Module über die PowerShell Gallery installiert werden können, muss das Windows Management Framework 5.1 installiert werden.
Wie man sieht ist auf dem Server PowerShell 4.0 installiert.
Get-Host
Nun wird das Windows Management Framework 5.1 (WMF 5.1) heruntergeladen.
https://www.microsoft.com/en-us/download/details.aspx?id=54616
Nun kann das WMF installiert werden.
Die Installation erfordert einen Neustart.
Nach dem Neustart sieht man, dass die PowerShell 5.1 installiert wurde.
Natürlich müsst ihr dafür sorgen, dass die TLS1.2 Settings für DotNet und PowerShell gesetzt sind. Wie das geht ist in folgendem Blog Artikel beschrieben http://blog.icewolf.ch/archive/2020/12/03/admins-setzt-endlich-die-tls-1-2-eintrage-fur-dotnetpowershell.aspx
Nun kann man prüfen ob man mit dem...
Hallo zusammen,
In diesem Blog Artikel erkläre ich euch, wie man die Konfiguration von Azure Active Directory Connect exportiert und mit PowerShell die XML Files durchsucht und die Konfiguration anzeigt.
Als erstes muss auf dem AAD Connect Server die Konfiguration exportiert werden
Import-Module ADSync
Get-ADSyncServerConfiguration -Path C:\Install\AADicewolf\
Im Verzeichnis werden drei weitere Ordner angelegt "Connectors", "GlobalSettings" und "SynchronizationRules".
In den Connectors gibt es zwei. Einen für Azure AD und den anderen für Active Directory.
In den Global Settings gibt es nur ein XML
In den Synchronization Rules gibt es ganz viele XML Files
Schauen wir uns mal die Connectoren an. Wie man sieht, handelt es sich um den...
Hallo zusammen,
Vor zwei Tagen wurde die neuste Version von PowerShell 7 mit der Version 7.1.1 veröffentlicht.
v7.1.1 Release of PowerShell
https://github.com/PowerShell/PowerShell/releases/tag/v7.1.1
Hier die Screenshots der Installation
Grüsse
Andres Bohren
Full Powershell Archive