# Variables.xml Explanation

## Overview

The Windows Automated Setup script automates server setups based off of selections and input defined in Variables.xml.
This document provides a detailed explanation on each xml tag, what it triggers and how to input data.   
The supplied Variables.xml file defaults the below tags:     
`Variables.AutomationSettings.EnablePSTranscript - True `    
`Variables.AutomationSettings.UnattendedSetup - True `    
`Variables.AutomationSettings.AutomaticReboots - True `    
`Variables.AutomationSettings.WindowsPSMPath - True `        
`Variables.PostConfiguration.PostReboot.PSCommand - C:\DPAutomation\AutomatedServerSetup-Cleanup.ps1 -VariablesFile 'C:\DPAutomation\Variables.xml' -Directory 'C:\DPAutomation' `    


## Source    

Public download link: https://toolkit.datapipe.net/BesTasks/anthony/AutomatedServerSetup/Variables.xml       

## Usage

***

### Variables.DoNotModify

`.Version`   
**Description:** Version information used for Variables.xml updates.   
**Required:** Required   
**Accepted Values:** Do not modify.   
**Examples:** N/A      

`.Date`   
**Description:** Date the file was released.   
**Required:** Required   
**Accepted Values:** Do not modify.   
**Examples:** N/A   

***

### Variables.AutomationSettings   

`.EnablePSTransport`   
**Description:** Enables Powershell transcript option, which outputs Powershell console messages and errors to: C:\Windows\Temp\PSTranscript-(Date).txt.      
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True
**Examples:** `<EnablePSTransport>True</EnablePSTransport>`      

`.UnattendedSetup`   
**Description:** Setting this tag to true disables prompts which require user confirmation to continue.       
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<UnattendedSetup>True</UnattendedSetup>`   

`.AutomaticReboots`   
**Description:** Setting this tag to true will enable automatic reboots.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<AutomaticReboots>True</AutomaticReboots>`   

`.WindowsPSMPath`   
**Description:** Full path to the DP Windows PSM.          
**Required:** Required.   
**Accepted Values:** Must be the full path to the PSM, including the file name.         
**Examples:** `<WindowsPSMPath>C:\DPAutomation\DPWindowsPSM.psm1</WindowsPSMPath>`    

***

### Variables.FileDownloads   
**Notes:**   
There are 10 tags, allowing a total of 10 downloads.  The details below are for Download1.  For downloads 2 through 10, change Download1 to the correct download #.   
Both tags, .Source and .Destination must be defined in order to enable the feature.   

`.Download1.Source`   
**Description:** URL of the file you want to download.      
**Required:** Not required.  When left blank the option will remain disabled.     
**Accepted Values:** URL of the file you want to download.     
**Examples:** `<Source>https://s3-us-west-1.amazonaws.com/anthonym-test/DPAutomation/AutomatedServerSetup/AutomatedServerSetup-Cleanup.ps1</Source>`       

`.Download1.Destination`   
**Description:** Local path where you want the file saved to.      
**Required:** Not required.  When left blank the option will remain disabled.     
**Accepted Values:** Local path where you want the file saved to.           
**Examples:** `<Destination>https://s3-us-west-1.amazonaws.com/anthonym-test/DPAutomation/AutomatedServerSetup/AutomatedServerSetup-Cleanup.ps1</Destination>`    

***

### Variables.Modules       
**Notes:**   
There are 4 tags, allowing a total of 4 PSMs to be imported.  The details below are for AdditionalPSM1.  For PSMs 2 through 4, change AdditinalPSM1 to the correct PSM #.   

`.AdditionalPSM1`      
**Description:** Full path to the PSM.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Must be the full path to the PSM, including the file name.     
**Examples:** `<AdditionalPSM1>C:\DPAutomation\SQLPSM.psm1</AdditionalPSM1>`       

***

### Variables.PreConfiguration.          
**Notes:**   
A total of 4 Powershell scripts, 4 Batch scripts and 4 executables are supported.  The details below are for PSScript1, Batch1 and EXE1.  For scripts and executables 2 through 4, change PSScript1/Batch1/EXE1 to the correct #.   
Scripts and executables defined in this section will run before the server setup takes place.   

