查找PowerShell V2中不支持的功能/ cmdlet

时间:2015-10-01 14:41:03

标签: powershell

我为客户使用PowerShell脚本进行自动化。客户端基础涉及Windows操作系统的不同服务器,有些使用PowerShell v2.0,很少使用后者版本,包括v3.0及更高版本。

编写脚本时我使用的是PowerShell V3.0,因为它具有ISE和intellisense功能。但是,在某些情况下,脚本在我的计算机上运行良好,并且在客户端计算机上失败,因为它们使用的是v2.0。我需要找到一些方法,通过再次更改代码使其与v2.0兼容。

我正在寻找一些方法来找出适用于v3.0但不适用于v2.0的功能的所有替代方法。例如,在v2.0上不支持-in和-notin,我在此站点上找到了一些使用-contains和-notcontains的解决方法。

有人可以引导我到某个地方参考我可以找到所有这些变通办法的地方,或者至少是v2.0与v3.0不支持的功能列表。

提前致谢。

1 个答案:

答案 0 :(得分:2)

我不能真正建议关闭网站资源,因为这不会得到一个好的答案。也没有为这种概括找到一个好的欺骗。

有一种方法可以帮助您从代码中获取更新的功能。当您使用3.0进行编码时,如果我没有这些功能,我将会错过,您可以通过running PowerShell with the -Version开关

测试您的代码
PS C:\Users\mcameron> get-host


Name             : ConsoleHost
Version          : 4.0
InstanceId       : 5d9a91b4-e984-43a5-823e-e20bb8f9e30a
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-US
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace



PS C:\Users\mcameron> powershell -version 2
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\Users\mcameron> get-host


Name             : ConsoleHost
Version          : 2.0
InstanceId       : c3a6fe5c-295e-440b-8433-2f2b87741706
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-US
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

所以我的建议是在较低版本中测试你的代码。如果/何时中断,您可以对这些单个部件进行故障排除。如果你仍然被困住,那可能是另一个很好的问题。