Megosztás a következőn keresztül:


Az Erőforrás Tervező eszköz használata

A következőkre vonatkozik: Windows PowerShell 4.0, Windows PowerShell 5.0

Az Erőforrás Tervező eszköz az xDscResourceDesigner modul által közzétett parancsmagok készlete, amelyek megkönnyítik Windows PowerShell Desired State Configuration (DSC) erőforrások létrehozását. Az erőforrás parancsmagjai segítenek létrehozni az MOF-sémát, a szkriptmodult és az új erőforrás könyvtárstruktúráját. További információ a DSC-erőforrásokról: Egyéni Windows PowerShell Desired State Configuration-erőforrások létrehozása. Ebben a cikkben létrehozunk egy DSC-erőforrást, amely az Active Directory-felhasználókat kezeli. Az Install-Module parancsmaggal telepítse az xDscResourceDesigner modult.

Erőforrás-tulajdonságok létrehozása

Az első teendőnk az, hogy eldöntsük az erőforrás által elérhetővé tett tulajdonságokat. Ebben a példában egy Active Directory-felhasználót határozunk meg az alábbi tulajdonságokkal.

Paraméternév leírása

  • UserName: Kulcstulajdonság, amely egyedileg azonosítja a felhasználót.
  • Győződjön meg arról, hogy a felhasználói fióknak Jelen vagy Hiányzik értéknek kell-e lennie. Ez a paraméter csak két lehetséges értékkel rendelkezik.
  • DomainCredential: A felhasználó tartományi jelszava.
  • Jelszó: A felhasználó kívánt jelszava, amely lehetővé teszi, hogy a konfiguráció szükség esetén módosítsa a felhasználói jelszót.

A tulajdonságok létrehozásához a parancsmagot New-xDscResourceProperty használjuk. A következő PowerShell-parancsok hozzák létre a fent leírt tulajdonságokat.

$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

Az erőforrás létrehozása

Most, hogy létrejöttek az erőforrás tulajdonságai, meghívhatjuk a New-xDscResource parancsmagot az erőforrás létrehozásához. A New-xDscResource parancsmag paraméterekként veszi fel a tulajdonságok listáját. A modul létrehozásának útvonalát, az új erőforrás nevét és annak a modulnak a nevét is tartalmazza, amelyben a modult létre kell hozni. A következő PowerShell-parancs hozza létre az erőforrást.

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

A New-xDscResource parancsmag létrehozza az MOF-sémát, egy csontváz-erőforrásszkriptet, az új erőforráshoz szükséges könyvtárstruktúrát, valamint egy jegyzékfájlt az új erőforrást közzétévő modulhoz.

Az MOF-sémafájl a helyen C:\Program Files\WindowsPowerShell\Modules\Demo_DSCModule\DSCResources\Demo_ADUser\Demo_ADUser.schema.moftalálható, és tartalma a következő.

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

Az erőforrás-szkript a következő helyen C:\Program Files\WindowsPowerShell\Modules\Demo_DSCModule\DSCResources\Demo_ADUser\Demo_ADUser.psm1található: . Nem tartalmazza az erőforrás implementálásához szükséges tényleges logikát, amelyet önnek kell hozzáadnia. A csontvázszkript tartalma a következő.

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

Az erőforrás frissítése

Ha hozzá kell adnia vagy módosítania kell az erőforrás paraméterlistáját, meghívhatja a Update-xDscResource parancsmagot. A parancsmag egy új paraméterlistával frissíti az erőforrást. Ha már hozzáadott logikát az erőforrásszkripthez, az érintetlen marad.

Tegyük fel például, hogy az erőforrásba be szeretné foglalni a felhasználó utolsó naplójának időpontját. Ahelyett, hogy teljesen újra megírta az erőforrást, meghívhatja a New-xDscResourceProperty tulajdonságot az új tulajdonság létrehozásához, majd meghívhatja Update-xDscResource és hozzáadhatja az új tulajdonságot a tulajdonságok listájához.

$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

Erőforrásséma tesztelése

Az Erőforrás Tervező eszköz még egy parancsmagot tesz elérhetővé, amellyel tesztelheti a manuálisan írt MOF-séma érvényességét. Hívja meg a Test-xDscSchema parancsmagot, és adja meg paraméterként az MOF-erőforrásséma elérési útját. A parancsmag a séma hibáit fogja kibocsátni.

Lásd még:

Alapelvek

Egyéni Windows PowerShell Desired State Configuration-erőforrások létrehozása

Egyéb források

xDscResourceDesigner modul