如何控制 Windows 上使用哪个版本的 Powershell Puppet shell?

如何控制 Windows 上使用哪个版本的 Powershell Puppet shell?

微软最近更改了 Windows Powershell 的下载存储库,要求使用 TLS 1.2+,而如果未将运行时设置更改为 ,Windows Powershell 5.1 则不支持该版本Net.ServicePointManager

我可以将 Puppet 更改为使用 Pwsh (7.x) 作为默认值吗?或者我可以更改一些 Puppet 代码以将Net.ServicePointManager代码片段注入配置的 5.1,从而在所有 Puppet 启动的 Windows Powershell 会话中支持 TLS 1.2?

我试图解决的根本问题是package失败并出现类似以下错误

答案1

puppetlabs-powershell 模块在自述文件中有一个简短的示例,介绍如何通过使用pwsh提供程序而不是powershell提供程序来使用 PowerShell6/7 而不是 5.1:https://github.com/puppetlabs/puppetlabs-powershell#requirements

要使用pwsh提供程序,请将该provider行更改为pwsh,并设置(path如果您的 pwsh 安装不在 PATH 上)。

exec { 'RESOURCENAME':
  ...
  path     => '/usr/alice/pscore',
  provider => pwsh,
}

答案2

问题出在旧的windowspowershell提供商上。修复已记录在案这里

相关内容