Exchange Server 2019

Powershell – Exchange Server 2019 Befehle

Exchange Server 2019 Powershell-Befehle

Hier eine Sammlung an Powershellbefehlen für den erweiterten Admin.

Postfach-Funktionsrolle installieren

Install-WindowsFeature NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS

Powershell – Exchange Server 2019 Befehle

Ab hier wird es interessant. Diese Befehle werden nicht täglich benutzt, aber leicht vergessen.

Installation der Windows Server 2019 Feature für Edge-Funktionsrolle

Install-WindowsFeature ADLDS

Active Directory Schema Version abfragen

DSQUERY.exe * “CN=ms-Exch-Schema-Version-Pt,CN=schema,CN=configuration,DC=ndsedv,DC=de” -Scope base -Attr rangeUpper

Import eines exportierten Zertifikates aus einer PFX-Datei

$pwd = ConvertTo-SecureString -String ‘MyPa$$w0rd’ -AsPlainText -Force
Import-ExchangeCertificate -FileName ‘\\EX16\Temp\Certificate.pfx’ -Password $pwd -PrivateKeyExportable:$true -FriendlyName ‘Exchange Prod Cert’ -Server EX16

Abfrage der Zertifikate des lokalen Exchange Servers EX16

Get-ExchangeCertificate -Server EX16

Zertifikat durch Angabe des Fingerabdrucks für die Dienste IMAP4, POP3, WEB und SMTP binden

Enable-ExchangeCertificate -Thumbprint THUMBPRINT -Services IMAP,POP,IIS,SMTP

Exchange Server Lizenzschlüssel installieren

Set-ExchangeServer -Identity EX16 -ProductKey 11111-22222-33333-44444-55555

Erstellung einer neuen Edge-Abonnementdatei auf einem Edge-Servers

New-EdgeSubscription -FileName C:\Temp\Edgesync.XML

Import einer Edge-Abonnementdatei auf einem Exchange Server mit Postfach-Funktionsrolle mit Erstellung eines Internet-Sendekonnektors

New-EdgeSubscription -FileData ([byte[]]$(Get-Content -Path ‘C:\Temp\EdgeServerSubscription.XML’ -Encoding Byte -ReadCount 0)) -Site ‘Default-First-Site-Name’

Importieren einer Edge-Abonnementdatei auf einem Exchange Server mit Postfach-Funktionsrolle ohne Erstellung eines Internet-Sendekonnektors

New-EdgeSubscription -FileData ([byte[]]$(Get-Content -Path ‘C:\Temp\EdgeServerSubscription.XML’ -Encoding Byte -ReadCount 0)) -Site ‘Default-First-Site-Name’ -CreateInternetSendConnector:$false

Hinzufügen einer neuen UPN-Domäne im Active Directory Forest

Get-ADForest | Set-ADForest -UPNSuffixes @{add=”ndsedv.de”}

Abfrage aller Benutzer mit einem .local-UPN-Suffix

$Users = Get-ADUser -Filter {UserPrincipalName -like ‘*.local’} -Properties userPrincipalName -ResultSetSize $null

Alln Benutzer-Objekten das neue UPN-Suffix setzen

$Users | foreach {$upn = $_.UserPrincipalName.Replace(“nds.local”,”ndsedv.de”); $_ | Set-ADUser -UserPrincipalName $upn}

Konfiguration der URL-Einstellungen für zwei Exchange Server

.\ConfigureExchangeURLs.ps1 -Server SRVEX16,SRVEX17 -InternalURL mail.ndsedv.de -ExternalURL mail.ndsedv.de -AutodiscoverSCP autodiscover.ndsedv.de

Erstellung eines neuen Internet-Sendekonnektors

New-SendConnector -Name ‘Email-Internet’ -AddressSpaces * -Internet -SourceTransportServers SRVEX16

Setzen des FQDN-Parameter für dem Internet-Sendekonnektors

Set-SendConnector -Identity ‘Email-Internet’ -Fqdn smtp.ndsedv.de

Abfrage der Parameter für den Standard-Empfangskonnektor eines Exchange Servers mit Postfach-Funktionsrolle

