搭配使用認證與 DSC 資源
適用於:Windows PowerShell 5.0、Windows PowerShell 5.1
您可以在設定中使用自動 PsDscRunAsCredential 屬性,以一組指定的認證來執行 DSC 資源。 DSC 預設會使用系統帳戶執行每項資源, 但有些時候仍須以使用者身分執行,例如在特定使用者內容中安裝 MSI 封裝;設定使用者的登錄機碼;存取使用者的特定本機目錄;或存取網路共用等等。 針對您指定至 PSDSCRunAsCredential 的所有帳戶,SeInteractiveLogonRight 皆為目標電腦的必要項目。 如需詳細資訊,請參閱帳戶權限常數。
每個 DSC 資源都有 PsDscRunAsCredential 屬性,可設為任何使用者認證 (PSCredential 物件)。 此認證可硬式編碼成設定中的屬性值,也可將此值設為 Get-Credential,如此將會在編譯設定時提示使用者輸入認證 (如需編譯設定的相關資訊,請參閱設定。
注意
在 PowerShell 5.0 中,不支援在呼叫複合資源的設定中使用 PsDscRunAsCredential 屬性。 在 PowerShell 5.1 中,支援在呼叫複合資源的設定中使用 PsDscRunAsCredential 屬性。 PowerShell 4.0 中無法使用 PsDscRunAsCredential 屬性。
下列範例使用了 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
中包含有效的憑證,且該憑證的指紋為所顯示的值。 如需在 DSC 設定 MOF 檔案中加密認證的資訊,請參閱保護 MOF 檔案。