Het hulpprogramma Resource Designer gebruiken
Van toepassing op: Windows PowerShell 4.0, Windows PowerShell 5.0
Het hulpprogramma Resource Designer is een set cmdlets die beschikbaar worden gesteld door de module xDscResourceDesigner waarmee u eenvoudiger Windows PowerShell Desired State Configuration-resources (DSC) kunt maken. De cmdlets in deze resource helpen bij het maken van het MOF-schema, de scriptmodule en de mapstructuur voor uw nieuwe resource. Zie Aangepaste Windows PowerShell Desired State Configuration-resources bouwen voor meer informatie over DSC-resources. In dit artikel maken we een DSC-resource waarmee Active Directory-gebruikers worden beheerd. Gebruik de cmdlet Install-Module om de module xDscResourceDesigner te installeren.
Resource-eigenschappen maken
Het eerste wat we moeten doen, is bepalen welke eigenschappen de resource beschikbaar maakt. In dit voorbeeld definiëren we een Active Directory-gebruiker met de volgende eigenschappen.
Beschrijving van parameternaam
- UserName: sleuteleigenschap waarmee een gebruiker uniek wordt geïdentificeerd.
- Controleren: hiermee geeft u op of het gebruikersaccount Aanwezig of Afwezig moet zijn. Deze parameter heeft slechts twee mogelijke waarden.
- DomainCredential: het domeinwachtwoord voor de gebruiker.
- Wachtwoord: het gewenste wachtwoord voor de gebruiker om een configuratie toe te staan om het gebruikerswachtwoord indien nodig te wijzigen.
We gebruiken New-xDscResourceProperty
de cmdlet om de eigenschappen te maken. Met de volgende PowerShell-opdrachten worden de hierboven beschreven eigenschappen gemaakt.
$UserName = New-xDscResourceProperty –Name UserName -Type String -Attribute Key
$Ensure = New-xDscResourceProperty –Name Ensure -Type String -Attribute Write –ValidateSet "Present", "Absent"
$DomainCredential = New-xDscResourceProperty –Name DomainCredential -Type PSCredential -Attribute Write
$Password = New-xDscResourceProperty –Name Password -Type PSCredential -Attribute Write
De resource maken
Nu de resource-eigenschappen zijn gemaakt, kunnen we de New-xDscResource
cmdlet aanroepen om de resource te maken. De New-xDscResource
cmdlet neemt de lijst met eigenschappen als parameters. Ook wordt het pad gebruikt waar de module moet worden gemaakt, de naam van de nieuwe resource en de naam van de module waarin deze zich bevindt. Met de volgende PowerShell-opdracht wordt de resource gemaakt.
New-xDscResource –Name Demo_ADUser –Property $UserName, $Ensure, $DomainCredential, $Password –Path 'C:\Program Files\WindowsPowerShell\Modules' –ModuleName Demo_DSCModule
De New-xDscResource
cmdlet maakt het MOF-schema, een script voor een basisresource, de vereiste mapstructuur voor uw nieuwe resource en een manifest voor de module die de nieuwe resource beschikbaar maakt.
Het MOF-schemabestand bevindt zich op C:\Program Files\WindowsPowerShell\Modules\Demo_DSCModule\DSCResources\Demo_ADUser\Demo_ADUser.schema.mof
en de inhoud is als volgt.
[ClassVersion("1.0.0.0"), FriendlyName("Demo_ADUser")]
class Demo_ADUser : OMI_BaseResource
{
[Key] string UserName;
[Write, ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure;
[Write, EmbeddedInstance("MSFT_Credential")] String DomainCredential;
[Write, EmbeddedInstance("MSFT_Credential")] String Password;
};
Het resourcescript bevindt zich op C:\Program Files\WindowsPowerShell\Modules\Demo_DSCModule\DSCResources\Demo_ADUser\Demo_ADUser.psm1
.
Het bevat niet de werkelijke logica voor het implementeren van de resource, die u zelf moet toevoegen. De inhoud van het skeletonscript is als volgt.
function Get-TargetResource
{
[CmdletBinding()]
[OutputType([System.Collections.Hashtable])]
param
(
[parameter(Mandatory = $true)]
[System.String]
$UserName
)
#Write-Verbose "Use this cmdlet to deliver information about command processing."
#Write-Debug "Use this cmdlet to write debug information while troubleshooting."
<#
$returnValue = @{
UserName = [System.String]
Ensure = [System.String]
DomainAdminCredential = [System.Management.Automation.PSCredential]
Password = [System.Management.Automation.PSCredential]
}
$returnValue
#>
}
function Set-TargetResource
{
[CmdletBinding()]
param
(
[parameter(Mandatory = $true)]
[System.String]
$UserName,
[ValidateSet("Present","Absent")]
[System.String]
$Ensure,
[System.Management.Automation.PSCredential]
$DomainAdminCredential,
[System.Management.Automation.PSCredential]
$Password
)
#Write-Verbose "Use this cmdlet to deliver information about command processing."
#Write-Debug "Use this cmdlet to write debug information while troubleshooting."
#Include this line if the resource requires a system reboot.
#$global:DSCMachineStatus = 1
}
function Test-TargetResource
{
[CmdletBinding()]
[OutputType([System.Boolean])]
param
(
[parameter(Mandatory = $true)]
[System.String]
$UserName,
[ValidateSet("Present","Absent")]
[System.String]
$Ensure,
[System.Management.Automation.PSCredential]
$DomainAdminCredential,
[System.Management.Automation.PSCredential]
$Password
)
#Write-Verbose "Use this cmdlet to deliver information about command processing."
#Write-Debug "Use this cmdlet to write debug information while troubleshooting."
<#
$result = [System.Boolean]
$result
#>
}
Export-ModuleMember -Function *-TargetResource
De resource bijwerken
Als u de parameterlijst van de resource wilt toevoegen of wijzigen, kunt u de Update-xDscResource
cmdlet aanroepen. De cmdlet werkt de resource bij met een nieuwe lijst met parameters. Als u al logica hebt toegevoegd aan uw resourcescript, blijft deze intact.
Stel dat u de laatste aanmeldingstijd voor de gebruiker wilt opnemen in onze resource. In plaats van de resource opnieuw volledig te schrijven, kunt u de New-xDscResourceProperty
aanroepen om de nieuwe eigenschap te maken en vervolgens uw nieuwe eigenschap aanroepen Update-xDscResource
en toevoegen aan de lijst met eigenschappen.
$lastLogon = New-xDscResourceProperty –Name LastLogon –Type Hashtable –Attribute Write –Description "For mapping users to their last log on time"
Update-xDscResource –Name 'Demo_ADUser' –Property $UserName, $Ensure, $DomainCredential, $Password, $lastLogon -Force
Een resourceschema testen
Het hulpprogramma Resource Designer maakt nog een cmdlet beschikbaar die kan worden gebruikt om de geldigheid te testen van een MOF-schema dat u handmatig hebt geschreven. Roep de Test-xDscSchema
cmdlet aan en geef het pad van een MOF-resourceschema door als een parameter. De cmdlet voert eventuele fouten in het schema uit.
Zie ook
Concepten
Aangepaste Windows PowerShell Desired State Configuration-resources bouwen