【问题标题】:powershell dsc version 3.8.0.0 installationpowershell dsc 3.8.0.0版安装
【发布时间】:2016-03-25 14:27:56
【问题描述】:

我使用以下方法安装了新版本的 ps DSC 3.8.0.0:

Find-Module -Name xpsd* | Install-Module

我敢肯定,在我写这个问题时,我已经至少重新启动了一次电脑。 问题是旧版本 (3.7.0.0) DSC 资源智能感知一直在出现。实际上就像从未安装过新模块一样。

我尝试使用以下方法删除旧的 dsc 资源:

Get-DSCResource | Where-Object{$_.Version -eq '3.7.0.0'} | Remove-Item

这导致模块没有被删除而是损坏,因为它们被列为:

ImplementedAs   Name                      ModuleName                     Version    Properties                                        
-------------   ----                      ----------                     -------    ----------                                        
Binary          File                                                                {DestinationPath, Attributes, Checksum, Content...

最初他们的ImplementedAs 属性的值为PowerShell,在Remove-Item 命令之后更改为Binary。此外,它们的 ModuleNameVersion 属性在损坏之前已正确填充。

使用$env:PSModulePath,我能够找到3.7.0.0 文件夹并将其删除。

虽然模块不再显示在“Get-DSCResource”检索到的列表中,但我遇到了两个问题:

1) 如何让 DSC 使用新的3.8.0.0 资源及其对应的参数?

注意:我尝试了Find-Module -Name xpsd* | Install-Module -Force,但没有任何改善。

【问题讨论】:

    标签: powershell dsc powershell-5.0


    【解决方案1】:

    xPSDesiredStateConfiguration 是我们在图库中提供的实验模块,而 PSDesiredStateConfiguration 是盒装的。为了使用模块中的资源,您需要使用 Import-DscResource 语句进行导入

    Import-DscResource -ModuleName xPSDesiredStateConfiguration
    

    然后你可以使用如下资源:

    xService MyService
    {
    }
    

    请注意,资源名称也不同 - xPSDesiredStateConfiguration 中的资源名称前面有“x”前缀

    【讨论】:

    • 好的,我包含了 Import-DscResource 语句,但 xPackage 资源仍然不包含 3.8.0.0 文档中包含的 Version 属性
    • 以下命令'Get-Module -List xPSDesiredStateConfiguration'的输出是什么
    • 我很抱歉,评论不允许我分开行。 Directory: C:\Program Files\WindowsPowerShell\ModulesModuleType Version Name ExportedCommands---------- ------- ---- ----------------Script 3.8.0.0 xPSDesiredStateConfiguration Publish-DSCModuleAndMof
    【解决方案2】:

    显然github documentation 声称xPackage 资源中有Version 属性是不准确的。

    我怎么知道?

    $res = Get-DSCResource xPackage
    $res.Properties
    

    属性项列表不包括Version 属性。因此,DSC 编译器成功地使用了较新的版本3.8.0.0,令我惊讶的是,在 3 周内,更新的版本 3.9.0.0 紧随其后。之前的3.7.0.0 版本比3.8.0.0 版本早13 个月发布!!!

    【讨论】:

    • 返回的属性是资源的可写属性。 Version 属性是仅由 Get-DscConfiguration 返回的读取属性。另外,我看不出这与问题有什么关系。
    • @TravisPlunk 是的,我在 DSC github repo 页面上打开的问题得到了回答,Version 属性是只读的。他们确实给了我一个detailed answer,即使版本属性在3.9.0.0 中显示为可用,它实际上并不存在于包资源中!!!这就是我最初提出问题的原因。
    猜你喜欢
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 2022-01-27
    相关资源
    最近更新 更多