Compartilhar via


Criar um novo usuário

Este exemplo mostra como você pode usar o User recurso para garantir que um usuário exista.

Com o UserName definido como e o PresentUserName definido como SomeUserName, o recurso cria a SomeUserName conta se ela não existir.

Com Senha definida como o valor fornecido pelo usuário para o parâmetro PasswordCredential , se o recurso criar a SomeUserName conta, ele criará a conta com a senha definida como o valor de PasswordCredential. Na primeira vez em que alguém faz logon como SomeUserName, o sistema solicita que ele altere a senha.

Se SomeUserName existir, o recurso não definirá a senha para essa conta.

Com Invoke-DscResource

Este script mostra como você pode usar o User recurso com o Invoke-DscResource cmdlet para garantir que a conta exista, criando-a SomeUserName com uma senha padrão, se necessário.

[CmdletBinding()]
param(
    [Parameter(Mandatory)]
    [System.Management.Automation.PSCredential]
    [System.Management.Automation.Credential()]
    $PasswordCredential
)

begin {
    $SharedParameters = @{
        Name       = 'User'
        ModuleName = 'PSDscResource'
        Properties = @{
            Ensure   = 'Present'
            UserName = 'SomeUserName'
            Password = $PasswordCredential
        }
    }

    $NonGetProperties = @(
        'Ensure'
        'Password'
    )
}

process {
    $TestResult = Invoke-DscResource -Method Test @SharedParameters

    if ($TestResult.InDesiredState) {
        $QueryParameters = $SharedParameters.Clone()

        foreach ($Property in $NonGetProperties) {
            $QueryParameters.Properties.Remove($Property)
        }

        Invoke-DscResource -Method Get @QueryParameters
    } else {
        Invoke-DscResource -Method Set @SharedParameters
    }
}

Com uma configuração

Este snippet mostra como você pode definir com um ConfigurationService bloco de recursos para garantir que a conta exista, criando-a SomeUserName com uma senha padrão, se necessário.

Configuration Create {
    param (
        [Parameter(Mandatory)]
        [System.Management.Automation.PSCredential]
        [System.Management.Automation.Credential()]
        $PasswordCredential
    )

    Import-DscResource -ModuleName PSDscResources

    Node localhost {
        User ExampleUser {
            Ensure   = 'Present'
            UserName = 'SomeUserName'
            Password = $PasswordCredential
        }
    }
}