gpt4 book ai didi

powershell - 在 Windows 8 上使用 PowerShell 2 作为默认版本

转载 作者:行者123 更新时间:2023-12-04 12:11:06 24 4
gpt4 key购买 nike

我想使用 PowerShell 2 作为 Windows 8 上的默认 PowerShell 版本而不指定 -Version转变。

我开始使用 PowerShell 3 附带的 Windows 8 RTM,但我的脚本与 PowerShell 3 不兼容。

最佳答案

Powershell 使用 publisher policy (另请参阅 here)自动将针对 Powershell 2 构建的主机重定向到 Powershell 3 运行时(如果可用)。

大多数情况下,这正是您想要的,但是如果您的应用需要,您可以明确禁用发布者政策。

将其放在 app.config 文件中以禁用 System.Management.Automation(powershell 运行时)的发布者策略:

<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Management.Automation" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

测试一下(针对 .NET 4.0 的控制台应用程序,明确引用 PS v2 运行时):
PowerShell ps = PowerShell.Create();
ps.AddScript("$psversiontable");
var result = ps.Invoke()[0].BaseObject as Hashtable;

Console.WriteLine("Powershell version: {0}", result["PSVersion"]);
Console.WriteLine(".NET version: {0}", typeof(string).Assembly.GetName().Version);

在我的 Win8 机器上运行这个(PSv3 肯定在那里),我得到了结果
Powershell version: 2.0
.NET version: 4.0.0.0

如果我注释掉 app.config,PS 版本将变为 3.0。

关于powershell - 在 Windows 8 上使用 PowerShell 2 作为默认版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12060460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com