Get-ReceiveConnector ‘SRVEX16\Default Frontend SRVEX16’ | FL Name,FQDN,Banner

Konfiguration der Office Online Server-URL je Exchange Server

Set-MailboxServer SRVEX16 -WacDiscoveryEndpoint ‘https://oos.int.ndsedv.de/hosting/discovery’

Konfiguration der Office Online Server-URL auf Organisationsebene

Set-OrganizationConfig -WacDiscoveryEndpoint ‘https://oos.int.ndsedv.de/hosting/discovery’

Abfrage der Skype for Business (SfB)-Konfiguration

Get-CsOAuthConfiguration

Setzen der Exchange Server AutoDiscover URL für SfB

Set-CsOAuthConfiguration -Identity global -ExchangeAutodiscoverUrl “https://autodiscover.ndsedv.de/autodiscover/autodiscover.svc”
New-CsPartnerApplication -Identity Exchange -ApplicationTrustLevel Full -MetadataUrl https://[AUTODISCOVER-FQDN]/autodiscover/metadata/json/1

Einrichtung von Skype for Business als Partner-Applikation

cd $exscripts
Configure-EnterprisePartnerApplication.ps1 -AuthMetadataUrl “https://[POOL-FQDN]/metadata/json/1” -ApplicationType Lync

Aktualisierung der Exchange-Topologie-Informationen auf dem lokalen Exchange Server

Get-ExchangeDiagnosticInfo -Server $ENV:COMPUTERNAME -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh

Konfiguration der OWA-Verzeichnisse auf allen Exchange Servern

Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -InstantMessagingEnabled $True -InstantMessagingType OCS

Neustart des OWA-Applikationspools auf allen Exchange Servern

Get-ExchangeServer | % {Invoke-Command -ComputerName $_.Name -ScriptBlock {Restart-WebAppPool MSExchangeOWAApppool} }

Neustart des OWA-Applikationspools auf allen Exchange 2019 Servern

Get-ExchangeServer | ? { $_.AdminDisplayVersion -like ‘*15.2.*’} | % {Invoke-Command -ComputerName $_.Name -ScriptBlock {Restart-WebAppPool MSExchangeOWAApppool} }

Konfiguration der Standard OWA-Postfachrichtlinie für Skype for Business

Set-OwaMailboxPolicy -Identity “Default” -InstantMessagingEnabled $True -InstantMessagingType “OCS”

Abfrage der vorhandenen RBAC-Rollegruppen

Get-RoleGroup | Sort-Object Name | FT Name,RoleAssignments -AutoSize

Auflistung der Mitglieder einer RBAC-Rollengruppe

Get-RoleGroup “Organization Management” | Get-RoleGroupMember

Abfrage des ECP-virtuellen Verzeichnisses für alle Exchange Server in der Exchange-Organisation

Set-ADServerSettings -ViewEntireForest:$true
Get-EcpVirtualDirectory | Sort-Object Server | Format-Table Server,Name,InternalUrl,ExternalUrl -AutoSize

Abfrage des OWA-virtuellen Verzeichnisses für alle Exchange Server in der Exchange-Organisation

Get-OwaVirtualDirectory | Sort-Object Server | Format-Table Server,Name,InternalUrl,ExternalUrl -AutoSize

Erstellung einer neuen Client Access Rule

New-ClientAccessRule -Name ‘Block External ECP Access’ -Action AllowAccess -AnyOfProtocols ExchangeAdminCenter -ExceptAnyOfClientIPAddressesOrRanges 10.100.10/24 -Priority 1

Aufbau einer Remote-PowerShell Session zu einem Exchange Server Endpunkt in der lokalen IT-Infrastruktur

$UserCredential = Get-Credential
$ServerFQDN = ‘SRVEX16.ndsedv.de’
$ConnectionString = “https://$($ServerFQDN)/PowerShell/”

Erstellung einer neuen PowerShell-Session

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $ConnectionString -Authentication Kerberos -Credential $UserCredential
Import-PSSession -Session $Session
Remove-PSSession $Session

Prüfung der Anti-Malware-Server-Konfiguration eines Exchange Servers

Get-MalwareFilteringServer SRVEX16 | fl

Deaktivierung des ActiveSync-Protokolls für alle Benutzer

