我正在尝试按照这篇技术网文章在 Windows 2012 R2 机器上设置 DSC 拉取服务器:
http://technet.microsoft.com/en-us/library/dn249913.aspx
但是我就是无法让模块工作。安装说明说:
要安装所有 DSC 资源工具包模块,请解压缩下面的内容
$env:ProgramFiles\WindowsPowerShell\Modules
要确认安装运行
Get-DSCResource
以查看此页面上的所有资源都在列出的 DSC 资源中。
所以我复制了“DSC Resource Kit Wave 8 10282014”文件夹的C:\Program Files\WindowsPowerShell\Modules
内容,现在看起来如下:
c:\Program Files\WindowsPowerShell\Modules>tree
├───cFileShare
│ ├───DSCResources
│ │ ├───VSAR_cCreateFileShare
│ │ └───VSAR_cSetSharePermissions
│ ├───Examples
│ ├───ResourceDesignerScripts
│ └───Unit Tests
├───xActiveDirectory
│ ├───DSCResources
│ │ ├───MSFT_xADDomain
│ │ ├───MSFT_xADDomainController
│ │ ├───MSFT_xADDomainTrust
│ │ ├───MSFT_xADUser
│ │ └───MSFT_xWaitForADDomain
│ └───Misc
├───xAdcsDeployment
│ ├───DSCResources
│ │ ├───MSFT_xAdcsCertificationAuthority
│ │ └───MSFT_xAdcsWebEnrollment
│ └───xCertificateServices
│ ├───DSCResources
│ │ ├───MSFT_xAdcsCertificationAuthority
│ │ └───MSFT_xAdcsWebEnrollment
│ └───Examples
[...]
然后我重新启动了我的 PowerShell 控制台以确保它正在重新加载$env:PSModulePath
,顺便说一下(手动添加换行以获得更好的可读性):
PS C:\Users\Administrator> $env:PSModulePath
C:\Users\Administrator\Documents\WindowsPowerShell\Modules;
C:\Program Files\WindowsPowerShell\Modules;
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
所以这里的一切都是默认的。但是get-module -ListAvailable
,只是不听上述任何模块,例如xPSDesiredStateConfiguration
。此外,该Get-DscResource
cmdlet 不会返回此模块附带的任何资源(尤其xDSCWebService
是我正在寻找的用于设置拉取服务器的 DSC 资源)。
如果我手动将内容复制xPSDesiredStateConfiguration\DSCResources\*
到模块路径文件夹之一,我确实会看到 DSC 资源。但是,拉服务器设置脚本 ( Sample_xDscWebService.ps1
) 失败。打开编辑器,它向我显示了一个语法错误,靠近:
Import-DSCResource -ModuleName xPSDesiredStateConfiguration
我只是无法弄清楚我在这里做错了什么。那么,如何安装 DSC 资源工具包?