Introduction
The xSCVMM module is a part of the Windows PowerShell Desired State Configuration (DSC) Resource Kit, which is a collection of DSC Resources produced by the PowerShell Team.
This module contains the following resources for for installating and updating System Center Virtual Machine Manager (VMM):
-
xSCVMManagementServerSetup: for installation of the VMM Management server
-
xSCVMMConsoleSetup: for installation of the VMM console.
-
xSCVMManagementServerUpdate: for udpating the the VMM Management server to Update Rollup 4
-
xSCVMMConsoleUpdate: for updating the VMM console to Update Rollup 4
-
xSCVMMAdmin: for adding VMM admins
-
xSCVMMOperationsManagerServer: for connecting VMM to Operations Manager
All of the resources in the DSC Resource Kit are provided AS IS, and are not supported through any Microsoft standard support program
or service. The ""x" in xSCVMM stands for experimental, which means that these resources will be fix forward
and monitored by the module owner(s).
Please leave comments, feature requests, and bug reports in the Q & A tab for this module.
If you would like to modify xSCVMM module, feel free. When modifying, please update the module name, resource friendly name,
and MOF class name (instructions below). As specified in the license, you may copy or modify this resource as long as they are used on the Windows Platform.
For more information about Windows PowerShell Desired State Configuration, check out the blog posts on the
PowerShell Blog (
this is a good starting point). There are
also great community resources, such as PowerShell.org, or
PowerShell Magazine. For more information on the DSC Resource Kit, check out
this blog post.
Installation
To install the xSCVMM module
-
If you are using WMF4 / PowerShell Version 4: Unzip the content under $env:ProgramFiles\WindowsPowerShell\Modules folder
-
If you are using WMF5 Preview: From an elevated PowerShell session run
‘Install-Module xSCSR’
To confirm installation:
- Run Get-DSCResource to see that xSCVMManagementServerSetup, xSCVMMConsoleSetup, and xSCVMMAdmin are among the DSC Resources listed.
Requirements
This module requires at least PowerShell v4.0, which ships in Windows 8.1 or Windows Server 2012R2. To easily use PowerShell 4.0 on older operating systems,
install WMF 4.0. Please read the installation instructions
that are present on both the download page and the release notes for WMF 4.0.
Details
The xSCVMM module contains the DSC Resources listed below. This DSC
Module enables installation and update of System Center Virtual Machine Manager (VMM).
xSCVMMManagementServerSetup is used for for installation of the SCVMM Management server, and has the following properties:
-
Ensure: KEY - An enumerated value (Present, Absent) that describes if the SCVMM management server is expected to be installed on the machine.
-
SourcePath: REQUIRED - UNC path to the root of the source files for installation.
-
SourceFolder: Folder within the source path containing the source files for installation.
-
SetupCredential: REQUIRED - Credential to be used to perform the installation.
-
vmmService: Domain account for the VMM service.
-
vmmServiceUsername: Output username of the VMM service.
-
ProductKey: Product key for licensed installations.
-
UserName: Display name for the user.
-
CompanyName: Display name for the organization.
-
ProgramFiles: Installation path for the software, as defined by SCVMM Setup.
-
ClusterManagementServer: Boolean for if this a clustered Management Server.
-
FirstManagementServer: Boolean for if this is or is not the first management server.
-
CreateNewSqlDatabase: Enumeration value - 0: Use an existing Microsoft SQL Server database. 1: Create a new SQL Server database.
-
SqlMachineName: REQUIRED - Name of the server that is hosting SQL Server.
-
SqlInstanceName: REQUIRED - Name of the new or existing instance of SQL Server.
-
SqlDatabaseName: Name of the new or existing SQL Server database.
-
IndigoTcpPort: Port for communication with the VMM console.
-
IndigoHTTPSPort: Port for communication with the Windows Preinstallation Environment agents.
-
IndigoNETTCPPort: Port for communication with Windows Deployment Services.
-
IndigoHTTPPort: Port for communication with Windows PE agent for time synchronization.
-
WSManTcpPort: Port for communication with agents on hosts and library servers.
-
BitsTcpPort: Port for file transfers to agents on hosts and library servers.
-
CreateNewLibraryShare: Enumerated value - 0: Use an existing library share. 1: Create a new library share.
-
LibraryShareName: Name of the file share to be used or created.
-
LibrarySharePath: Location of the existing file share or the new file share to be created.
-
LibraryShareDescription: Description of the share.
-
TopContainerName: Container for Distributed Key Management.
-
VmmServerName: Clustered service name for a highly available VMM management server.
-
VMMStaticIPAddress: IP address for the clustered service name for a highly available VMM management server, if you are not using Dynamic Host Configuration Protocol (DHCP).
-
RetainSqlDatabase: Enumerated value - 0: Remove the SQL Server database. 1: Do not remove the SQL Server database.
-
ForceHAVMMUninstall: Enumerated value - 0: Do not force uninstallation if setup.exe cannot verify whether this node is the final node of the highly available installation. 1: Force the uninstallation.
-
SQMOptIn: Enumerated value - 0: Do not opt in to the Customer Experience Improvement Program (CEIP). 1: Opt in to CEIP.
-
MUOptIn: Enumerated value - 0: Do not opt in to Microsoft Update. 1: Opt in to Microsoft Update.
xSCVMMConsoleSetup is used for installation of the VMM console, and has the following properties:
-
Ensure: KEY - An enumerated value (Present, Absent) that describes if the VMM console is expected to be installed on the machine.
-
SourcePath: REQUIRED - UNC path to the root of the source files for installation.
-
SourceFolder: Folder within the source path containing the source files for installation.
-
SetupCredential: REQUIRED - Credential to be used to perform the installation.
-
ProgramFiles: Installation path for the software.
-
IndigoTcpPort: Port for communication with the VMM management server.
-
MUOptIn: Enumerated value - 0: Do not opt in to Microsoft Update. 1: Opt in to Microsoft Update.
xSCVMManagementServerUpdate has the following properties:
-
Ensure: KEY - An enumerated value that describes if the update is expected to be installed on the machine.
-
SourcePath: REQUIRED - UNC path to the root of the source files for installation.
-
SourceFolder: Folder within the source path containing the source files for installation.
-
Credential: REQUIRED - Credential to be used to perform the installation.
-
Update: Output display name of the update.
xSCVMMConsoleUpdate has the following properties:
-
Ensure: KEY - An enumerated value that describes if the update is expected to be installed on the machine.
-
SourcePath: REQUIRED - UNC path to the root of the source files for installation.
-
SourceFolder: Folder within the source path containing the source files for installation.
-
Credential: REQUIRED - Credential to be used to perform the installation.
-
Update: Output display name of the update.
xSCVMMAdmin has the following properties:
-
Ensure: An enumerated value that describes if the principal is an Virtual Machine Manager admin.
-
Principal: KEY - The Virtual Machine Manager admin principal.
-
UserRole: KEY - The Virtual Machine Manager user role.
-
SCVMMAdminCredential: REQUIRED - Credential to be used to perform the operations.
xSCVMMOperationsManagerServer has the following properties:
-
Ensure: KEY - An enumerated value that describes if the Operations Manager connection exists.
-
OpsMgrServer: REQUIRED - Specifies the fully qualified domain name (FQDN) of the System Center Operations Manager management server to which VMM connects.
-
EnablePRO: Indicates whether PRO is enabled for this connection.
-
EnableMaintenanceModeIntegration: Indicates whether maintenance mode integration is enabled for this connection.
-
VMMServerCredential: Specifies the credentials that Operations Manager uses to connect with VMM.
-
OpsMgrServerCredential: Specifies the name of the VMM RunAs account that VMM uses to connect to the Operations Manager management group.
-
UseVMMServerServiceAccount: Specifies the service account that VMM uses to connect to Operations Manager.
-
SCVMMAdminCredential: Credential to be used to perform the operations.
Renaming Requirements
When making changes to these resources, we suggest the following practice:
-
Update the following names by replacing MSFT with your company/community name and replacing the "x" with "c" (short for "Community") or another prefix of your choice:
-
Module name (ex: xSCVMM becomes cSCVMM)
-
Resource folder (ex: MSFT_xSCVMMConsoleSetup becomes Contoso_cSCVMMConsoleSetup)
-
Resource Name (ex: MSFT_xSCVMMConsoleSetup becomes Contoso_cSCVMMConsoleSetup)
-
Resource Friendly Name (ex: xSCVMMConsoleSetup becomes cSCVMMConsoleSetup)
-
MOF class name (ex: MSFT_xSCVMMConsoleSetup becomes Contoso_cSCVMMConsoleSetup)
-
Filename for the <resource>.schema.mof (ex: MSFT_xSCVMMConsoleSetup.schema.mof becomes Contoso_cSCVMMConsoleSetup.schema.mof)
-
Update module and metadata information in the module manifest
-
Update any configuration that use these resources
We reserve resource and module names without prefixes ("x" or "c") for future use (e.g. "MSFT_SCVMMConsoleSetup" or "SCVMMConsoleSetup"). If the next version of Windows Server ships with "MSFT_SCVMMConsoleSetup" resources, we don't want to break any configurations that use any community modifications. Please keep a prefix such as "c" on all community modifications.
Versions
1.2.4.0
-
Updated release wich added the following resource
-
xSCVMMOperationsManagerServer
-
Added /norestart to xSCVMMConsoleUpdate and xSCVMMManagementServerUpdate to allow DSC to control reboots
-
Increased timeout for setup process to start to 60 seconds
1.2.0.0
-
Updated release wich added the following resources
-
xSCVMMManagementServerUpdate
-
xSCVMMConsoleUpdate
-
xSCVMMAdmin
1.1.0.0
-
Initial release with the following resources
-
xSCVMMManagementServerSetup
-
xSCVMMConsoleSetup
Examples
Two example configurations are included in the Examples folder within the module. Both examples also use the xSQLServer module.
Single Server Installation:SCVMM-SingleServer.ps1 installs all VMM roles including prerequisites and SQL on a single server.
Separate SQL: SCVMM-SeperateSQL.ps1 installs all VMM roles on one server and SQL on a seperate server.
Requirements:
These samples require the use of the Windows Management Framework (WMF) 5.0 Preview.
Notes:
Both examples use the exact same Configuration and just modify the behavior based on input ConfigurationData.
In the Examples folder you will see a version of each file with "-TP" appended to the name. These are the equivalent examples for deployment of System Center Technical Preview on Windows Server Technical Preview.
Since the System Center 2012 R2 Virtual Machine Manager installer for the management server restarts the Windows Remote Management service,
if you are using -Verbose -Wait to see the progress of the configuration you will lose the connection got the VMM server during deployment.
However, the configuration will continue and complete without further display.