找不到内置DSC资源

时间:2015-08-26 21:44:05

标签: windows powershell dsc powershell-v5.0

如何访问此处所述的内置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。

2 个答案:

答案 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"'
        }
    }
}