如何在调用.exe文件前为现有PowerShell脚本添加[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12配置
正确的PowerShell语法写法
你的原写法是错误的——不能把TLS协议设置语句和exe调用命令混在同一个&执行块里,因为这是两条独立的PowerShell操作,需要分开执行。
正确的做法是先单独设置TLS 1.2安全协议,再调用目标exe文件,完整代码如下:
cd $HelperPath #---------------------------------------------- # 在SharePoint中心库中创建配置列表 #---------------------------------------------- Show-Message -Message "Step 1a: Create groups and adding users to it" # 先设置TLS 1.2安全协议,确保后续网络请求使用正确的协议版本 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # 再执行exe程序,传递所需参数 & "$HelperPath\Microsoft.Legal.MatterCenter.CreateGroups.exe" "true" $Username $Password
补充说明:
[Net.ServicePointManager]::SecurityProtocol是PowerShell对.NET类的直接调用,需要单独执行生效。如果像你原来那样把它和exe路径拼接成字符串,PowerShell会把整个内容当成一个不存在的命令去执行,必然会报错。分开执行后,exe在发起网络请求时就会自动使用我们设置好的TLS 1.2协议了。
内容的提问来源于stack exchange,提问作者John John




