Utilizar a ferramenta resource Designer
Aplica-se a: Windows PowerShell 4.0, Windows PowerShell 5.0
A ferramenta resource Designer é um conjunto de cmdlets expostos pelo módulo xDscResourceDesigner que facilitam a criação de recursos Windows PowerShell Desired State Configuration (DSC). Os cmdlets neste recurso ajudam a criar o esquema MOF, o módulo de script e a estrutura de diretórios do novo recurso. Para obter mais informações sobre os recursos do DSC, veja Build Custom Windows PowerShell Desired State Configuration Resources (Criar Recursos de Windows PowerShell Desired State Configuration Personalizados). Neste artigo, vamos criar um recurso do DSC que gere utilizadores do Active Directory. Utilize o cmdlet Install-Module para instalar o módulo xDscResourceDesigner .
Criar propriedades de recursos
A primeira coisa que temos de fazer é decidir sobre as propriedades que o recurso irá expor. Neste exemplo, vamos definir um utilizador do Active Directory com as seguintes propriedades.
Descrição do nome do parâmetro
- Nome de Utilizador: propriedade de chave que identifica exclusivamente um utilizador.
- Certifique-se de que especifica se a conta de utilizador deve estar Presente ou Ausente. Este parâmetro terá apenas dois valores possíveis.
- DomainCredential: a palavra-passe de domínio do utilizador.
- Palavra-passe: a palavra-passe pretendida para o utilizador permitir que uma configuração altere a palavra-passe de utilizador, se necessário.
Para criar as propriedades, utilizamos o New-xDscResourceProperty
cmdlet . Os seguintes comandos do PowerShell criam as propriedades descritas acima.
$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
Criar o recurso
Agora que as propriedades do recurso foram criadas, podemos chamar o New-xDscResource
cmdlet para criar o recurso. O New-xDscResource
cmdlet utiliza a lista de propriedades como parâmetros. Também segue o caminho onde o módulo deve ser criado, o nome do novo recurso e o nome do módulo no qual está contido. O seguinte comando do PowerShell cria o recurso.
New-xDscResource –Name Demo_ADUser –Property $UserName, $Ensure, $DomainCredential, $Password –Path 'C:\Program Files\WindowsPowerShell\Modules' –ModuleName Demo_DSCModule
O New-xDscResource
cmdlet cria o esquema MOF, um script de recurso de estrutura, a estrutura de diretório necessária para o novo recurso e um manifesto para o módulo que expõe o novo recurso.
O ficheiro de esquema MOF está em C:\Program Files\WindowsPowerShell\Modules\Demo_DSCModule\DSCResources\Demo_ADUser\Demo_ADUser.schema.mof
e os respetivos conteúdos são os seguintes.
[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;
};
O script de recurso está em C:\Program Files\WindowsPowerShell\Modules\Demo_DSCModule\DSCResources\Demo_ADUser\Demo_ADUser.psm1
.
Não inclui a lógica real para implementar o recurso, que tem de adicionar a si próprio. Os conteúdos do script de estrutura são os seguintes.
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
Atualizar o recurso
Se precisar de adicionar ou modificar a lista de parâmetros do recurso, pode chamar o Update-xDscResource
cmdlet . O cmdlet atualiza o recurso com uma nova lista de parâmetros. Se já tiver adicionado lógica ao script de recursos, este fica intacto.
Por exemplo, suponha que pretende incluir o último tempo de início de sessão para o utilizador no nosso recurso. Em vez de voltar a escrever completamente o recurso, pode chamar o New-xDscResourceProperty
para criar a nova propriedade e, em seguida, chamar Update-xDscResource
e adicionar a nova propriedade à lista de propriedades.
$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
Testar um esquema de recurso
A ferramenta Resource Designer expõe mais um cmdlet que pode ser utilizado para testar a validade de um esquema MOF que escreveu manualmente. Chame o Test-xDscSchema
cmdlet, transmitindo o caminho de um esquema de recurso MOF como um parâmetro. O cmdlet irá apresentar quaisquer erros no esquema.
Consulte também
Conceitos
Criar Recursos de Windows PowerShell Desired State Configuration Personalizados