Почему у меня не работает генерация MOF Powershell DSC?

Я пытаюсь написать свой первый сценарий 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» не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте написание имени или, если был включен путь, убедитесь, что путь правильный, и повторите попытку. В строке: 1 символ: 1 + ScriptFolder + ~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (ScriptFolder: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException


person Noel    schedule 04.11.2015    source источник


Ответы (1)


Попробуй это:

Из папки, в которой находится ваш скрипт, запустите

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

Затем попробуйте еще раз.

person kekimian    schedule 04.11.2015
comment
Спасибо, я ценю помощь. Можете ли вы объяснить, почему это работает или необходимо в моем случае, но, очевидно, не обязательно для всех примеров, которые я нашел. - person Noel; 04.11.2015
comment
Пожалуйста! Я уверен, что вы найдете ответ на свой вопрос в этом замечательном посте. blogs.technet.com/b/heyscriptingguy/archive/2010/08/10/ - person kekimian; 04.11.2015
comment
Причина, по которой это необходимо, заключается в том, что когда вы используете сценарий execute .ps1, он самодостаточен. Переменные, функции и состояния, которые используются в нем, происходят в своей собственной области. Используя точечный источник, вы переносите файл сценария в текущую область видимости, как если бы вы набрали все это в командной строке. Многие примеры выполняют конфигурацию внутри файла ps1 сразу после его определения, поэтому вся операция происходит в этой области, и поиск точек не требуется. - person briantist; 04.11.2015