如何在同一脚本中调用DSC之前安装和导入模块?

问题描述 投票:0回答:2

我正在尝试创建一个脚本来准备我的网络服务器。 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"    
    }

有什么提示和建议吗?

powershell dsc
2个回答
2
投票

似乎不可能在同一个文件中安装模块并调用 DSC 配置。首先,PowerShell 将解析配置并尝试解析 Import-DSCResource 关键字(但会失败,因为它们不可用)。 它必须在 2 个单独的文件中完成...


0
投票

我在配置之前使用调用语句完成了它

$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'
.....
© www.soinside.com 2019 - 2024. All rights reserved.