所有文章都讨论了分阶段、包装和一系列基础设施方面的问题。
是否可以只在本地或(最好)在远程服务器上运行脚本?
例如无需基础设施,就像我现在可以运行 ssh 命令?
答案1
是的,您要找的是“推送”模式。您无需设置拉取服务器并使用 GUID 命名文件,只需Start-DscConfiguration
针对本地计算机或远程计算机运行即可。
您仍然需要安装 Windows Management Framework 4,并且目标节点必须允许传入的 WinRM 连接,即使目标是本地节点。
不过,这并不完全等同于使用 SSH,因为一旦应用配置,它将自动重新应用。安装该Windows PowerShell Desired State Configuration Service
功能时,它会自动将 LCM 设置为拉模式。要查看该模式,请运行Get-DscLocalConfigurationManager
。您还将看到检查配置更改的频率(默认为 30 分钟)和重新应用当前配置的频率(默认为 15 分钟)的设置。一旦您实际推送了配置,就会有一个名为一致性将显示在Task Scheduler Library\Microsoft\Windows\Desired State Configuration
此处实际执行的工作。
我还想澄清一下,您不能直接应用在 Powershell 中编写的配置脚本。无论您是推送还是提取配置,您仍然必须先执行脚本以将其“编译”为 MOF 文件,然后应用该文件。
SSH 的一个更好的类似物是 Powershell 远程处理,它允许您针对远程计算机运行代码或在远程计算机中使用交互式提示。这需要在目标计算机上启用 Powershell 远程处理。为此,您可以使用Enter-PSSession
交互式提示,或使用Invoke-Command
在远程计算机上运行脚本块。