`.PSScript1`         
**Description:**  Full path to the Powershell script you want to run.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Must be the full path to the script, including the file name.  Parameters are also allowed.     
**Examples:** `<PSScript1>C:\DPAutomation\pretasks.ps1 -VariablesFile C:\DPAutomation\variables.xml</PSScript1>`       

`.Batch1`         
**Description:**  Full path to the Batch script you want to run.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Must be the full path to the script, including the file name.  .BAT and .CMD are supported.         
**Examples:** `<Batch1>C:\DPAutomation\hello.bat</Batch1>`       

`.EXE1`         
**Description:**  Full path to the executable you want to run.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Must be the full path to the executable, including the file name.  .EXE is supported.     
**Examples:** `<EXE1>C:\DPAutomation\MyAppInstaller.exe</EXE1>`       

***

### Variables.PostConfiguration.PreReboot               
**Notes:**   
A total of 2 Powershell scripts, 2 Batch scripts and 2 executables are supported.  The details below are for PSScript1, Batch1 and EXE1.  For script and executable 2, change PSScript1/Batch1/EXE1 to the correct #, 2.   
Scripts and executables defined in this section will after the server setup takes place, but before it reboots.   

`.PSScript1`         
**Description:**  Full path to the Powershell script you want to run.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Must be the full path to the script, including the file name.  Parameters are also allowed.     
**Examples:** `<PSScript1>C:\DPAutomation\posttask.ps1 -VariablesFile C:\DPAutomation\variables.xml</PSScript1>`       

`.Batch1`         
**Description:**  Full path to the Batch script you want to run.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Must be the full path to the script, including the file name.  .BAT and .CMD are supported.         
**Examples:** `<Batch1>C:\DPAutomation\hello.bat</Batch1>`       

`.EXE1`         
**Description:**  Full path to the executable you want to run.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Must be the full path to the executable, including the file name.  .EXE is supported.     
**Examples:** `<EXE1>C:\DPAutomation\MyAppInstaller.exe</EXE1>`       

***

### Variables.PostConfiguration.PostReboot              
**Notes:**   
Enter a Powershell command you would like to run once the server reboots.  The command does not require manual intervention.  A local administrator is created, unless .Username and .Password are specified.  Once the server reboots, the command will be run as that the created or specified user.   
Do not forget to run DPRemoveAutoResume, available in the DPWindowsPSM.  This removes the user account (if not specified) as well as the registry keys created to run the post reboot command.  If you are running the clean-up script as noted in the example below, the user account and keys will automatically be removed.
The Powershell command can run a script, along with parameters.     

`.PSCommand:`         
**Description:**  Powershell command you would like to automatically after the server reboots.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Must be the full path to the script, including the file name.  Parameters are also allowed.     
**Examples:**    
`<PSCommand>Remove-Item C:DPAutomation -Force</PSCommand>`       
`<PSCommand>C:\DPAutomation\AutomatedServerSetup-Cleanup.ps1 -VariablesFile 'C:\DPAutomation\Variables.xml' -Directory 'C:\DPAutomation'</PSCommand>`       

`.Username:`         
**Description:**  Username of an existing local administrator you would like .PSCommand to be run by.          
**Required:** Not required.  When left blank, a user will be created.  
**Accepted Values:** Username of an existing administrator.  If .Username is specified, .Password and .PSCommand must also be specified.   
**Examples:** `<Username>dpadmin</Username>`       

`.Password:`         
**Description:**  Password of the existing local administrator you would like .PSCommand to be run by.          
**Required:** Not required.  When left blank, a user will be created.  
**Accepted Values:** Password for the administrator specified in .Username  If .Password is specified, .Username and .PSCommand must also be specified.   
**Examples:** `<Password>MyC0mplexP@ssw0rd</Password>`       

***

### Variables.Email             
**Notes:**   
In order for you to receive email, your email address must be added to DP's Amazon SES and confirmed.  Please see a Windows admin to enable your email address.   

`.EmailTo:`         
**Description:**  Your email address.  When added, you will receive an email upon start and completion, with the full deployment log attached.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Must be a valid email address already added to Amazon SES.     
**Examples:** `<EmailTo>amarino@datapipe.com</EmailTo>`       

***

### Variables.General   
          
`.Preset:`         
**Description:**  Field used by the Server Setup Utility.  It can be left blank and ignored.          
**Required:** Do not modify.   
**Accepted Values:** Do not modify.   
**Examples:** `N/A`     

