【问题标题】:Why does Powershell DSC MOF generation does not work for me?为什么 Powershell DSC MOF 生成对我不起作用?
【发布时间】:2015-11-04 17:29:34
【问题描述】:

我正在尝试编写我的第一个 Powershell DSC 脚本,它看起来很简单,除非它当然不起作用。

我的脚本名为 ScriptFolderConfig.ps1 这是我的脚本:

configuration ScriptFolder
{
    param ($Node)

    node $Node
    {
        File ScriptFiles
        {
            SourcePath = "\\BRPSTFSBUILD01\Drops\share"
            DestinationPath = "C:\scripts"
            Ensure = "Present"
            Type = "Directory"
            Recurse = $true
        }
    }
} 

从包含脚本的文件夹中,我运行 .\ScriptFolderConfig.ps1 没有错误。 然后我尝试运行 ScriptFolder,我收到错误:

ScriptFolder : 术语“ScriptFolder”未被识别为名称 cmdlet、函数、脚本文件或可运行程序的名称。检查 名称的拼写,或者如果包含路径,请验证路径 是正确的,然后再试一次。在行:1 字符:1 + 脚本文件夹 +~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (ScriptFolder:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

【问题讨论】:

    标签: powershell dsc


    【解决方案1】:

    试试这个:

    从包含您的脚本运行的文件夹中

    . .\ScriptFolderConfig.ps1 # "." will load your function 
    

    然后再试一次。

    【讨论】:

    • 谢谢,感谢您的帮助。你能解释一下为什么这是有效的,或者在我的情况下是必要的,但显然对于我找到的所有例子来说都不是必需的。
    • 不客气!我相信您会在这篇精彩的帖子中找到问题的答案。 blogs.technet.com/b/heyscriptingguy/archive/2010/08/10/…
    • 之所以有必要是因为当你使用执行.ps1 脚本时,它是自包含的。其中使用的变量、函数和状态发生在它们自己的范围内。通过点源,您将脚本文件带入当前范围,就好像您在命令行中键入了所有内容一样。许多示例在 ps1 文件定义后立即执行配置,因此整个操作发生在该范围内,并且不需要点源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多