en-US/ExchangeNodeMaintenanceMode-help.xml
<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh"> <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp"> <command:details> <command:name>Get-ExchangeAdminExecution</command:name> <command:verb>Get</command:verb> <command:noun>ExchangeAdminExecution</command:noun> <maml:description> <maml:para>Just a neat function to check if we are elevated</maml:para> </maml:description> </command:details> <maml:description> <maml:para>Just a neat function to check if we are elevated</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-ExchangeAdminExecution</maml:name> </command:syntaxItem> </command:syntax> <command:parameters /> <command:inputTypes /> <command:returnValues /> <maml:alertSet> <maml:alert> <maml:para>Just an internal function.</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title> <dev:code># Good case</dev:code> <dev:remarks> <maml:para>PS > Get-ExchangeAdminExecution</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title> <dev:code># Bad case</dev:code> <dev:remarks> <maml:para>PS > Get-ExchangeAdminExecution</maml:para> <maml:para>Error: You need to start the PowerShell session as Admin (Elevated)</maml:para> </dev:remarks> </command:example> </command:examples> <command:relatedLinks /> </command:command> <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp"> <command:details> <command:name>Get-ExchangeExecutionPolicy</command:name> <command:verb>Get</command:verb> <command:noun>ExchangeExecutionPolicy</command:noun> <maml:description> <maml:para>Just a neat wrapper for Get-ExecutionPolicy</maml:para> </maml:description> </command:details> <maml:description> <maml:para>Nothing fancy, just a wrapper for the regular Get-ExecutionPolicy.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-ExchangeExecutionPolicy</maml:name> </command:syntaxItem> </command:syntax> <command:parameters /> <command:inputTypes /> <command:returnValues /> <maml:alertSet> <maml:alert> <maml:para>Just an internal function.</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title> <dev:code># Good case</dev:code> <dev:remarks> <maml:para>PS > Get-ExchangeExecutionPolicy</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title> <dev:code># Bad case</dev:code> <dev:remarks> <maml:para>PS > Get-ExchangeExecutionPolicy</maml:para> <maml:para>Error: Your PowerShell Execution Policy is Default and it should be Unrestricted or Bypass</maml:para> </dev:remarks> </command:example> </command:examples> <command:relatedLinks /> </command:command> <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp"> <command:details> <command:name>Invoke-ApplyExchangeCumulativeUpdate</command:name> <command:verb>Invoke</command:verb> <command:noun>ApplyExchangeCumulativeUpdate</command:noun> <maml:description> <maml:para>Apply an Exchange Cumulative Update</maml:para> </maml:description> </command:details> <maml:description> <maml:para>Apply an Exchange Cumulative Update, with the optional AD and Schema updates, and additional UM language packs update.</maml:para> <maml:para>Please read the Release Notes from Microsoft carefully, some updates need an Active Directory schema and/or Active Directory and/or Active Directory domain updates. If this is the case, please use the "Prepare" Switch on ONE Node!</maml:para> <maml:para>Nevertheless, please keep in mind, that you do NOT need to run the command with this Switch more than once. However, even if, the Switch will not harm in any kind, it is just a waste of time, and the installation will take longer.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Invoke-ApplyExchangeCumulativeUpdate</maml:name> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none"> <maml:name>Source</maml:name> <maml:Description> <maml:para>Source Directory of the Exchange Cumulative Update. Must exist.</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>E:\</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="3" aliases="none"> <maml:name>Prepare</maml:name> <maml:Description> <maml:para>Run prepare of Schema, Active Directory and AD Domain. You need to do this one one Node. the 2nd one could run the installer without it. Enabled by default</maml:para> </maml:Description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>True</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="4" aliases="none"> <maml:name>UMLangHandling</maml:name> <maml:Description> <maml:para>Handle the UM Language(s). Disabled by default</maml:para> </maml:Description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="5" aliases="none"> <maml:name>UMLangSource</maml:name> <maml:Description> <maml:para>Source Directory of the UM Language Pack(s). The Directory must exist!</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>F:\</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="6" aliases="none"> <maml:name>UMLanguages</maml:name> <maml:Description> <maml:para>UM Languages to handle. This is one string that should contain all languages.</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>De-DE,en-GB</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="wi"> <maml:name>WhatIf</maml:name> <maml:Description> <maml:para>Shows what would happen if the cmdlet runs. The cmdlet is not run.</maml:para> </maml:Description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="cf"> <maml:name>Confirm</maml:name> <maml:Description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:Description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none"> <maml:name>Source</maml:name> <maml:Description> <maml:para>Source Directory of the Exchange Cumulative Update. Must exist.</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>E:\</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="3" aliases="none"> <maml:name>Prepare</maml:name> <maml:Description> <maml:para>Run prepare of Schema, Active Directory and AD Domain. You need to do this one one Node. the 2nd one could run the installer without it. Enabled by default</maml:para> </maml:Description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>True</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="4" aliases="none"> <maml:name>UMLangHandling</maml:name> <maml:Description> <maml:para>Handle the UM Language(s). Disabled by default</maml:para> </maml:Description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="5" aliases="none"> <maml:name>UMLangSource</maml:name> <maml:Description> <maml:para>Source Directory of the UM Language Pack(s). The Directory must exist!</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>F:\</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="6" aliases="none"> <maml:name>UMLanguages</maml:name> <maml:Description> <maml:para>UM Languages to handle. This is one string that should contain all languages.</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>De-DE,en-GB</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="wi"> <maml:name>WhatIf</maml:name> <maml:Description> <maml:para>Shows what would happen if the cmdlet runs. The cmdlet is not run.</maml:para> </maml:Description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="cf"> <maml:name>Confirm</maml:name> <maml:Description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:Description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> </command:parameters> <command:inputTypes /> <command:returnValues /> <maml:alertSet> <maml:alert> <maml:para>TODO: Error handling. At the moment it is just a fire an forget thing!</maml:para> <maml:para>This function is just a wrapper for the default SETUP.EXE of the Exchange Cumulative Update package and the UM Language Pack update(s).</maml:para> <maml:para>You might tweak the directory variable. Or just use the parameters to do so.</maml:para> <maml:para>Someone asked me: "Why not stopping the Windows Defender during the update? Defender will consume a lot of CPU." I agree; it will use some CPU during the update, but I'm not a fan of doing this. There is a reason for an Anti-Virus tool, by stopping the scan engine the system would be at risk! And this is something I don't want a system I'm responsible for! If you want to do something like this, this is your decision. However, I "highly" recommend not doing it. And this applies to all AV scanners on your servers!</maml:para> <maml:para>One last thing: Be patient if you install the Exchange Cumulative Update! The preparation (e.g. Schema, Active Directory and Domain) should be quick, even if you environment is distributed. The removal of the old installation and especially the update installation with the restart of all services might take a while to complete (depending on your hardware, it could be 30 minutes, or more!). Why this is important: During the installation, the other Node(s) needs to handle the load, and you might need to communicate, that you have the risk of a single point of failure.</maml:para> <maml:para>. LINK Invoke-Exchange2016Workaround Set-ExchangeNodeMaintenanceModeOn Set-ExchangeNodeMaintenanceModeOff Test-ExchangeNodeMaintenanceMode</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title> <dev:code># Use the defaults to install the CU</dev:code> <dev:remarks> <maml:para>PS > Invoke-ApplyExchangeCumulativeUpdate</maml:para> <maml:para>Microsoft Exchange Server 2016 Cumulative Update 6 Unattended Setup Copying Files... File copy complete. Setup will now collect additional information needed for installation. Performing Microsoft Exchange Server Prerequisite Check Prerequisite Analysis COMPLETED Extending Active Directory schema COMPLETED Organization Preparation COMPLETED</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title> <dev:code># Use the defaults to install the CU, where '\\SERVER\Share\' is the location of the CU (Sources)</dev:code> <dev:remarks> <maml:para>PS > Invoke-ApplyExchangeCumulativeUpdate -Source '\\SERVER\Share\'</maml:para> <maml:para>Performing Microsoft Exchange Server Prerequisite Check</maml:para> <maml:para>Configuring Prerequisites COMPLETED Prerequisite Analysis COMPLETED</maml:para> <maml:para>Configuring Microsoft Exchange Server</maml:para> <maml:para>Preparing Setup COMPLETED Stopping Services COMPLETED Language Files COMPLETED Removing Exchange Files COMPLETED Preparing Files COMPLETED Copying Exchange Files COMPLETED Language Files COMPLETED Restoring Services COMPLETED Language Configuration COMPLETED Exchange Management Tools COMPLETED Mailbox role: Transport service COMPLETED Mailbox role: Client Access service COMPLETED Mailbox role: Unified Messaging service COMPLETED Mailbox role: Mailbox service COMPLETED Mailbox role: Front End Transport service COMPLETED Mailbox role: Client Access Front End service COMPLETED Finalizing Setup COMPLETED</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 3 --------------------------</maml:title> <dev:code># Install the the and the updates the default UM Languages from a given location</dev:code> <dev:remarks> <maml:para>PS > Invoke-ApplyExchangeCumulativeUpdate -Source '\\SERVER\Share\' -UMLangHandling -UMLangSource '\\SERVER\Share\UM-Updates\'</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 4 --------------------------</maml:title> <dev:code># Install the the and the updates the given UM Languages</dev:code> <dev:remarks> <maml:para>PS > Invoke-ApplyExchangeCumulativeUpdate -UMLangHandling -UMLanguages 'es-MX,es-ES'</maml:para> <maml:para>Microsoft Exchange Server 2016 Cumulative Update 6 Unattended Setup</maml:para> <maml:para>UM Language Pack for es-MX UM Language Pack for es-ES</maml:para> <maml:para>Performing Microsoft Exchange Server Prerequisite Check</maml:para> <maml:para>Prerequisite Analysis COMPLETED</maml:para> <maml:para>Configuring Microsoft Exchange Server</maml:para> <maml:para>UM language pack for (es-MX) COMPLETED UM language pack for (es-ES) COMPLETED</maml:para> <maml:para>The Exchange Server setup operation completed successfully.</maml:para> </dev:remarks> </command:example> </command:examples> <command:relatedLinks /> </command:command> <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp"> <command:details> <command:name>Invoke-Exchange2016Workaround</command:name> <command:verb>Invoke</command:verb> <command:noun>Exchange2016Workaround</command:noun> <maml:description> <maml:para>Workaround for Exchange 2016 on Windows Server 2016</maml:para> </maml:description> </command:details> <maml:description> <maml:para>Workaround for Exchange 2016 on Windows Server 2016</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Invoke-Exchange2016Workaround</maml:name> </command:syntaxItem> </command:syntax> <command:parameters /> <command:inputTypes /> <command:returnValues /> <maml:alertSet> <maml:alert> <maml:para>This is a quick an dirty one :)</maml:para> <maml:para>. LINK Set-ExchangeNodeMaintenanceModeOn Set-ExchangeNodeMaintenanceModeOff Test-ExchangeNodeMaintenanceMode Invoke-ApplyExchangeCumulativeUpdate</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title> <dev:code>Invoke-Exchange2016Workaround</dev:code> <dev:remarks> <maml:para></maml:para> </dev:remarks> </command:example> </command:examples> <command:relatedLinks /> </command:command> <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp"> <command:details> <command:name>Restart-ExchangeClusterNode</command:name> <command:verb>Restart</command:verb> <command:noun>ExchangeClusterNode</command:noun> <maml:description> <maml:para>Wrapper to initiate a clean reboot</maml:para> </maml:description> </command:details> <maml:description> <maml:para>This function is a neat wrapper to initiate a clean reboot of a given Exchange Cluster Node. Brings the Exchange Cluster Node in Maintenance Mode and reboots it.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Restart-ExchangeClusterNode</maml:name> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none"> <maml:name>ComputerName</maml:name> <maml:Description> <maml:para>Name of the Exchange Node. Default is the local system.</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>$env:COMPUTERNAME</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="wi"> <maml:name>WhatIf</maml:name> <maml:Description> <maml:para>Shows what would happen if the cmdlet runs. The cmdlet is not run.</maml:para> </maml:Description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="cf"> <maml:name>Confirm</maml:name> <maml:Description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:Description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none"> <maml:name>ComputerName</maml:name> <maml:Description> <maml:para>Name of the Exchange Node. Default is the local system.</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>$env:COMPUTERNAME</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="wi"> <maml:name>WhatIf</maml:name> <maml:Description> <maml:para>Shows what would happen if the cmdlet runs. The cmdlet is not run.</maml:para> </maml:Description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="cf"> <maml:name>Confirm</maml:name> <maml:Description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:Description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> </command:parameters> <command:inputTypes /> <command:returnValues /> <maml:alertSet> <maml:alert> <maml:para>Wrapper to initiate a clean reboot</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title> <dev:code>Restart-ExchangeClusterNode</dev:code> <dev:remarks> <maml:para></maml:para> </dev:remarks> </command:example> </command:examples> <command:relatedLinks /> </command:command> <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp"> <command:details> <command:name>Set-ExchangeNodeMaintenanceModeOff</command:name> <command:verb>Set</command:verb> <command:noun>ExchangeNodeMaintenanceModeOff</command:noun> <maml:description> <maml:para>Return Exchange Node to normal operation</maml:para> </maml:description> </command:details> <maml:description> <maml:para>Disable the Maintenance Mode on a given the Exchange Node.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Set-ExchangeNodeMaintenanceModeOff</maml:name> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none"> <maml:name>ComputerName</maml:name> <maml:Description> <maml:para>Name of the Exchange Node, default is local system</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>$env:COMPUTERNAME</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="wi"> <maml:name>WhatIf</maml:name> <maml:Description> <maml:para>Shows what would happen if the cmdlet runs. The cmdlet is not run.</maml:para> </maml:Description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="cf"> <maml:name>Confirm</maml:name> <maml:Description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:Description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none"> <maml:name>ComputerName</maml:name> <maml:Description> <maml:para>Name of the Exchange Node, default is local system</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>$env:COMPUTERNAME</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="wi"> <maml:name>WhatIf</maml:name> <maml:Description> <maml:para>Shows what would happen if the cmdlet runs. The cmdlet is not run.</maml:para> </maml:Description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="cf"> <maml:name>Confirm</maml:name> <maml:Description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:Description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> </command:parameters> <command:inputTypes /> <command:returnValues> <command:returnValue> <dev:type> <maml:name>System.Boolean</maml:name> </dev:type> <maml:description> <maml:para></maml:para> </maml:description> </command:returnValue> </command:returnValues> <maml:alertSet> <maml:alert> <maml:para>If you installed an update (or CU), you might need a reboot anyway.</maml:para> <maml:para>. LINK Invoke-Exchange2016Workaround Set-ExchangeNodeMaintenanceModeOn Test-ExchangeNodeMaintenanceMode Invoke-ApplyExchangeCumulativeUpdate</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title> <dev:code># Enable normal operations</dev:code> <dev:remarks> <maml:para>PS > Set-ExchangeNodeMaintenanceModeOff $true</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title> <dev:code># Fails to enable noprmal operations</dev:code> <dev:remarks> <maml:para>PS > Set-ExchangeNodeMaintenanceModeOff $false</maml:para> </dev:remarks> </command:example> </command:examples> <command:relatedLinks /> </command:command> <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp"> <command:details> <command:name>Set-ExchangeNodeMaintenanceModeOn</command:name> <command:verb>Set</command:verb> <command:noun>ExchangeNodeMaintenanceModeOn</command:noun> <maml:description> <maml:para>Set the Exchange Node to Service</maml:para> </maml:description> </command:details> <maml:description> <maml:para>Enable the Maintenance Mode on a given the Exchange Node.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Set-ExchangeNodeMaintenanceModeOn</maml:name> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none"> <maml:name>ComputerName</maml:name> <maml:Description> <maml:para>Name of the Exchange Node, default is local system</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>$env:COMPUTERNAME</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="wi"> <maml:name>WhatIf</maml:name> <maml:Description> <maml:para>Shows what would happen if the cmdlet runs. The cmdlet is not run.</maml:para> </maml:Description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="cf"> <maml:name>Confirm</maml:name> <maml:Description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:Description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none"> <maml:name>ComputerName</maml:name> <maml:Description> <maml:para>Name of the Exchange Node, default is local system</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>$env:COMPUTERNAME</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="wi"> <maml:name>WhatIf</maml:name> <maml:Description> <maml:para>Shows what would happen if the cmdlet runs. The cmdlet is not run.</maml:para> </maml:Description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="cf"> <maml:name>Confirm</maml:name> <maml:Description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:Description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> </command:parameters> <command:inputTypes /> <command:returnValues /> <maml:alertSet> <maml:alert> <maml:para>Perfect to apply Updates (or even CU installations). Check the Update/CU, aou might need a restart of the Server, so there might be no need to bring the Node back in Service.</maml:para> <maml:para>. LINK Invoke-Exchange2016Workaround Set-ExchangeNodeMaintenanceModeOff Test-ExchangeNodeMaintenanceMode Invoke-ApplyExchangeCumulativeUpdate</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title> <dev:code># Node is in Maintenance Mode</dev:code> <dev:remarks> <maml:para>PS > Set-ExchangeNodeMaintenanceModeOn $false</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title> <dev:code># Node is not in Maintenance Mode</dev:code> <dev:remarks> <maml:para>PS > Set-ExchangeNodeMaintenanceModeOn $true</maml:para> </dev:remarks> </command:example> </command:examples> <command:relatedLinks /> </command:command> <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp"> <command:details> <command:name>Test-ExchangeNodeMaintenanceMode</command:name> <command:verb>Test</command:verb> <command:noun>ExchangeNodeMaintenanceMode</command:noun> <maml:description> <maml:para>Check if the exchange node is in maintenance mode</maml:para> </maml:description> </command:details> <maml:description> <maml:para>Check if the exchange node is in maintenance mode</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Test-ExchangeNodeMaintenanceMode</maml:name> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none"> <maml:name>ComputerName</maml:name> <maml:Description> <maml:para>Name of the Exchange Node, default is local system</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>$env:COMPUTERNAME</dev:defaultValue> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none"> <maml:name>ComputerName</maml:name> <maml:Description> <maml:para>Name of the Exchange Node, default is local system</maml:para> </maml:Description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>$env:COMPUTERNAME</dev:defaultValue> </command:parameter> </command:parameters> <command:inputTypes /> <command:returnValues> <command:returnValue> <dev:type> <maml:name>System.Boolean</maml:name> </dev:type> <maml:description> <maml:para></maml:para> </maml:description> </command:returnValue> </command:returnValues> <maml:alertSet> <maml:alert> <maml:para>TODO: The certificate handler is not perfect. Find a betetr solution! TODO: Need a few more checks.</maml:para> <maml:para>. LINK Invoke-Exchange2016Workaround Set-ExchangeNodeMaintenanceModeOn Set-ExchangeNodeMaintenanceModeOff Invoke-ApplyExchangeCumulativeUpdate</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title> <dev:code># Given node is in normal operation mode</dev:code> <dev:remarks> <maml:para>PS > Test-ExchangeNodeMaintenanceMode $false</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title> <dev:code># Given node is in maintenance mode</dev:code> <dev:remarks> <maml:para>PS > Test-ExchangeNodeMaintenanceMode $true</maml:para> </dev:remarks> </command:example> </command:examples> <command:relatedLinks /> </command:command> </helpItems> |