PowerShell DSCを使用して、ネットワーク共有からフォルダーの内容をコピーしようとしています。これがコードです:
Configuration TestSetup {
Node localhost {
File Test {
SourcePath = "\\Server\SomeShare\SomeFolder"
DestinationPath = "E:\test"
Recurse = $true
Type = "Directory"
}
}
}
ただし、これは機能しません。実行すると、次のエラーメッセージが表示されます。
The related file/directory is: \\Server\SomeShare\SomeFolder.
The path cannot point to the root directory or to the root of a net share.
SourcePath must be specified if you want to configure the destination directory recursively. Make sure that SourcePath is a directory and that it is accessible.
+ CategoryInfo : InvalidArgument: (:) [], CimException
+ FullyQualifiedErrorId : MI RESULT 4
+ PSComputerName : localhost
The SendConfigurationApply function did not succeed.
+ CategoryInfo : InvalidArgument: (root/Microsoft/...gurationManager:String) [], CimException
+ FullyQualifiedErrorId : MI RESULT 4
+ PSComputerName : localhost
ネットワーク共有からパッケージをインストールしたり、ネットワーク共有からアーカイブを抽出したりすると、同様の結果が得られます。 Windows Server 2008 R2 SP1でPowerShell 4を実行しています。
ネットワーク共有でPowerShell DSCを使用する方法はありますか?
DSCローカル構成マネージャーは、ユーザーアカウントではなく、ローカルのSYSTEMアカウントとして実行されます。したがって、明示的な権限が付与されていない限り、ネットワークリソースにアクセスできません。
2つの状況が考えられます。共有がDSC構成が適用されているのと同じマシン上にある(このマシンをAと呼ぶ)か、または共有が別のマシン上にある(このマシンをBと呼ぶ)のいずれかです。
共有がマシンAにある場合、READ権限をSYSTEMユーザーに付与する必要があります。例えば:
net share SomeShare=C:\SomeShare /GRANT:"NT AUTHORITY\SYSTEM",READ
共有がマシンBにある場合、マシンAのコンピューターアカウントに読み取りアクセス許可を付与する必要があります。次に例を示します。
net share SomeShare=C:\SomeShare /GRANT:DOMAIN\MachineA$,READ
DSC
は、設定を適用するためにlocalhost
で実行されます。つまり、DSC
リソースファイルは、DSC
を介して構成する各マシンに配布する必要があります。
したがって、共有からDSCファイルをコピーする場合は、アクセス許可の管理が重要です。
DSC
はNT AUTHORITY\SYSTEM
アカウントで実行され、Credential
属性が設定されていない限り、ネットワーク共有からファイルをプルするときにComputer account
が使用されます。
したがって、ファイルの取得元に応じて、SYSTEM
アカウントにローカル共有のread
権限を付与し、Computer account
にリモート共有のread
権限を付与する必要があります。
これは、Richardsの回答で具体的に詳しく説明されています。これは、この情報について 元のブログソース の構文を賢く拡張しています。
現時点ではこれについて詳しく調べる時間はありませんが、ローカル構成マネージャーが使用する資格情報を安全に渡すことができるようです。実際、ブログの投稿で彼の例はFileリソースを使用してネットワーク共有からファイルをプルしています。私はこれをすぐに試して、この答えをより具体的にするために戻って来たいと思います。
TechNetブログ: Windows PowerShellの望ましい状態の構成で資格情報をセキュリティで保護したいですか? -Travis Plunk