我正在尝试在 Pester 的帮助下测试一些编写为类的自定义 DSC 资源。但是,我正在努力研究如何使该类可用于不同的文件。这真的不是一个麻烦的问题,我也不能在 powershell 中做到这一点。我有一个带有类的模块,类似于 SxDeployment.psm1 文件中的以下内容
[DscResource()]
class SxWindowsService {
[void]Set(){
}
[bool]Test(){
return $true;
}
[SxWindowsService]Get(){
return $this
}
}
该模块有一个对应的 .psd1,它将 SxWindowsService 类列为“DscResourcesToExport”。它被注册为一个模块,当我执行 Get-Module -ListAvailable 时我可以看到这个模块,并且还可以对其执行 Import-Module。
我想我的问题真的是如何从另一个文件创建对此类的引用?
假设我有一个不同的文件 test.ps1 具有以下内容
Import-Module SxDeployment
$class = [SxWindowsService]::new()
我收到以下错误,“无法找到类型 [SxWindowsService]。”
更新 经过一番修改后,我可以通过将 .psm1 文件更改为 .ps 文件并将 import-module 语句更改为 .psm1 文件来创建该类的实例。.\SxDeployment.ps1。所以看起来问题是如何使用 DSC 配置之外的 DSC 资源模块文件中定义的资源?