`.ServerName:`         
**Description:** Hostname you want the server renamed to.          
**Required:** Required.   
**Accepted Values:** Hostname you want the server renamed to, up to 15 characters.   
**Examples:** `<ServerName>WEB001</ServerName>`    

`.Timezone:`         
**Description:**  Timezone you would like the server set to.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** You can use the full timezone name or one of the custom 3 letter timezone codes.   
**Custom codes available:** EST, CST, PST, UTC, GMT, CST, HKT     
**Examples:**     
`<Timezone>EST</Timezone>`   
`<Timezone>Eastern Standard Time</Timezone>`   

`.NTPServer:`         
**Description:**  3 digit code matching the DP NTP server you would like to sync time with.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** EWR, SJC, LON, HKG.   
**Examples:** `<NTPServer>EWR</NTPServer>``     

`.NTPMode:`         
**Description:**  Mode you would like NTP set to.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** NTP, NT5DS, AllSync.   
Also accepted are the friendlier names (used in the Server Setup Utility: NT5DS (Domain Members), NTP (Domain Controllers and Non Domain Servers), AllSync (Any available time source).   
**Examples:**    
`<NTPMode>NT5DS</NTPMode>`   
`<NTPMode>NT5DS (Domain Members)</NTPMode>`    

***

### Variables.AWS.AutoSet 
            
`.Timezone:`         
**Description:**  Automatically sets the timezone based off what region the AWS server is in.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<Timezone>True</Timezone>`  

`.NTP:`         
**Description:**  Automatically configures time to sync with a DP NTP server, based off what region the AWS server is in.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<NTP>True</NTP>` 

***

### Variables.AWS.UpdateEC2Tags 
**Notes:**   
There are 8 tags, allowing you to update a total of 8 EC2 tags.  The details below are for Tag1.  For tags 2 through 8, change Tag1 to the correct tag #.   
.InstanceList, .TagKey and .TagValue must be defined in order to enable the feature.   
            
`.InstanceList:`         
**Description:**  List of instances to add/modify the EC2 tag.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Valid list of instances to add/modify the EC2 tag.      
**Examples:** `<InstanceList>i-5493e95f (eCP IIS), i-a9aad0a2 (eCP Test 01)</InstanceList>`  

`.TagKey:`         
**Description:**  EC2 Tag Key to update.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Valid EC2 Tag Key to update.      
**Examples:** `<TagKey>DPEmployee</TagKey>`  

`.TagValue:`         
**Description:**  EC2 Tag Value.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** EC2 Tag Value.      
**Examples:** `<TagValue>MyName</TagValue>`  

***

### Variables.AWS.InboundSGACLRules 
**Notes:**   
There are 6 tags, allowing you to create a total of 6 sets of rules.  The details below are for Rule1.  For rules 2 through 6, change Rule1 to the correct tag #.   
.InboundSG, .SourceSG and .PortObject must be defined in order to enable the feature.   
            
`.InboundSG:`         
**Description:**  Inbound SG.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Valid SG.      
**Examples:** `<InboundSG>sg-7cf8dd264</InboundSG>`  

`.InboundSG:`         
**Description:**  Source SG.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Valid SG.      
**Examples:** `<SourceSG>sg-6df8qq245</InboundSG>`  

`.PortObject:`         
**Description:**  Port object.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** AD, Cluster, SQL
**Examples:** `<PortObject>AD</PortObject>`  

***

### Variables.Network.DNS
**Notes:**   
This feature replaces the DNS servers for the specified .BaseIP with the specified DNS servers .DNS1 through .DNS6.
The details below are for DNS1.  For DNS 2 through 6, change DNS1 to the correct tag #.   
.BaseIP and at least 1 .DNS are required in order to enable this feature.   
            
`.BaseIP:`         
**Description:**  IP address of the NIC you want to configure DNS on.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Valid, local IP address.      
**Examples:** `<BaseIP>10.1.1.100</BaseIP>`  

`.DNS1:`         
**Description:**  DNS server you want to add to .BaseIP.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** IP address of a valid DNS server.      
**Examples:** `<DNS1>8.8.8.8</DNS1>`  

***

### Variables.WindowsLicensing ###

`.Key:`         
**Description:** Windows license key.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Valid, license key, matching the installed OS.      
**Examples:** `<Key>ABCDE-FGHIJ-KLMNO-PQRST-UVWQY</Key>` 

`.Force:`         
**Description:** By default, if Windows is already licensed, this feature will be ignored.  To override the license installed, set .Force to True.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<Force>True</Force>` 

