我正在尝试创建一个脚本来准备我的网络服务器。 VM是Windows Server 2016全新安装,无需任何调整和导入模块和配置。在脚本内部,我混合了用于安装 .NET、创建目录、加入域的功能和 DSC 配置。 在脚本的开头,我调用:
Install-PackageProvider -Name Nuget...
Install-Module xWebAdmin...
Import-Module ...
然后是一些功能,以及DSC配置。 当我运行脚本时,首先转到 DSC 配置并显示下图中的错误。
我不知道在我的脚本中如何以及在何处,首先安装所有必需的包和模块,然后执行脚本和配置的其余部分。
由于我没有安装和导入模块 xWindowsUpdate、xWebAdministration,因此即使我将 import-module 放在脚本的开头,这也不会执行。
Install-Module -Name xWebAdministration -Force
Install-Module -Name xWindowsUpdate -Force
Configuration IIS
{
Import-DscResource –ModuleName PSDesiredStateConfiguration, xWindowsUpdate,
xWebAdministration
Node "localhost"
{
{
Ensure = "Present"
Type = "Directory"
DestinationPath = "C:\DSCDeployment"
}
有什么提示和建议吗?
似乎不可能在同一个文件中安装模块并调用 DSC 配置。首先,PowerShell 将解析配置并尝试解析 Import-DSCResource 关键字(但会失败,因为它们不可用)。 它必须在 2 个单独的文件中完成...
我在配置之前使用调用语句完成了它
$Nodes = @(
@{ NodeName = 'testserver03'}
,@{ NodeName = 'testserver01'}
)
foreach ($Node in $Nodes)
{
invoke-command -ComputerName $Node.NodeName -ScriptBlock `
{
Install-PackageProvider -Name NuGet -Force
Install-Module -Name NetworkingDsc -Force
}
}
Configuration Monitor
{
Import-DscResource –ModuleName 'PSDesiredStateConfiguration'
Import-DscResource -ModuleName 'NetworkingDsc'
.....