2016-04-27 105 views
1

我需要使用DSC资源运行file.bat。我能够成功执行file.bat的唯一方法是使用Package资源。不过,我收到以下错误:如何使用PowerShell DSC运行批处理文件?

PowerShell DSC resource MSFT_PackageResource failed to execute Set-TargetResource functionality with error message: Package from Directory\To\MyFile\file.bat was installed, but the specified ProductId and/or Name does not match package details

我知道错误的意思,我以前解决它。但是,没有productId也没有批处理文件的名称。

我该如何使用DSC运行批处理文件?

+1

嵌入批处理文件成脚本资源? – beatcracker

+0

它不起作用。你试过了吗? –

+1

不,但我不明白为什么它不应该。如果这个批处理文件在目标机器上不存在,请使用here-string('$ batch = @'..code ..'@')将其存储在变量中,然后将其转储到文件('$ batch | Out-File -Encoding ascii -Force -FilePath'X:\ path \ to \ mybatch.cmd'')并使用'&。\ mybatch.cmd'运行。如果这不适合你,那么发布有关错误的更多细节。 – beatcracker

回答

1

我想将问题计为已回答。谢谢@beatcracker提供答案。

使用Script resource并在SetScript脚本块使用

& your\batch\file\directory.yourBatchFile.bat optionalArguments

如果还是不行,请尝试

Invoke-Command -ScriptBlock {& your\batch\file\directory.yourBatchFile.bat optionalArguments}

:d

+1

你知道你甚至可以接受你自己的答案吗? – aschipfl

+0

在一天中,系统说大声笑 –