***

### Variables.Domain ###

`.Name:`         
**Description:** Name of the domain you would like to join the server to.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Full, valid domain name.      
**Examples:** `<Name>mydomain.local</Name>` 

`.Username:`         
**Description:** Username of the account to use when joining the domain.          
**Required:** Required if you are using this feature.   
**Accepted Values:** Username of an account with the correct rights to join servers to the domain.      
**Examples:** `<Username>DomainAdmin</Username>` 

`.Password:`         
**Description:** Password for .Username.          
**Required:** Required if you are using this feature.   
**Accepted Values:** Password for .Username.      
**Examples:** `<Password>P@ssw0rd123</Password>` 

`.OU:`         
**Description:** When specified, the server will be joined to the domain, inside the specified OU.  The OU must already exist and .Username must have rights to join servers to it.          
**Required:** Not required.  When left blank the option will remain disabled.     
**Accepted Values:** Vali OU path.      
**Examples:** `<OU>OU=WebServers,OU=HostedServers,OU=NorthAmerica,DC=mydomain,dc=local</OU>` 

***

### Variables.PageFile ###
**Notes:**   
This feature allows you to configure the page file on 1 or more drives.  
If you would like to use 2 drives, you must specify the drive letter and page file size for both drives, using .PageFileDrive1Letter, .PageFileDrive1Size, .PageFileDrive2Letter, and .PageFileDrive2Letter.   
If you would like to have the feature automatically set the page file to 1.5x memory (ensuring at least 20% of the C: drive will be free), only specify PageFileDrive1Letter.   

`.PageFileDrive1Letter:`         
**Description:** Drive letter you want to store the page file on.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Drive letter.  Example: C or C:.      
**Examples:** `<PageFileDrive1Letter>C:</PageFileDrive1Letter>` 

`.PageFileDrive1Size:`         
**Description:** Size of the page file to store on .PageFileDrive1Letter (in GB).          
**Required:** Not required unless you want to store the page file on 2 drives or if you want to specify the page file size.  Leaving this blank with a drive letter set in PageFileDrive1Letter will allow the feature to automatically set the page file to 1.5x memory.
**Accepted Values:** Size of page file (GB), between 1 and 50.  Note only use the number (no GB at the end).      
**Examples:** `<PageFileDrive1Size>15</PageFileDrive1Size>` 

`.PageFileDrive2Letter:`         
**Description:** Second drive letter you want to store the store page file on.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** Drive letter.  Example: D or D:.      
**Examples:** `<PageFileDrive2Letter>D:</PageFileDrive2Letter>` 

`.PageFileDrive2Size:`         
**Description:** Size of the page file to store on .PageFileDrive2Letter (in GB).          
**Required:** Required if you specified a drive in PageFileDrive2Letter .  
**Accepted Values:** Size of page file (GB), between 1 and 50.  Note only use the number (no GB at the end).      
**Examples:** `<PageFileDrive2Size>10</PageFileDrive2Size>` 

***

### Variables.WindowsFW ###

`.PrivateDisable:`         
**Description:** Disables the Windows Firewall private profile.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<PrivateDisable>True</PrivateDisable>` 

`.PublicDisable:`         
**Description:** Disables the Windows Firewall public profile.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<PublicDisable>True</PublicDisable>` 

`.DomainDisable:`         
**Description:** Disables the Windows Firewall domain profile.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<DomainDisable>True</DomainDisable>` 

***

### Variables.Services ###

`.SmartCardDisable:`         
**Description:** Disables the Smart Card service.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<SmartCardDisable>True</SmartCardDisable>` 

`.SmartCardRemovalDisable:`         
**Description:** Disables the Smart Card Removal service.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<SmartCardRemovalDisable>True</SmartCardRemovalDisable>` 

`.AudioDisable:`         
**Description:** Disables the Windows Audio service.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<AudioDisable>True</AudioDisable>` 

***

### Variables.Offload ###

`.TCPDisable:`         
**Description:** Disables TCP offload.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<TCPDisable>True</TCPDisable>` 

`.RSSDisable:`         
**Description:** Disables receive side scaling.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<RSSDisable>True</RSSDisable>` 


