Purge Mailbox Deleted Items Folder

Get current Settings

Get-Mailbox service@contoso.de | Format-List SingleItemRecoveryEnabled,RetainDeletedItemsFor

or use

Get-mailbox service@contoso.de | fl *retention*,*retain*

Set New Settings

Set-Mailbox -Identity service@contoso.de -SingleItemRecoveryEnabled $false -RetainDeletedItemsFor 1

#Purges folder deletes after 1 day

Delete Items in Dumpster

Search-mailbox -identity service@contoso.de -SearchDumpsterOnly -DeleteContent

View Recoverable items in Dumpster

Get-MailboxFolderStatistics service@contoso.de -FolderScope RecoverableItems | Format-List Name,FolderAndSubfolderSize

Remove a Name Server from All Reverse Zones

##############################

# The following section contains all input parameters

$DC = “DC1.contoso.internal” # Domain controller to be used

$nameserver = “DNS.contoso.internal” # Nameserver to remove

#

##############################

$list = Get-DnsServer -ComputerName $DC | select -Property serverzone -ExpandProperty serverzone | where  {$_.isdsintegrated -eq “true” -and $_.isreverselookupzone -eq “true”} | select -Property zonename

foreach ($zone in $list ) {Remove-DnsServerResourceRecord -ComputerName $DC -ZoneName $zone.zonename -RRType Ns -Name “@” -RecordData $nameserver -Force}

Get all DNS Zones and Records in CSV

$results = Get-DnsServerZone | % {

    $zone = $_.zonename

    Get-DnsServerResourceRecord $zone | select @{n=’ZoneName’;e={$zone}}, HostName, RecordType, @{n=’RecordData’;e={if ($_.RecordData.IPv4Address.IPAddressToString) {$_.RecordData.IPv4Address.IPAddressToString} else {$_.RecordData.NameServer.ToUpper()}}}

}

$results | Export-Csv -NoTypeInformation c:\temp\DNSRecords.csv -Append

Add/Update DNS servers for Azure VM

Log onto Azure > Find VM > Operations, Run Command > Run PowerShell Script

Get-NetAdapter | Select-Object InterfaceAlias , InterfaceIndex

Take a note of the InterfaceIndex

Get-DnsClientServerAddress -InterfaceIndex 7

Checks current DNS servers.

Set-DnsClientServerAddress -InterfaceIndex 7 -ServerAddresses (“10.215.153.11″,”168.63.129.16″,”10.230.160.15”)

Sets DNS servers

Register-DnsClient

PS equivalent of Ipconfig /registerDNS

Get-DnsClientServerAddress -InterfaceIndex 7

Check interface for new DNS servers

Assign full permissions for a user to another users calendar

Cannot assign folder permissions in mixed hybrid environment i.e. cannot grant a M365 user calendar permissions to an On-Prem 2016 mailbox or vice versa.

john@contoso.com is the calendar being shared
scahill@xyz or dirk@contoso.de is the person who is being granted permission

Get Existing Permissions

Get-MailboxFolderPermission -Identity john@contoso.com:\Calendar

If user is not English speaking get calendar or other folder local name using
Get-MailboxFolderStatistics -Identity dirk@contoso.de -FolderScope Calendar

Get the existing permissions using the local calendar name
Get-MailboxFolderPermission -Identity dirk@contoso.de\Kalendar

Grant Edit Permissions

Set-MailboxFolderPermission -Identity john@contoso.com:\Calendar-User <alias> -AccessRights Editor

Grant Manage Permissions

Add-MailboxFolderPermission -Identity john@contoso.com:\Calendar -User scahill@xyz -AccessRights Editor -SharingPermissionFlags Delegate,CanViewPrivateItems

Note -SharingPermissionFlags is cloud only

Grant Free/Busy Permissions Only

Add-MailboxFolderPermission -Identity john@contoso.com:\Calendar -AccessRights AvailabilityOnly -User scahill@xyz.com

Grant Read-Only Permissions

Add-MailboxFolderPermission -Identity john@contoso.com:\Calendar -AccessRights Reviewer -User scahill@xyz.com

Grant Limited Details Permissions

