Поделиться через


Использование учетных данных с ресурсами DSC

Область применения: Windows PowerShell 5.0, Windows PowerShell 5.1

Вы можете запустить ресурс DSC с указанным набором учетных данных с помощью автоматического свойства PsDscRunAsCredential в конфигурации. По умолчанию DSC запускает каждый ресурс в качестве системной учетной записи. Бывают случаи, когда требуется запуск от имени пользователя, например, установка пакетов MSI в определенном пользовательском контексте, настройка разделов реестра пользователя, доступ к определенному локальному каталогу пользователя или доступ к сетевому ресурсу. SeInteractiveLogonRight требуется целевому компьютеру для любой учетной записи, указанной в PSDSCRunAsCredential. Дополнительные сведения см. в разделе Константы прав пользователя.

Каждый ресурс DSC имеет свойство PsDscRunAsCredential , которому можно задать любые учетные данные пользователя (объект PSCredential ). Учетные данные могут быть жестко закодированы как значение свойства в конфигурации или вы можете задать значение Get-Credential, которое будет запрашивать у пользователя учетные данные при компиляции конфигурации (сведения о компиляции конфигураций см. в разделе Конфигурации).

Замечание

В PowerShell 5.0 использование свойства PsDscRunAsCredential в конфигурациях, вызывающих составные ресурсы, не поддерживалось. В PowerShell 5.1 свойство PsDscRunAsCredential поддерживается в конфигурациях, вызывающих составные ресурсы. Свойство PsDscRunAsCredential недоступно в PowerShell 4.0.

В следующем примере Get-Credential используется для запроса у пользователя учетных данных. Ресурс реестра используется для изменения раздела реестра, который определяет цвет фона для окна командной строки 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

Замечание

В этом примере предполагается, что у вас есть действительный сертификат по адресу C:\publicKeys\targetNode.cer, и что отпечаток этого сертификата является отображаемым значением. Сведения о шифровании учетных данных в MOF-файлах конфигурации DSC см. в разделе Защита MOF-файла.