***

### Variables.Power ###

`.HibernationDisable:`         
**Description:** Disables Windows hibernation.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<HibernationDisable>True</HibernationDisable>`

`.HighPerformanceEnable:`         
**Description:** Enables Windows high performance mode.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<HighPerformanceEnable>True</HighPerformanceEnable>`

***

### Variables.Misc ###

`.IPV6Disable:`         
**Description:** Disables IPV6.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<IPV6Disable>True</IPV6Disable>`

`.IEESCDisable:`         
**Description:** Disables IE Enhanced Security Configuration.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<IEESCDisable>True</IEESCDisable>`

`.VolumeDisable:`         
**Description:** Disables the volume notification.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<VolumeDisable>True</VolumeDisable>`

`.DiskOpimizationDisable:`         
**Description:** Disables automatic disk optimization.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<DiskOpimizationDisable>True</DiskOpimizationDisable>`

`.HardenSSL:`         
**Description:** Hardens SSL.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<HardenSSL>True</HardenSSL>`

***

### Variables.RDP ###

`.DisableIdleTimeout:`         
**Description:** Disables RDP idle session timeout.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<DisableIdleTimeout>True</DisableIdleTimeout>`

`.DisableDisconnectTimeout:`         
**Description:** Disables RDP disconnected session timeout.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<DisableDisconnectTimeout>True</DisableDisconnectTimeout>`

***

### Variables.EventLog.MaxSize ###

`.Application:`         
**Description:** Sets the Application event log max size to 1024 MB.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<Application>True</Application>`

`.Security:`         
**Description:** Sets the Security event log max size to 1024 MB.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<Security>True</Security>`

`.System:`         
**Description:** Sets the System event log max size to 1024 MB.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<System>True</System>`

***

### Variables.Observer ###

`.Install:`         
**Description:** Installs Observer.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True      
**Examples:** `<Install>True</Install>`

`.LocalInstallFile:`         
**Description:** Allows you to use a local Observer installer.          
**Required:** Not required.  When left blank the Observer installer will be downloaded.   
**Accepted Values:** Must be the full path to the local installer.      
**Examples:** `<LocalInstallFile>C:\DPAutomation\Installers\asyAGENT v1.2.msi</LocalInstallFile>`

***

### Variables.EM7 ###
**Notes:**   
Up to 8 SNMP collectors are supported (.SNMPCollector1 through .SNMPCollector8).  
The details below are for .SNMPCollector1.  For collectors 2 through 8, change .SNMPCollector1 to the correct collector #.   
When .SNMPInstall is set to True, .SNMPCommunityString, .SNMPTrapDetingation and at least 1 SNMP collector is required (.SNMPCollector1).

`.SNMPInstall:`         
**Description:** Installs SNMP + applicable hotfixes.  Configured SNMP for EM7 communication.          
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<SNMPInstall>True</SNMPInstall>` 

`.SNMPSettings:`         
**Description:**  Field used by the Server Setup Utility.  It can be left blank and ignored.          
**Required:** Do not modify.   
**Accepted Values:** Do not modify.   
**Examples:** `N/A`  

`.SNMPCollector1:`         
**Description:** IP of the EM7 collector you want to enable SNMP communication with.          
**Required:** Required if .SNMPInstall is set to True.   
**Accepted Values:** IP of the EM7 collector you want to enable SNMP communication with.     
**Examples:** `<SNMPCollector1>10.1.200.100</SNMPInstall>` 

`.SNMPCommunityString:`         
**Description:** SNMP community string used for SNMP communication between the collector and the server.          
**Required:** Required if .SNMPInstall is set to True.    
**Accepted Values:** SNMP community string used for SNMP communication between the collector and the server.     
**Examples:** `<SNMPCommunityString>ABC123EFGH456XYZ</SNMPCommunityString>`    

`.SNMPTrapDestinaton:`         
**Description:** IP of the EM7 collector you want to send SNMP traps to.          
**Required:** Required if .SNMPInstall is set to True.    
**Accepted Values:** IP of the EM7 collector you want to send SNMP traps to.     
**Examples:** `<SNMPTrapDestinaton>10.1.200.100</SNMPTrapDestinaton>`    

`.SNMPLocalInstallerDir`         
**Description:** Allows you to use local installers for the required SNMP hotfixes.          
**Required:** Not required.  When left blank required hotfixes will be downloaded.   
**Accepted Values:** Directory containing the required SNMP hotfixes.      
**Examples:** `<SNMPLocalInstallerDir>C:\DPAutomation\Installers</SNMPLocalInstallerDir>`

`.SSHAgentInstall:`         
**Description:** Installs the DP SSH agent.             
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<SSHAgentInstall>True</SSHAgentInstall>` 

