Exchange is nothing if not inconsistent with how date/time values are interpreted when used as an input parameter or when displayed as a property. I tested some cmdlets I commonly use and have documented how Exchange handles the input and output of the date/time values.
Get-MessageTrackingLog | Input: Format is with respect to the time zone of the server to which your shell is connected.
Scenario: User in Pacific Time (PT) sends a message at 8:23 AM. If you are connected to a server in the same time zone, the input would be 8:23 AM. If you are connected to a server in Mountain Time (MT), the input is 9:23 AM. Implicit remoting uses the server’s time, not the local workstation.
Output: Format is localized to the time zone of the shell running the cmdlet. Scenario: Shell running on a server in MT will return the time adjusted for MT. Implicit remoting uses the time of the machine running the shell, which means a system in PT with implicit remoting to a server in MT will return the time in PT. |
Get-ActiveSyncDeviceStatistics | Output: Format is displayed in UTC, regardless of time zone of the server connected to or the system running the shell. |
Get-Queue | Output: Format is localized to the time zone of the shell running the cmdlet.
Scenario: Shell running on a server in MT will return the time adjusted for MT. Implicit remoting uses the time of the machine running the shell, which means a system in PT with implicit remoting to a server in MT will return the time in PT. |
Set-MailboxAutoReplyConfiguration | Input: Format is with respect to the time zone of the server to which your shell is connected.
Scenario: User in PT wants OOF to start at 9:00 AM. If you are connected to a server in the same time zone, the input would be 9:00 AM. If you are connected to a server in MT, the input is 10:00 AM. Implicit remoting uses the server’s time, not the local workstation. |
Get-MailboxAutoReplyConfiguration | Output: Format is localized to the time zone of the shell running the cmdlet.
Scenario: Shell running on a server in MT will return the time adjusted for MT. Implicit remoting uses the time of the machine running the shell, which means a system in PT with implicit remoting to a server in MT will return the time in PT. |
Set-MailboxCalendarConfiguration | Input: Format is a “literal” time that will always be interpreted to be local to the value of the WorkingHoursTimeZone property, regardless of the time zone of system running the shell.
Scenario: A user’s working hours start time needs to be changed to 9:00 AM local time. The input will be 9:00 AM, regardless of the user’s time zone, the time zone of the server connected to, or the system running the shell. |
Get-MailboxCalendarConfiguration | Output: Format is non-localized, always interpreted to be local to the WorkingHoursTimeZone property.
Scenario: A user’s working hours start time is 8:00 AM local time. The time will always be displayed as 8:00 AM, regardless of the time zone of the system running the shell. |
Search-AdminAuditLog | Input: Format is with respect to the time zone of the server to which your shell is connected.
Scenario: A change is made at 8:23 AM PT. If you are connected to a server in the same time zone, the input would be 8:23 AM. If you are connected to a server in Mountain Time (MT), the input is 9:23 AM. Implicit remoting uses the server’s time, not the local workstation.
Output: Format is localized to the time zone of the shell running the cmdlet. Scenario: Shell running on a server in MT will return the time adjusted for MT. Implicit remoting uses the time of the machine running the shell, which means a system in PT with implicit remoting to a server in MT will return the time in PT. |