Byta TLS Certifikat

$cert = Get-ExchangeCertificate -Thumbprint XXXXXX
$tlscertificatename = "<i>$($cert.Issuer)<s>$($cert.Subject)"

Byta på Send Connector

Set-SendConnector "SendConnector" -TlsCertificateName $tlscertificatename

Byta på ReceiveConnector

Set-ReceiveConnector "ReceiveConnector" -TlsCertificateName $tlscertificatename

Jobba med Inboxregler

Lista alla Inboxregler

foreach ($i in (Get-Mailbox -ResultSize unlimited)) { Get-InboxRule -Mailbox $i.DistinguishedName | fl MailboxOwnerID,name }

Lista alla Inboxregler som har delete message

foreach ($i in (Get-Mailbox -ResultSize unlimited)) { Get-InboxRule -Mailbox $i.DistinguishedName | where {$_.DeleteMessage} | fl MailboxOwnerID }

Convert Outlook FolderID

Script to Convert Outlook FolderID to HexEntryID
param ([string] $FolderId)
$HexEntryId = [System.BitConverter]::ToString([Convert]::FromBase64String($FolderId.ToString())).Replace("-","").Substring(2)
$HexEntryId = $HexEntryId.SubString(0,($HexEntryId.Length-2))
$HexEntryId

Exportera ut PST från textfil

Enkelt script för att exportera ut PST från en lista på mailboxar, filen behöver ha mailbox som kolumnamn. Ändra Server till rätt värde innan.

Import-Csv .\Rest_Archive.txt | foreach {
$MBX = get-mailbox -identity $_.mailbox
#---Testing----
# Write-Host $MBX.alias
# Write-Host "\\pdtexchange\pst\$($MBX.alias).pst" 
# New-MailboxExportRequest -Mailbox $_.mailbox -FilePath "\\server\pst\$($MBX.alias).pst" -WhatIf 
#---End testing---

New-MailboxExportRequest -Mailbox $_.mailbox -FilePath "\\server\pst\$($MBX.alias).pst"
}

Error: “does not have a valid ExchangeGuid property and cannot be migrated”

Problem vid crossforest migration

Kör get-mailbox <mailbox> | select exchangeguid i sourceforest.

Kopiera värdet för Exchangeguid till target med:

Get-MailUser jorbus | Set-MailUser -ExchangeGuid <Exchangeguid>

För samma problem med migrering till Office365 se:

https://support.microsoft.com/en-us/help/2956029/migrationpermanentexception-cannot-find-a-recipient-that-has-mailbox-g

Skicka anonyma mail Send-MailMessage

$anonUsername = "anonymous"
$anonPassword = ConvertTo-SecureString -String "anonymous" -AsPlainText -Force
$anonCredentials = New-Object System.Management.Automation.PSCredential($anonUsername,$anonPassword)

Send-MailMessage -to "nisse@contoso.com" -from "noreply@contoso.com" -subject "Email test from..." -credential $anonCredentials -SmtpServer mail.contoso.com -Attachments "C:\temp\path.txt"

TLS Receiveconnector

Hitta receiveconnectorer med TLS certifikat

get-receiveconnector -server $env:COMPUTERNAME | where {$_.TlsCertificatename -ne $null} | select Name,TLS*

Lista alla certifikat

Get-ExchangeCertificate | ft Thumbprint,Services,Subject,Notafter -AutoSize

Byta cert på connector

$tlscert = Get-ExchangeCertificate -Thumbprint <Thumbprint>
$tlscertname = "<I>$($TLSCert.Issuer)<S>$($TLSCert.Subject)"
get-receiveconnector -server $env:COMPUTERNAME | where {$_.TlsCertificatename -ne $null} | Set-ReceiveConnector -TlsCertificateName $TLSCertName

Aktivera cert för tjänster

Enable-ExchangeCertificate -Thumbprint <Thumbprint> -Services IIS,SMTP

 

Ändra recipientfilter Dynamiska distgrupper.

Exportera ut dom grupper som ska ändras med exempelvis:

Get-DynamicDistributionGroup | select Name,Recipientfilter | export-csv c:\temp\distgroup_before_change.csv -Encoding utf8 -NoTypeInformation

Öppna filen i Notepad++ och ta bort dom grupper som inte ska ändras. Ändra filter på dom grupper som ska ändras. Spara filen som distgroup_change.csv (utf8).

Verifiera först så att det fungerar med.

Import-Csv .\distgroup_change.csv | ForEach-Object { set-DynamicDistributionGroup -identity $_.name -RecipientFilter $_.recipientfilter -whatif }

Om allt ser ok ut, ta bort whatif och genomför ändringen.

Efter ändringen så tar du ut en likadan fil som när du startade med:

Get-DynamicDistributionGroup | select Name,Recipientfilter | export-csv c:\temp\distgroup_after_change.csv -Encoding utf8 -NoTypeInformation

Du kan även kolla gruppmedlemskap före och efter med:

foreach ($group in (Get-DynamicDistributionGroup)) {Get-Recipient -RecipientPreviewFilter $group.RecipientFilter -OrganizationalUnit $group.RecipientContainer | ft @{Expression={$_.displayname};Label=($group).name} | Out-File "c:\<path>.txt" -Append}

 

Blockera .NET 4.7.2

Blockera

reg add "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\WU" /v BlockNetFramework472 /t REG_DWORD /d 1 /f

Ta bort blockering

reg delete "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\WU" /v BlockNetFramework472 /f

Ovanstående körs från eleverad prompt

Script för att plocka ut mailboxlog Exchange

<# Export eventlog for a mailbox.
Parameters are username (mandatory) and enddate default today.
Exhange keep eventlogs for 7 days by default. 
#>
[CmdletBinding()]
Param
(
[Parameter(Mandatory=$true,
ValueFromPipeline = $false)]
[Alias('User')]
[string]$UserName,

[Parameter(Mandatory=$False)]
[string]$EndDate = (Get-Date)
)
$db = (get-mailbox $UserName).database 
$mb=(get-mailbox $UserName).exchangeguid 
Get-DatabaseEvent $db -MailboxGuid $mb -resultsize unlimited | ? {$_.documentid -ne 0 -and $_.CreateTime -ge $EndDate} | export-csv c:\temp\EventHistory$username.csv -NoTypeInformation -Encoding UTF8