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.