Использование учетных данных с ресурсами DSC
Область применения: Windows PowerShell 5.0, Windows PowerShell 5.1
Ресурс DSC можно запускать с определенным набором учетных данных. Для этого используется автоматическое свойство PsDscRunAsCredential в конфигурации. По умолчанию DSC запускает каждый ресурс в качестве системной учетной записи. Иногда бывает необходим запуск с учетной записью обычного пользователя, например, при установке MSI-пакетов в контексте определенного пользователя, при установке разделов реестра пользователя, доступе к конкретному локальному каталогу пользователя или сетевой папке. Согласно требованиям целевого компьютера нужно обязательно указать SeInteractiveLogonRight для любой учетной записи, назначенной свойству PSDSCRunAsCredential. Дополнительные сведения см. в статье Account Rights Constants (Константы прав учетных записей).
У каждого ресурса есть свойство PsDscRunAsCredential, которому можно присвоить учетные данные любого пользователя (объект PSCredential). Учетные данные можно жестко задать в качестве значения свойства конфигурации или установить в качестве значения Get-Credential. В этом случае пользователю будет предложено ввести учетные данные при компиляции конфигурации (дополнительные сведения о компиляции конфигураций см. в разделе Конфигурации).
Примечание
В PowerShell 5.0 использование свойства PsDscRunAsCredential в конфигурациях, вызывающих составные ресурсы, не поддерживалось. В PowerShell 5.1 свойство PsDscRunAsCredential поддерживается в конфигурациях, вызывающих составные ресурсы. Свойство PsDscRunAsCredential недоступно в PowerShell 4.0.
В следующем примере Get-Credential
используется для запроса учетных данных пользователя. Ресурс Registry используется для изменения раздела реестра, указывающего цвет фона для окна командной строки 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-файла.