版权所有 (C) 2006 Microsoft Corporation。保留所有权利。
此信息按“原样”提供,没有任何明示或暗示的保证,包括但不仅限于针对适销性或特定目的的适用性的暗示保证。
本文档介绍了对 Windows PowerShell V1.0 发行版的最新更改。若要了解有关 Windows PowerShell 的更多信息,请参阅“入门指南”、“Windows PowerShell 入门”和“快速参考”。从 Windows PowerShell 的“开始”菜单链接中可以打开以上链接。
对 Windows PowerShell RC2 所做的更改
在 Windows PowerShell RC2 和 Windows PowerShell V1.0 最终版本之间并没有任何重大更改。以下列表介绍了在 RC2 发行声明中未涉及但有必要予以介绍的一些功能。
对 ADSI 的支持:
我们向 Windows PowerShell 中添加了直接的 ADSI 支持,以便用户更方便地管理 Active Directory。现在可以对 Active Directory 对象执行创建 ADSI 对象、获取属性及调用方法等操作。
示例:(创建 OU)
PS >$objDomain =
[ADSI]\"LDAP://localhost:389/dc=NA,dc=fabrikam,dc=com\"
PS >$objOU = $objDomain.Create(\"organizationalUnit\PS >$objOU.SetInfo()
新的产品 ID:
Windows PowerShell 的 RC2 版本具有一个产品 ID (PID),该产品 ID 存储在以下注册表项中并具有以下值:
HKLM\\Software\\Microsoft\\PowerShell\\1 PID=89393-100-0001260-00301
在最终的 V1.0 版本中,PID 号更改为: HKLM\\Software\\Microsoft\\PowerShell\\1 PID= 89383-100-0001260-04309
新的配置文件位置:
Windows PowerShell 配置文件现在位于 WindowsPowerShell 目录中,而不再位于 PSConfiguration 目录中。
用于所有用户的配置文件位于以下位置:
%windir%\\system32\\WindowsPowerShell\\v1.0\\profile.ps1 %windir%\\system32\\WindowsPowerShell\\v1.0\\ Microsoft.PowerShell_profile.ps1
特定于用户的配置文件位于 %UserProfile% 目录下的 WindowsPowerShell 目录中。
在 64 位版本的 Windows 中,Windows PowerShell 还包含另外一组用于所有用户的配置文件。这些文件位于以下位置:
%windir%\\syswow64\\WindowsPowerShell\\v1.0\\profile.ps1 %windir%\\syswow64\\WindowsPowerShell\\v1.0\\ Microsoft.PowerShell_profile.ps1
与以前一样,Microsoft.PowerShell_profile.ps1 配置文件专用于
Microsoft.PowerShell 外壳程序,profile.ps1 配置文件用于所有外壳程序。
对 Windows PowerShell RC1 所做的更改
改进了错误输出的可读性:
利用 $host.PrivateData 可使用新的对象。对象 ConsoleColorProxy 用于设置外壳程序中的错误输出的颜色。
若要查看当前颜色,请键入“$host.privatedata”。
PS > $host.privatedata
ErrorForegroundColor : 红色 ErrorBackgroundColor : 黑色 WarningForegroundColor : 黄色 WarningBackgroundColor : 黑色 DebugForegroundColor : 黄色 DebugBackgroundColor : 黑色 VerboseForegroundColor : 黄色 VerboseBackgroundColor : 黑色 ProgressForegroundColor : 黄色
ProgressBackgroundColor : 深青
若要查看 ConsoleColorProxy 对象的属性和方法,请通过管道将其传递给 Get-Member。例如:
PS > $host.privatedata | get-member
若要更改颜色,请将属性值设置为所需颜色。例如,若要将错误消息背景颜色更改为蓝色,请键入:
PS > $host.privatedata.ErrorBackgroundColor = \"blue\"
新的字节限定符:KB、MB、GB
Windows PowerShell 中的字节限定符已从 K、M 和 G 更改为 KB、MB 和 GB。例如: PS> 54K
数字常量无效: 54K。 所在行:1 字符:3 + 54K <<<<
PS> 54KB 55296
已将 -Xor 和 -Bxor 运算符添加到 PowerShell 脚本语言中:
Windows PowerShell 包含两个新的运算符:-Xor(异或)和 -Bxor(位异或)。
PS> 1 -xor 0 True
PS> 1 -xor 1 False
PS> 1 -bxor 1 0
PS> 1 -bxor 0 1
使用不支持的 Filter 参数将导致错误:
如果 Windows PowerShell 提供程序未声明 Filter 功能,则该提供程序将不支持任何 cmdlet 的 Filter 参数。此前,如果将 Filter 参数用于不支持该参数的提供程序,则将忽略该参数但不显示错误。但是现在,如果将 Filter 参数用于不支持该参数的提供程序,则 Windows PowerShell 将生成 ProviderInvocationException 并显示错误消息。
对 Windows PowerShell 安装程序进行了更改:
现在,Update.exe 安装技术用于在 Windows XP 和 Windows 2003 上安装 Windows PowerShell。在 Windows Vista 上,则使用基于组件的安装技术 (CBS),不再使用 Update.exe-setup。
Windows PowerShell 安装文件夹的位置不再可配置。对于 x86 系统,安装程序将 Windows PowerShell 安装在 %systemroot%\\system32\\WindowsPowerShell\\V1.0 目录下。
Windows PowerShell 中将不再包含为 Windows PowerShell 添加“启用脚本执行”组策略的 ADM 文件。该文件将其单独提供。
对 x64 软件包安装程序进行了更改:
默认情况下,x64 软件包可安装 Windows PowerShell 的 32 位和 64 位版本。 64 位安装文件夹:%systemroot%\\system32\\WindowsPowerShell\\V1.0 32 位安装文件夹:%systemroot%\\Syswow64\\WindowsPowerShell\\V1.0
访问具有特殊字符名称的文件和目录:
Windows PowerShell 中新增了两项功能,使得引用名称中包含转义符 (`) 或通配符的目录和文件变得更为方便。
-- 如果倒引号 (`) 出现在单引号中,则 Windows PowerShell 不会将其解释为转义符。这适用于所有用单引号括起的字符串,包括脚本中的字符串。
示例:
PS> dir oct`06
Get-ChildItem : 路径中存在非法字符。 所在行:1 字符:4 + dir <<<< oct`06
Get-ChildItem : 找不到路径“C:\\PS\\oct 6”,因为该路径不存在。 所在行:1 字符:4 + dir <<<< oct`06 PS> dir 'oct`06'
-- 已向所有支持通配符扩展的核心 cmdlet 添加“LiteralPath”参数。LiteralPath 可阻止 Windows PowerShell 解析路径中的通配符模式。
若要访问包含转义符 (`) 和通配符的路径,请同时使用 LiteralPath 参数和单引号。 例如:
PS > get-content -LiteralPath 'te[s`t].txt'
改进了 Cmdlet 帮助内容的显示方式:
向 Get-Help 中添加了三个新视图: 默认视图:
示例:PS >get-help get-item 详细视图:
示例:PS >get-help get-item -detailed 完整视图:
示例:PS >get-help get-item -full
对 Get-WMIObject cmdlet 的几项改进:
- 将 WMI 方法作为 WMI Windows PowerShell 适配器的一部分公开。
- 将新的参数集添加到 Get-WmiObject 中,其中包括获取 WQL 查询的 Query 参数。 - 将可接受字符串(例如 WMI PATH)的 [WMI] 添加为内部类型。 – 现在,可以通过以下命令来实例化 WMI 实例:
PS >[WMI]'\\\\JPSLAP04\\root\\cimv2:Win32_Process.Handle=\"0\"' 该命令相当于以下命令:
PS >new-object system.management.managementobject '\\\\JPSLAP04\\root\\cimv2:Win32_Process.Handle=\"0\"'
- 设计了一种新的方法来处理作为 STRINGS 的 CIMDATETIMES。这是通过为 System.Management.ManagementObject 创建一个执行 ConvertToDateTime() 和 ConvertFromDateTime() 的 SCRIPT 方法来实现的。 示例:
PS >$wmiclass = [wmiclass]\"win32_processstartup\" PS >$dmtfDate = \"20020408141835.999999-420\"
PS >$dateTime = $wmiclass.ConvertToDateTime($dmtfDate) PS >$result = $wmiclass.ConvertFromDateTime($dateTime)
首次启动外壳程序时不再显示安全警告:
在用户第一次启动 Windows PowerShell 时,不再提示他们选择信任 Microsoft 签名证书。包含于 Windows PowerShell 中的 PS1XML 文件已经过签名,并且是可信的,即使在 Windows PowerShell 执行策略设置为“Restricted”时也是如此。
其他更改:
- 现在,$host.version 将报告实际的主机版本 1.0.0.0,而不是程序集版本。 - 向 ConvertTo-SecureString cmdlet 添加了 Force 参数。 - Tab 补齐功能现适用于属性引用: PS >$a = get-process outlook
PS >$a.Mai 因篇幅问题不能全部显示,请点此查看更多更全内容