Set-CASMailbox -ActiveSyncEnabled $false

Aktivierung der Quarantäne

Set-ActiveSyncOrganizationSettings -DefaultAccessLevel Quarantine

Blocken mobiler Active-Sync-Endgeräte

Set-ActiveSyncOrganizationSettings -DefaultAccessLevel Block

Neue Standardrichtlinie für mobile Endgeräte

New-MobileDeviceMailboxPolicy -Name “NDSEDV Default” -IsDefault $true -AllowUnsignedApplications $false -AllowInternetSharing $False -AllowCamera $false -AllowBluetooth HandsFreeOnly

Neue Richtlinie für Mitarbeiter der Abteilung Sales

New-MobileDeviceMailboxPolicy -Name “NDSEDV Sales” -RequireDeviceEncryption $true

Zuweisung der neuen Richtlinie für alle Postfacher in der Organisationseinheit Sales

Get-Mailbox -OrganizationalUnit “OU=Sales,OU=DE,Standort,DC=ndsedv,DC=de” | Set-CASMailbox -ActiveSyncMailboxPolicy “NDSEDV Sales”

Deaktivieren der Offline-Funktion für Outlook on the Web in einer Richtlinie

Set-OwaMailboxPolicy “NDSEDV OWA Policy” -AllowOfflineOn NoComputers

Erstellung einer neuen OWA-Postfach-Richtlinie

New-OwaMailboxPolicy -Name “NDSEDV Sales”

Konfiguration der OWA-Richtlinie für Sales

Set-OWAMailboxPolicy “NDSEDV Sales” -AllowOfflineOn NoComputers

Zuweisung der neuen OWA-Richtlinie an alle Postfächer der OU Sales

Get-Mailbox -OrganizationalUnit “OU=Sales,OU=DE,OU=Standort,DC=ndsedv,DC=de” | Set-CASMailbox -OwaMailboxPolicy “Varuna Sales”

Abfrage aller Aufbewahrungsrichtlinien

Get-RetentionPolicy

Löschung der Richtlinientag-Verlinkungen

Set-RetentionPolicy “Default MRM Policy” -RetentionPolicyTagLinks $null

Erstellung des Richtlinientags NDSEDV-Default

New-RetentionPolicyTag “NDSEDV-Default” -Type All -RetentionEnabled $true -AgeLimitForRetention 730 -RetentionAction PermanentlyDelete

Erstellung des Richtlinientags NDSEDV-Default-Sales

New-RetentionPolicyTag “NDSEDV-Default-Sales” -Type All -RetentionEnabled $true -AgeLimitForRetention 365 -RetentionAction PermanentlyDelete

Erstellung des Richtlinientags NDSEDV-DeletedItems

New-RetentionPolicyTag “NDSEDV-DeletedItems” -Type DeletedItems -RetentionEnabled $true -AgeLimitForRetention 30 -RetentionAction DeleteAndAllowRecovery

Erstellung des Richtlinientags NDSEDV-Conversation

New-RetentionPolicyTag “NDSEDV-Conversation” -Type ConversationHistory -RetentionEnabled $true -AgeLimitForRetention 60 -RetentionAction DeleteAndAllowRecovery

Erstellung des Richtlinientags NDSEDV-NeverDelete

New-RetentionPolicyTag “NDSEDV-NeverDelete” -Type Personal -RetentionEnabled $false -RetentionAction DeleteAndAllowRecovery

Neue Retention-Policy NDSEDVDefault

New-RetentionPolicy -Name “NDSEDVDefault” -RetentionPolicyTagLinks “NDSEDV-Default”,”NDSEDV-DeletedItems”, “NDSEDV-NeverDelete”

Neue Retention-Policy NDSEDVSales

New-RetentionPolicy -Name “NDSEDVSales” -RetentionPolicyTagLinks “NDSEDV-Default-Sales”, “NDSEDV-DeletedItems”,”NDSEDV-Conversation”

Zuweisung der Aufbewahrungsrichtlinie an Anwender in der OU Sales

Get-Mailbox -OrganizationalUnit “OU=Sales,OU=DE,OU=Standort,DC=ndsedv,DC=de” | Set-Mailbox -RetentionPolicy NDSEDVSales

