Het hulpprogramma voor het Resource-DesignerUsing the Resource Designer tool

Van toepassing op: Windows PowerShell 4.0, Windows PowerShell 5.0Applies To: Windows PowerShell 4.0, Windows PowerShell 5.0

Het hulpprogramma Resource Designer is een set cmdlets die worden weergegeven door de xDscResourceDesigner module die eenvoudiger maken Windows PowerShell Desired State Configuration (DSC) van resources.The Resource Designer tool is a set of cmdlets exposed by the xDscResourceDesigner module that make creating Windows PowerShell Desired State Configuration (DSC) resources easier. De cmdlets in deze resource helpen bij het maken van het MOF-schema, de scriptmodule en de structuur van de map voor uw nieuwe resource.The cmdlets in this resource help create the MOF schema, the script module, and the directory structure for your new resource. Zie voor meer informatie over DSC-resources bouwen aangepaste Windows PowerShell Desired status configuratie Resources.For more information about DSC resources, see Build Custom Windows PowerShell Desired State Configuration Resources. We gaan een DSC-resource die Active Directory-gebruikers beheert maken in dit onderwerp.In this topic, we will create a DSC resource that manages Active Directory users. Gebruik de Install-Module cmdlet voor het installeren van de xDscResourceDesigner module.Use the Install-Module cmdlet to install the xDscResourceDesigner module.

Opmerking: Install-Module is opgenomen in de PowerShellGet module die is opgenomen in PowerShell 5.0.Note: Install-Module is included in the PowerShellGet module, which is included in PowerShell 5.0. U kunt downloaden via de PowerShellGet -module voor PowerShell 3.0 en 4.0 op PackageManagement PowerShell-Modules Preview.You can download the PowerShellGet module for PowerShell 3.0 and 4.0 at PackageManagement PowerShell Modules Preview.

Broneigenschappen makenCreating resource properties

Het eerste wat dat we moeten doen is beslissen over de eigenschappen die de resource zal worden blootgesteld.The first thing we need to do is decide on properties that the resource will expose. Bijvoorbeeld definiëren we een Active Directory-gebruiker met de volgende eigenschappen.For this example, we will define an Active Directory user with the following properties.

De naam van de beschrijvingParameter name Description

  • Gebruikersnaam: sleutel van de eigenschap die een unieke identificatie van de gebruiker.UserName: Key property that uniquely identifies a user.
  • Zorg ervoor dat: geeft aan of het gebruikersaccount moet aanwezig zijn of niet is opgegeven.Ensure: Specifies whether the user account should be Present or Absent. Deze parameter heeft slechts twee mogelijke waarden zijn.This parameter will have only two possible values.
  • DomainCredential: het wachtwoord voor de gebruiker.DomainCredential: The domain password for the user.
  • Wachtwoord: het gewenste wachtwoord voor de gebruiker toestaan dat een configuratie voor het gebruikerswachtwoord indien nodig wijzigen.Password: The desired password for the user to allow a configuration to change the user password if necessary.

Voor het maken van de eigenschappen, gebruiken we de nieuw xDscResourceProperty cmdlet.To create the properties, we use the New-xDscResourceProperty cmdlet. De volgende PowerShell-opdrachten maken de eigenschappen die hierboven worden beschreven.The following PowerShell commands create the properties described above.

$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 makenCreate the resource

Nu dat de resource-eigenschappen zijn gemaakt, noemen we de nieuw xDscResource cmdlet om de resource te maken.Now that the resource properties have been created, we can call the New-xDscResource cmdlet to create the resource. De nieuw xDscResource cmdlet wordt de lijst van eigenschappen als parameters.The New-xDscResource cmdlet takes the list of properties as parameters. Het duurt ook het pad waar de module moet worden gemaakt, de naam van de nieuwe resource en de naam van de module waarin deze zich bevindt.It also takes the path where the module should be created, the name of the new resource, and the name of the module in which it is contained. De volgende PowerShell-opdracht maakt de resource.The following PowerShell command creates the resource.

New-xDscResource –Name Demo_ADUser –Property $UserName, $Ensure, $DomainCredential, $Password –Path ‘C:\Program Files\WindowsPowerShell\Modules’ –ModuleName Demo_DSCModule

De nieuw xDscResource cmdlet maakt het MOF-schema, het script van een geraamte resource, de vereiste mapstructuur voor uw nieuwe resource en een manifest voor de module die de nieuwe resource beschrijft.The New-xDscResource cmdlet creates the MOF schema, a skeleton resource script, the required directory structure for your new resource, and a manifest for the module that exposes the new resource.

Het MOF-schemabestand loopt C:\Program Files\WindowsPowerShell\Modules\Demo_DSCModule\DSCResources\Demo_ADUser\Demo_ADUser.schema.mof, en de inhoud ervan zijn als volgt.The MOF schema file is at C:\Program Files\WindowsPowerShell\Modules\Demo_DSCModule\DSCResources\Demo_ADUser\Demo_ADUser.schema.mof, and its contents are as follows.

[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;
};

De resource-script is op C:\Program Files\WindowsPowerShell\Modules\Demo_DSCModule\DSCResources\Demo_ADUser\Demo_ADUser.psm1.The resource script is at C:\Program Files\WindowsPowerShell\Modules\Demo_DSCModule\DSCResources\Demo_ADUser\Demo_ADUser.psm1. Hierbij worden de werkelijke logica voor het implementeren van de resource die u zelf moet toevoegen.It does not include the actual logic to implement the resource, which you must add yourself. De inhoud van het geraamte script zijn als volgt.The contents of the skeleton script are as follows.

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

Bijwerken van de resourceUpdating the resource

Als u wilt toevoegen of wijzigen van de lijst met parameters van de bron, kunt u bellen de Update xDscResource cmdlet.If you need to add or modify the parameter list of the resource, you can call the Update-xDscResource cmdlet. De cmdlet werkt de resource met een lijst met nieuwe parameters.The cmdlet updates the resource with a new parameter list. Als u al logica in uw script resource hebt toegevoegd, is het niet verwijderd.If you have already added logic in your resource script, it is left intact.

Stel dat u wilt het laatste logboek opnemen in de tijd van de gebruiker in de resource.For example, suppose you want to include the last log in time for the user in our resource. In plaats van de bron opnieuw volledig schrijft, roept u de nieuw xDscResourceProperty naar de nieuwe eigenschap maken en deze vervolgens aanroepen Update xDscResource en uw nieuwe eigenschap toevoegen aan de lijst van eigenschappen.Rather than writing the resource again completely, you can call the New-xDscResourceProperty to create the new property, and then call Update-xDscResource and add your new property to the properties list.

$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

Testen van een resource-schemaTesting a resource schema

Het hulpprogramma Resource Designer wordt één meer cmdlet die kan worden gebruikt voor het testen van de geldigheid van een MOF-schema dat u handmatig hebt geschreven.The Resource Designer tool exposes one more cmdlet that can be used to test the validity of a MOF schema that you have written manually. Roep de Test xDscSchema cmdlet, het pad van een resource MOF schema wordt doorgegeven als parameter.Call the Test-xDscSchema cmdlet, passing the path of a MOF resource schema as a parameter. De uitvoer van de cmdlet worden eventuele fouten in het schema.The cmdlet will output any errors in the schema.

Zie ookSee Also

ConceptenConcepts

Aangepaste Windows PowerShell Desired State Configuration Resources bouwenBuild Custom Windows PowerShell Desired State Configuration Resources

Andere bronnenOther Resources

xDscResourceDesigner ModulexDscResourceDesigner Module