`.SSHAgentLocalInstallerDir:`         
**Description:** Allows you to use a local SSH agent installer.    
**Required:** Not required.  When left blank the SSH agent installer will be downloaded.   
**Accepted Values:** Directory containing the SSH agent installer.      
**Examples:** `<SSHAgentLocalInstallerDir>C:\DPAutomation\Installers</SSHAgentLocalInstallerDir>`  

***

### Variables.BES ###

`.Install:`         
**Description:** Installs BigFix (BES).              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<Install>True</Install>` 

`.Relay1:`         
**Description:** Allows you to use a custom relay.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<Relay1>http://BESRELAY1.customer.net:52311/bfmirror/downloads/</Relay1>

`.Relay2:`         
**Description:** Allows you to use a custom relay.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<Relay2>http://BESRELAY2.customer.net:52311/bfmirror/downloads/</Relay2>

`.LatestVersion:`         
**Description:**  Field used by the Server Setup Utility.  It can be left blank and ignored.          
**Required:** Do not modify.   
**Accepted Values:** Do not modify.   
**Examples:** `N/A`     

`.Team:`         
**Description:** BES field - team name.              
**Required:** Required.   
**Accepted Values:** BES team name.      
**Examples:** `<Team>Gold</Team>    

`.Department:`         
**Description:** BES field - department name.              
**Required:** Required.   
**Accepted Values:** Department name.      
**Examples:** `<Department>Windows</Department>    

`.Group:`         
**Description:** BES field - group name.              
**Required:** Required.   
**Accepted Values:** Group name.      
**Examples:** `<Group>Web Servers</Group>    

`.Subgroup:`         
**Description:** BES field - subgroup.              
**Required:** Required.   
**Accepted Values:** Subgroup name.      
**Examples:** `<Subgroup>Production Servers</Subgroup>   

`.Location:`         
**Description:** BES field - location.              
**Required:** Required.   
**Accepted Values:** AWS, Azure, Hong Kong, Iceland, London, San Jose, Shanghai, Somerset, Virginia.     
**Examples:** `<Location>Somerset</Location>     

`.Platform:`         
**Description:** BES field - platform.              
**Required:** Required.   
**Accepted Values:** Physical, vStrat, eStrat, EPN, AWS, Dedicated-Cloud, Azure.     
**Examples:** `<Platform>AWS</Platform>    

`.AccountID:`         
**Description:** BES field - account ID.              
**Required:** Required.   
**Accepted Values:** Customer's account ID, per MYDP and DP1.  For servers without MYDP records (AWS, Azure, etc), enter: 00000.     
**Examples:** `<Platform>123456</Platform>  

`.CustomerID:`         
**Description:** BES field - customer ID.              
**Required:** Required.   
**Accepted Values:** Customer's customer ID, per MYDP and DP1.  For servers without MYDP records (AWS, Azure, etc), enter: 00000.     
**Examples:** `<CustomerID>876543</CustomerID>  

`.DeviceID:`         
**Description:** BES field - device ID.              
**Required:** Required.   
**Accepted Values:** Server's device ID, per MYDP and DP1.  For servers without MYDP records (AWS, Azure, etc), enter: 00000.     
**Examples:** `<DeviceID>123456</DeviceID>  

`.ServerID:`         
**Description:** BES field - device ID.              
**Required:** Required.   
**Accepted Values:** Server's server ID, per MYDP and DP1.  For servers without MYDP records (AWS, Azure, etc), enter: 00000.    
**Examples:** `<ServerID>876543</ServerID>  

`.Environment:`         
**Description:** BES field - environment.              
**Required:** Required.   
**Accepted Values:** PROD, DEV, TEST, QA, STAGE, UAT.   
**Examples:** `<Environment>PRD</Environment>  