Zuweisung der Aufbewahrungsrichtlinie an alle Benutzerpostfächer, denen nicht die NDSEDVSales-Richtlinie zugewiesen wurde

Set-ADServerSettings -ViewEntireForest $true
Get-Mailbox -ResultSize Unlimited | ?{($_.RecipientTypeDetials -eq “UserMailbox”) -and ($_.RetentionPolicy -ne “NDSEDVSales”)} | Set-Mailbox -RetentionPolicy NDSEDVSales

Aktivierung von Litigation Hold für ein Postfach ohne Zeitbegrenzung

Set-Mailbox -Identity JoernWalter -LitigationHoldEnabled $true

Aktivierung von Litigation Hold für ein Postfach, Laufzeit 2 Jahre

Set-Mailbox -Identity JoernWalter -LitigationHoldEnabled $true -LitigationHoldDuration 730

Aktivierung des Journalings für eine Postfachdatenbank

Set-MailboxDatabase -Identity DB01 -JournalRecipient journal@ndsedv.de

Import einer DLP-Richtlinienvorlage aus einem lokalen Verzeichnis

Import-DlpPolicyTemplate -FileData ([Byte[]]$(Get-Content -Path “C:\Temp\Custom-DLP-Policy.xml” -Encoding Byte -ReadCount 0))

Deaktivierung der Admin-Audit-Protokollierung

Set-AdminAuditLogConfig -AdminAuditLogEnabled $false

Abfrage der RecoverableItems-Ordnergrößen in einem Postfach

Get-Mailbox JoernWalter | Get-mailboxFolderStatistics -FolderScope RecoverableItems | FT Name,FolderSize -AutoSize

Aktivieren des Postfach-Audit-Protokolls für einen einzelnen Anwender

Set-Mailbox -Identity JoernWalter -AuditEnabled $true

Aktivieren des Postfach-Audit-Protokolls für alle geteilten Postfächer

Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq “SharedMailbox”} | Select PrimarySmtpAddress | ForEach {Set-Mailbox -Identity $_.PrimarySmtpAddress -AuditEnabled $true}

Aktivieren des Postfach-Audit-Protokolls für einen einzelnen Anwender

Set-Mailbox -Identity JoernWalter -AuditEnabled $false

Aktivieren des Postfach-Audit-Protokolls für Administratorzugriffe auf das Postfach eines einzelnen Anwenders

Set-Mailbox -Identity John.Doe@varunagroup.de -AuditAdmin MessageBind,FolderBind -AuditEnabled $true

Synchrone Suche im Postfach-Audit-Protokoll für Admin- und Stellvertreterzugriffe zwischen dem 01.01. und 30.04.2019

Search-MailboxAuditLog -Identity JoernWalter -LogonTypes Admin,Delegate -StartDate 1/1/2019 -EndDate 4/30/2019 -ResultSize 2000

Erstellung einer neuen OWA-Richtlinie

New-OwaMailboxPolicy -Name Audit-OWA-Policy

Prüfen, ob XML-Dateien in der OWA-Richtlinie blockiert werden

Get-OwaMailboxPolicy -Identity Audit-OWA-Policy | Select-Object -ExpandProperty AllowedFileTypes

Hinzufügen von XML als erlaubtem Dateityp in OWA-Richtlinie

Set-OwaMailboxPolicy -Identity Audit-OWA-Policy -AllowedFileTypes @{add=’.xml’}

Aktivierung des Audit-Protokoll-Bypasses für das Dienstkonto Monitoring

Set-MailboxAuditBypassAssociation -Identity “Monitoring” -AuditBypassEnabled $true

Deaktivierung des Audit-Protokoll-Bypasses für das Dienstkonto Monitoring

Set-MailboxAuditBypassAssociation -Identity “Monitoring” -AuditBypassEnabled $false

Ausgabe aller Postfach-Audit-Protokoll-Zuordnungen

Get-MailboxAuditBypassAssociation -ResultSize unlimited

Admin Werkzeuge für Profis

Weitere nützliche Tools findet ihr hier.

Powershell - Exchange Server 2019 Befehle