如何访问此处所述的内置DSC资源:https://technet.microsoft.com/en-us/library/dn282121.aspx?它们应该是内置的,但是当我尝试在配置中使用它时我收到错误。
我的配置如下:
configuration Windows8VM
{
param
(
[Parameter(Mandatory = $true)]
[string] $ComputerName
)
Import-DSCResource -Name Package
Node $ComputerName
{
File gitFolder
{
Ensure = "Present"
Type = "Directory"
DestinationPath = "C:\git"
}
Package gitSoftware
{
Ensure = "Present"
Name = "git"
ProductId = ''
Path = https://chocolatey.org/api/v2/
Arguments = '/SILENT /COMPONENTS="icons,ext\reg\shellhere,assoc,assoc_sh"'
}
}
}
我得到的错误是:
At C:\win8vmconfig.ps1:9 char:5
+ Import-DSCResource -Name Package
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unable to load resource 'Package': Resource not found.
At C:\win8vmconfig.ps1:20 char:9
+ Package gitSoftware
+ ~~~~~~~
Undefined DSC resource 'Package'. Use Import-DSCResource to import the resource.
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : DscResourcesNotFoundDuringParsing
因此,它完全无法定位资源。这里发生了什么以及我在访问Microsoft记录的内置DSC资源时缺少哪一步?
我正在使用WMF / PowerShell 5.0。
答案 0 :(得分:1)
您不需要使用Import-DscResource
来使用内置资源。这可能实际上是在抛弃它。如果你注释掉那条线,你还会得到第二个错误吗?
你也说过你正在使用WMF 5.你能澄清一下哪个操作系统?在撰写本文时,只有Windows 10具有受支持的PowerShell 5生产就绪版本。
WMF 5 Production Preview即将发布,但目前任何可安装的版本都使用实验性功能。
答案 1 :(得分:0)
这样做的推荐方法(虽然你的版本有效并且在我运行的WMF 5版本中给我一个警告)就是下面的例子。
这是我提到的警告:
警告:配置' Windows8VM'正在加载一个或多个内置资源而不显式导入关联模块。添加Import-DscResource -ModuleName' PSDesiredStateConfiguration'到您的配置以避免此消息。
configuration Windows8VM
{
param
(
[Parameter(Mandatory = $true)]
[string] $ComputerName
)
Import-DSCResource -ModuleName PSDesiredStateConfiguration
Node $ComputerName
{
File gitFolder
{
Ensure = 'Present'
Type = 'Directory'
DestinationPath = 'C:\git'
}
Package gitSoftware
{
Ensure = 'Present'
Name = 'git'
ProductId = ''
Path = 'https://chocolatey.org/api/v2/'
Arguments = '/SILENT /COMPONENTS="icons,ext\reg\shellhere,assoc,assoc_sh"'
}
}
}