Set-MailboxFolderPermission -Identity john@contoso.com:\Calendar -User normilg -AccessRights Editor – scahill@xyz.com -SharingPermissionFlags Delegate,CanViewPrivateItems

Remove Permissions

Remove-MailboxFolderPermission -Identity john@contoso.com:\Calendar -User scahill@xyz.com

Calendar Sharing Rights aka Access Rights

Author: CreateItems, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems

Contributor: CreateItems, FolderVisible

Editor: CreateItems, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems

None: FolderVisible

NonEditingAuthor: CreateItems, FolderVisible, ReadItems

Owner: CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderContact, FolderOwner, FolderVisible, ReadItems

PublishingEditor: CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems

PublishingAuthor: CreateItems, CreateSubfolders, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems

Reviewer: FolderVisible, ReadItems

Set “Out of Office” on Mailbox with PowerShell

Dates are 6th April 2021 to 7th April 2021 and are always in American format (mm/dd/yyyy)

Uses email address

Set-MailboxAutoReplyConfiguration -identity mary.raymond@XYZ.com -AutoReplyState scheduled -starttime “04/06/2021” -endtime “04/07/2021 08:00:00” -ExternalAudience all -InternalMessage $message -ExternalMessage $message

Set-MailboxAutoReplyConfiguration -identity Emma.johnson@xyz.co.uk -AutoReplyState scheduled -starttime “04/06/2021” -endtime “04/07/2021” -ExternalAudience all -InternalMessage “I am currently out the office and will be returning on 7th April 2021.” -ExternalMessage “I am currently out the office and will be returning on 7th April 2021.”

Uses mail alias

Set-MailboxAutoReplyConfiguration <alias> -AutoReplyState enabled -ExternalAudience all -InternalMessage “This email address is no longer in use. Please email jimmy.parker@XYZ.com, Thanks” -ExternalMessage “This email address is no longer in use. Please email jimmy.parker@XYZ.com, Thanks”

Set-MailboxAutoReplyConfiguration <alias> -AutoReplyState scheduled -starttime “04/06/2021” -endtime “04/07/2021” -ExternalAudience all -InternalMessage “I’m currently out of the office and this mailbox is not being monitored. If you have any queries which need responding to please contact my manager Mark Mende by email mark.mende@xyz.co.uk” -ExternalMessage “I’m currently out of the office and this mailbox is not being monitored. If you have any queries which need responding to please contact my manager Mark Bloggs by email mark.bloggs@xyz.co.uk

If part of the message has a $ sign – Use single quotes instead of double quotes

Set-MailboxAutoReplyConfiguration -identity risk@xyz.com -AutoReplyState enabled -ExternalAudience all -InternalMessage  ‘Thank you for your mail. Please note that this is an unmonitored mail box. Please redirect your mail to $Risk@xyz.com‘ -ExternalMessage ‘Thank you for your mail. Please note that this is an unmonitored mail box. Please redirect your mail to $Risk@xyz.com

To check your results afterwards: 

Get-MailboxAutoReplyConfiguration –Identity  servicing@xyz.co.uk

To turn off auto-replies

Set-MailboxAutoReplyConfiguration -Identity <alias or email> -AutoReplyState disabled

To turn off auto-replies and clear the reply text

Set-MailboxAutoReplyConfiguration <alias or email> –AutoReplyState Disabled –ExternalMessage $null –InternalMessage $null

HTML Multiline Message, use <br> tags for line breaks

Set-MailboxAutoReplyConfiguration -identity <alias or email> -AutoReplyState enabled -ExternalAudience all -InternalMessage “This mailbox is currently closed and is not monitored.<br><br>Please contact the Service Desk using your company’s number below..<br><br>XYZ Europe: +01 123 456 7890 <br><br>Alternatively  please log your issue on Service Desk Online through your company Intranet.” -ExternalMessage “”This mailbox is currently closed and is not monitored.<br><br>Please contact the Service Desk using your company’s number below..<br><br>XYZ Europe: +01 123 456 7890 <br><br>Alternatively  please log your issue on Service Desk Online through your company Intranet.”

Exit mobile version
%%footer%%