Compartir a través de


Creación de un nuevo usuario

En este ejemplo se muestra cómo puede usar el User recurso para asegurarse de que existe un usuario.

Con Ensure establecido en Present y UserName establecido en SomeUserName, el recurso crea la SomeUserName cuenta si no existe.

Con Password establecido en el valor proporcionado por el usuario para el parámetro PasswordCredential , si el recurso crea la SomeUserName cuenta, crea la cuenta con la contraseña establecida en el valor de PasswordCredential. La primera vez que alguien inicia sesión como SomeUserName, el sistema les pide que cambien la contraseña.

Si SomeUserName existe, el recurso no establece la contraseña de esa cuenta.

Con Invoke-DscResource

Este script muestra cómo puede usar el User recurso con el Invoke-DscResource cmdlet para asegurarse de que la SomeUserName cuenta existe y crearla con una contraseña predeterminada si es necesario.

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

Con una configuración

En este fragmento de código se muestra cómo puede definir un Configuration con un Service bloque de recursos para asegurarse de que la SomeUserName cuenta existe y crearla con una contraseña predeterminada si es necesario.

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