`.BusinessService:`         
**Description:** BES field - business service.              
**Required:** Not required.   
**Accepted Values:** Business service or name of the application installed.   
**Examples:** `<BusinessService>Accounting Web Application</BusinessService>  

`.CPLOffice:`         
**Description:** Client provided license - Office.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<CPLOffice>True</CPLOffice>  

`.CPLProject:`         
**Description:** Client provided license - Project.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<CPLProject>True</CPLProject>  

`.CPLVisio:`         
**Description:** Client provided license - Visio.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<CPLVisio>True</CPLVisio>  

`.CPLRDS:`         
**Description:** Client provided license - Remote Desktop Services/TS.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<CPLRDS>True</CPLRDS>  

`.CPLVisualStudio:`         
**Description:** Client provided license - VisualStudio.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<CPLVisualStudio>True</CPLVisualStudio>  

`.CPLSharepoint:`         
**Description:** Client provided license - Sharepoint.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<CPLSharepoint>True</CPLSharepoint>  

`.CPLExchange:`         
**Description:** Client provided license - Exchange.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<CPLExchange>True</CPLExchange>  

`.CPLOS:`         
**Description:** Client provided license - OS.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<CPLOS>True</CPLOS>  

`.CPLSQL:`         
**Description:** Client provided license - SQL.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<CPLSQL>True</CPLSQL>  

`.CPLLync:`         
**Description:** Client provided license - Lync.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<CPLLync>True</CPLLync>  

`.LICPartner:`         
**Description:** License type - Partner.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<LICPartner>True</LICPartner>  

`.LICSPLA:`         
**Description:** License type - SPLA.              
**Required:** Not required.   
**Accepted Values:** True.   
**Examples:** `<LICSPLA>True</LICSPLA>  

`.LocalInstallerDir`         
**Description:** Allows you to use local installers for BES.          
**Required:** Not required.  When left blank required installers will be downloaded.   
**Accepted Values:** Directory containing the required BES installers.      
**Examples:** `<LocalInstallerDir>C:\DPAutomation\Installers\BES</LocalInstallerDir>`

***

### Variables.Apps ###

`.IISInstall:`         
**Description:** Installs IIS.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<IISInstall>True</IISInstall>` 

`.IISLogLocation:`         
**Description:** Allows you to specify where the IIS logs will be stored.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<IISLogLocation>D:\Weblogs</IISLogLocation>` 

`.MPIOInstall:`         
**Description:** Install multipath IO and required hotfixes.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<MPIOInstall>True</MPIOInstall>` 

`.MPIOLocalInstallDir:`         
*Description:** Allows you to use local installers for MPIOs hotfixes.          
**Required:** Not required.  When left blank required hotfixes will be downloaded.   
**Accepted Values:** Directory containing the required hotfix installers.      
**Examples:** `<MPIOLocalInstallDir>C:\DPAutomation\Installers\MPIO</MPIOLocalInstallDir>`

`.MPIOIdentifier:`         
**Description:** Adds MPIO identifiers.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** 3PAR, EMC.    
**Examples:** `<MPIOIdentifier>3PAR</MPIOIdentifier>` 

`.NET35Install:`         
**Description:** Installs .NET 3.5.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<NET35Install>True</NET35Install>`

`.NET45Install:`         
**Description:** Installs .NET 4.5.2.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<NET45Install>True</NET45Install>`

***

### Variables.WindowsUpdates ###

`.DisableAutomaticUpdates:`         
**Description:** Disables automatic Windows Updates.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<DisableAutomaticUpdates>True</DisableAutomaticUpdates>` 

`.DisableAutomaticUpdates:`         
**Description:** Disables automatic Windows Updates.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<DisableAutomaticUpdates>True</DisableAutomaticUpdates>` 

`.InstallAfterSetup:`         
**Description:** Installs the latest Windows Updates after the server setup is complete.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<InstallAfterSetup>True</InstallAfterSetup>` 

`.InstallOptional:`         
**Description:** Used with .InstallAfterSetup.  When .InstallOptional is set to True, optional Windows Updates will be installed.              
**Required:** Not required.  When left blank the option will remain disabled.   
**Accepted Values:** True     
**Examples:** `<InstallOptional>True</InstallOptional>` 

## Contributors

* Anthony Marino (<amarino@datapipe.com>)
