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

Analysera nätverkstrafik

För att analysera nätverkstrafik utan att installera program på servrar så kan man använda Netsh.

Skriv: 
netsh trace start tracefile=<filenameandpath> capture=yes maxsize=200 filemode=circular overwrite=yes report=no
När tracen är klar skriver du:
netsh trace stop

Filen som skapas för du sedan över till din dator där du har Netmon installerat.

För att visa filen behöver du välja Windows som aktiv profil.

Detta gör du under Options/Parser Profiles.

Söka efter inloggningar i säkerhetsloggen

För att hitta inloggningar från Administrator på lokal dator.

Get-WinEvent -LogName Security -FilterXPath "*[System[EventID=4624 and TimeCreated[timediff(@SystemTime) <= 86400000]] and EventData[Data[@Name='TargetUserName']='Administrator']]"

För mer info kör | select *

Get-WinEvent -LogName Security -FilterXPath "*[System[EventID=4624 and TimeCreated[timediff(@SystemTime) <= 86400000]] and EventData[Data[@Name='TargetUserName']='Administrator']]" | select *

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"