Używanie poświadczeń z zasobami DSC

Dotyczy: Windows PowerShell 5.0, Windows PowerShell 5.1

Zasób DSC można uruchomić w ramach określonego zestawu poświadczeń przy użyciu automatycznej właściwości PsDscRunAsCredential w konfiguracji. Domyślnie rozszerzenie DSC uruchamia każdy zasób jako konto systemowe. Czasami uruchomienie jako użytkownik jest konieczne, na przykład instalowanie pakietów MSI w określonym kontekście użytkownika, ustawianie kluczy rejestru użytkownika, uzyskiwanie dostępu do określonego katalogu lokalnego użytkownika lub uzyskiwanie dostępu do udziału sieciowego. SeInteractiveLogonRight jest wymagany przez maszynę docelową dla dowolnego konta określonego jako PSDSCRunAsCredential. Aby uzyskać więcej informacji, zobacz Stałe praw konta.

Każdy zasób DSC ma właściwość PsDscRunAsCredential , którą można ustawić na dowolne poświadczenia użytkownika (obiekt PSCredential ). Poświadczenie może być trwale zakodowane jako wartość właściwości w konfiguracji lub można ustawić wartość Get-Credential, co spowoduje wyświetlenie monitu użytkownika o podanie poświadczeń podczas kompilowania konfiguracji (aby uzyskać informacje na temat kompilowania konfiguracji, zobacz Konfiguracje.

Uwaga

W programie PowerShell 5.0 użycie właściwości PsDscRunAsCredential w konfiguracjach wywołujących zasoby złożone nie było obsługiwane. W programie PowerShell 5.1 właściwość PsDscRunAsCredential jest obsługiwana w konfiguracjach wywołujących zasoby złożone. Właściwość PsDscRunAsCredential nie jest dostępna w programie PowerShell 4.0.

W poniższym przykładzie Get-Credential użyto polecenia w celu wyświetlenia monitu użytkownika o podanie poświadczeń. Zasób rejestru służy do zmiany klucza rejestru, który określa kolor tła okna wiersza polecenia systemu Windows.

Configuration ChangeCmdBackGroundColor
{
    Import-DscResource -ModuleName PSDesiredStateConfiguration

    Node $AllNodes.NodeName
    {
        Registry CmdPath
        {
            Key                  = 'HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor'
            ValueName            = 'DefaultColor'
            ValueData            = '1F'
            ValueType            = 'DWORD'
            Ensure               = 'Present'
            Force                = $true
            Hex                  = $true
            PsDscRunAsCredential = Get-Credential
        }
    }
}

$configData = @{
    AllNodes = @(
        @{
            NodeName             = 'localhost';
            PSDscAllowDomainUser = $true
            CertificateFile      = 'C:\publicKeys\targetNode.cer'
            Thumbprint           = '7ee7f09d-4be0-41aa-a47f-96b9e3bdec25'
        }
    )
}

ChangeCmdBackGroundColor -ConfigurationData $configData

Uwaga

W tym przykładzie przyjęto założenie, że masz prawidłowy certyfikat w C:\publicKeys\targetNode.cerlokalizacji i że odcisk palca tego certyfikatu jest pokazaną wartością. Aby uzyskać informacje na temat szyfrowania poświadczeń w plikach MOF konfiguracji DSC, zobacz Zabezpieczanie pliku MOF.