Interactive Usage of PowerShell
Overview
You can use the cmdlets in an interactive PowerShell session to configure your system. You must run commands to prepare the changes and store the changes in your application configuration afterward. The cmdlets are designed to be used in installation or update scripts, so you have to initialize a session and close the session to perform any task.
Preparing the session
Open an administrative Powershell command prompt. In case you want to perform any database changes and use integrated security, the user that opens the shell must have the necessary rights on the database server to perform these changes. Service account credentials are used for configuring the application components like Windows services or IIS app pools, it is not used to connect to your database in the interactive session!
As a first step, you must import the DLL that contains the cmdlets:
Import-Module <PathToYourInstallation>\bin\matrix42.maintenance.cmdlets.dll -force
To start a session for configuration, use the following command:
New-WMConfigurationSession
The command expects a Credentials parameter that contains the credentials of your service user. To prepare this credentials parameter, use the Get-Credential
command. These 2 commands will ask you for the credentials of the service account and start a new session for configuration.
$Credentials = Get-Credential New-WMConfigurationSession -Credentials $Credentials
An example of how to create a credentials parameter without asking can be found in the sample scripts.
Performing Maintenance Tasks
2 different tasks will be performed as samples:
- Deactivating and activating History
- Configuring the Service Layer
Deactivating and activating History
Activating and deactivating History will make permanent changes to your database.
Deactivating will detach any existing history DB from the system. This history DB cannot be attached again! It might be a useful operation for setting up a test system without a history. Or if you have lost for any reason your History database, you can remove the references to the old database.
To detach the History database use this command:
Disable-WMHistory
To attach a new database, run the following command:
Enable-WMHistory -DatabaseName "M42Archive"
This command will create a new database M42Archive, the Schema table and attach it to your environment.
See also History Wizard page and Configuration Wizard: History database settings.
Reconfiguring Service Layer
To reconfigure the Service Layer of your system, use the following command:
Initialize-WMServiceLayer
This command reinitializes the Service Layer to use the default databases and the group AS_Administrators from some domain.
Initialize-WMServiceLayer -AppFabricAdminGroup "domain\AS_Administrators" -PersistenceDatabaseName M42InstanceStore -MonitoringDatabaseName M42Monitoring
In case you already have the same databases, the command will not change this configuration. It will always reapply all settings for the Web application and refresh the configuration files.
Performing Cache Configuration Changes
Starting from DWP v.11.0, the following PowerShell commands are available to manage Matrix42 Software cache provider:
-
Get-WMCacheConfiguration
-
Set-WMCacheConfiguration
Both commands are intended to directly interact with SPS.config to obtain current Redis connection settings or set them explicitly.
Starting from DWP v.12.1.1 these settings were moved from SPS.config file to the PDRDwpConfigurationClass database table (see Advanced System Settings, Matrix42.Distributed.Redis.Cache section ).
Initially Cache Configuration is performed during DWP installation. See also Installation: Step by Step page, Cache Configuration: In-Memory or Redis cache provider section.
To get the settings, invoke the following command:
Get-WMCacheConfiguration
The command doesn’t accept any arguments. The output is going to be printed as shown below (sample):
Host: localhost
Port: 6379
Username: admin
Database: 0
UseSsl: true
To set the settings, invoke the following command:
Set-WMCacheConfiguration –Host “127.0.0.1” -Port “6379” -Username “” -Password “” -Database 0 –UseSsl $true
The corresponding properties will be set to SPS.config.
Starting from DWP v.12.1.1 these settings were moved from SPS.config file to the PDRDwpConfigurationClass database table (see also, Advanced System Settings).
The database value must be in the range of 0 to 15. The command refuses databases out of this range. If that rule is violated, an error message will be displayed.