Dela via


Skapa en ny användare

Det här exemplet visar hur du kan använda resursen User för att säkerställa att en användare finns.

Med Se till inställt på Present och Användarnamn inställt på SomeUserNameskapar resursen SomeUserName kontot om det inte finns.

Med Lösenord inställt på det användardefinierade värdet för parametern PasswordCredential skapas kontot med lösenordet inställt på värdet PasswordCredential om resursen SomeUserName skapar kontot. Första gången någon loggar in som SomeUserNameuppmanar systemet dem att ändra lösenordet.

Om SomeUserName det finns anger resursen inte lösenordet för det kontot.

Med Invoke-DscResource

Det här skriptet visar hur du kan använda resursen User med cmdleten Invoke-DscResource för att säkerställa att kontot finns och skapa det med ett standardlösenord SomeUserName om det behövs.

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

Med en konfiguration

Det här kodfragmentet visar hur du kan definiera en Configuration med ett Service resursblock för att säkerställa att kontot finns och skapa det med ett standardlösenord SomeUserName om det behövs.

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