PowerShell DSC現在の設定の実行コンテキストは何ですか?
-
21-12-2019 - |
質問
DSCを介してPowerShellプロファイルを展開しようとしています。 構成は、ネットワーク共有からローカルパスに.ps1ファイルをコピーする必要があります。
スクリプトの実行は、次のエラーで失敗します。 sourcepathは現在の設定にアクセス可能でなければなりません。まだこのパスはコンソールからアクセスできます。
これはスクリプト
です@ ravikanthの返信後編集
$ConfigurationData = @{
AllNodes = @(
@{
NodeName="*"
PSDscAllowPlainTextPassword=$true
}
)
}
Configuration MyProfile
{
param ([string[]]$MachineName,
[PSCredential]$Credential)
Node $MachineName
{
Log startconfig
{
# The message below gets written to the Microsoft-Windows-Desired State Configuration/Analytic log
Message = "starting the file resource with ID MyProfile with $($myinvocation.mycommand) user : $env:username"
}
File profile
{
Credential=$credential
Ensure = 'Present'
SourcePath = "\\web-mridf\powershell\profil_1.ps1"
DestinationPath = "c:\temp\test.txt"
Type = "File" # Default is "File".
DependsOn = "[Log]startconfig"
}
Log AfterDirectoryCopy
{
# The message below gets written to the Microsoft-Windows-Desired State Configuration/Analytic log
Message = "Finished running the file resource with ID MyProfile"
DependsOn = "[File]profile" # This means run "MyProfile" first.
}
}
}
MyProfile -MachineName web-mridf -OutputPath c:\temp\dsc
Start-DscConfiguration -Path c:\temp\dsc -credential (get-credential("DOMAIN\user")) -force -verbose -Wait
.
とエラーが受信された(無効な引数)
PS C:\temp> .\dsc.ps1
Répertoire : C:\temp\dsc
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 04/06/2014 10:54 2834 web-mridf.mof
COMMENTAIRES : Effectuez l'opération « Invoquer une méthode CIM » avec les
paramètres suivants : « 'methodName' = SendConfigurationApply,'className' =
MSFT_DSCLocalConfigurationManager,'namespaceName' =
root/Microsoft/Windows/DesiredStateConfiguration ».
COMMENTAIRES : [WEB-MRIDF] : [[File]profile]
SourcePath must be accessible for current configuration.
COMMENTAIRES : [WEB-MRIDF] : [[File]profile] The
related file/directory is: \\web-mridf\powershell\profil_1.ps1.
SourcePath must be accessible for current configuration. The related
file/directory is: \\web-mridf\powershell\profil_smac.ps1. . L'ID de ressource
associé est [File]profile.
+ CategoryInfo : InvalidArgument : (:) [], CimException
+ FullyQualifiedErrorId : MI RESULT 4
+ PSComputerName : web-mridf
COMMENTAIRES : [WEB-MRIDF] : Gestionnaire de configuration local : [ Fin
Définir ]
La fonction SendConfigurationApply n'a pas réussi.
+ CategoryInfo : InvalidArgument : (root/Microsoft/...gurationMan
ager:String) [], CimException
+ FullyQualifiedErrorId : MI RESULT 4
+ PSComputerName : web-mridf
COMMENTAIRES : L'opération « Invoquer une méthode CIM » est terminée.
COMMENTAIRES : Le temps nécessaire à l'exécution du travail de configuration
est de 0.881 secondes
. 解決
DSCローカル構成マネージャはシステムとして実行されます。だから、それは共有にアクセスできません。共有にアクセスするために資格情報を渡す必要があります。認証情報の場合は、証明書を使用してパスワードを暗号化するか、プレーンテキストのパスワードを使用する必要があります。
プレーンテキストパスワードの場合は、PowerShell Magazineで投稿した記事を確認してください。 http:// www。 powershellmagazine.com/2013/09/26/using-the-credential-attribute-of-dsc-file-resource/
パスワード暗号化の証明書を使用したい場合は、 http://blogs.msn.com/b/powershell/archive / 2014/01/31/Want- To-Secure-Credentials-in-Windows-PowerShell - 希望状態 - Configuration.aspx
構成データを使用する場合の$ ALLNODES.NODENAMEはキーです。それを静的なノード名で置き換えないでください。
$ConfigurationData = @{
AllNodes = @(
@{
NodeName="*"
PSDscAllowPlainTextPassword=$true
}
@{
NodeName="ServerName"
}
)
}
Configuration MyProfile
{
param (
[PSCredential]$Credential
)
Node $AllNodes.NodeName
{
Log startconfig
{
# The message below gets written to the Microsoft-Windows-Desired State Configuration/Analytic log
Message = "starting the file resource with ID MyProfile with $($myinvocation.mycommand) user : $env:username"
}
File profile
{
Credential=$credential
Ensure = 'Present'
SourcePath = "e:\powershell\profil_smac.ps1"
DestinationPath = "c:\temp\test2.txt2"
Type = "File" # Default is "File".
DependsOn = "[Log]startconfig"
}
Log AfterDirectoryCopy
{
# The message below gets written to the Microsoft-Windows-Desired State Configuration/Analytic log
Message = "Finished running the file resource with ID MyProfile"
DependsOn = "[File]profile" # This means run "MyProfile" first.
}
}
}
MyProfile -configurationdata $configurationdata -machinename "web-mridf.groupe.sa.colas.com" -credential (get-credential("groupe\sys-mac-smacsr")) -OutputPath c:\temp\dsc
Start-DscConfiguration -Path c:\temp\dsc -force -verbose -Wait
. 所属していません StackOverflow