如下说明是翻译
:是来自
Windows PowerShell
官方博客,因为本人水平有限,文章中存在各种不足之处,请您及时指出。转载请注明链接地址,原文地址:
http://blogs.msdn.com/powershell/archive/2007/11/06/what-s-new-in-ctp-of-powershell-2-0.aspx
译者
: Edengundam(
马涛
)
PowerShell 2.0 CTP
版的新特性
随着你开始使用
Windows PowerShell 2.0
的
CTP
版本
,最好尽快告诉您
CTP
版本中究竟有哪些新的功能。
第一件要知道的事情就是此版本兼容并替换
Windows PowerShell 1.0
。要安装
CTP
版本,你必须先卸载
PowerShell 1.0
。
卸载
Windows PowerShell 1.0
·
Windows XP-SP2
和
Windows Server 2003:
在添加
/
移除
程序中,选择显示更新。删除适用于您系统的
PowerShell
更新
: KB926139 (en-us),KB926140 (localized), KB926141 (MUI pack)
·
Windows Vista:
控制面板
->
程序和功能
->
安装更新。卸载
PowerShell
更新
: KB928439
·
Windows Server 2008:
从
Windows Server 2008
的
Beta3
起,
PowerShell 1.0
作为内置可选组建。如果你激活了
PowerShell 1.0
,在你安装
PowerShell V2 CTP
之前必须关闭此特性。启动
Server Manager
选择删除
Features
的选项。从列表中选择
PowerShell
,禁用此特性。
相对
Windows PowerShell 1.0
的重大变化
·
位于
HKLM:/SOFTWARE/Microsoft/PowerShell/1/PowerShellEngine
的
PowerShellEngine
键值变更为
2.0
·
新添加了
Data
和
Cmdlet
语言关键字
.
这意味着,“
data
”和“
cmdlet
”都会被解释为语言的关键字,这可能导致分析错误。
·
改变了参数分隔符的行为。在
PowerShell 1.0
中,
$a.method(,1)
被当成以
1
个元素数组作为参数,条用方法。然而
$a.method(1,2)
作为分析错误。在
PowerShell 2.0
中,这两种语法都被当作分析错误。
·
新添加了
Cmdlet
和变量
(
后面列出
)
。这些可能和已经存在的脚本产生冲突。
1.
PowerShell
远程控制
Windows PowerShell 2.0
提供了远程执行
Cmdlet
和脚本的支持。
PowerShell
远程控制允许从单一客户端来管理多个远程计算机。要使用
PowerShell 2.0
远程管理计算机,需要在每台参与操作的计算机上安装
PowerShell 2.0
;包括客户端计算机和被管理的计算机。
更多信息
:
·
get-help About_Remoting
·
get-help Invoke-Expression
Enable Remoting:
PowerShell
远程控制特性依赖
Windows Remote Management(WS-Man)
技术,为了能够远程操作,请确保安装了
WS-Man Winrm
服务并启动了此服务。要验证
Winrm
服务是否正在运行,照下面的方法去做:
PS> get-service winrm
Setup places a PowerShell script (Configure-Wsman.ps1) in $pshome folder that configures WS-Man settings.
要为
PowerShell
远程控制特性配置
WS-Man
服务,请运行位于
PowerShell
目录中的
configure-WSMan.ps1
脚本
(Windows Server 2008
或者
Windows Vista SP1
下,使用权限提升来运行
).
此脚本不会启动或停止
WinRM
服务。
& $pshome/Configure-Wsman.ps1
已知问题
:
·
要使用远程的
Cmdlet
和特性,
PowerShell
必须以
administrator/elevated
执行。
·
PowerShell 2.0
远程特性不能在
Windows Vista RTM
版上正常工作。你需要安装
Windows
Vista Service Pack 1 (SP1)
测试版,才能使用
PowerShell
远程特性。
2.
后台作业
Windows PowerShell 2.0
引入了后台作业
(PsJob)
的概念。一个后台作业不与控制台进行任何交互,异步地(在后台)运行一个命令或者表达式。命令提示符将会立即返回,您可以在方便时查看作业的执行结果。您可以在本地或远程计算机上运行后台作业。
更多信息
:
·
get-help About_PSJob
3.
ScriptCmdlets
ScriptCmdlets
允许您使用
PowerShell
脚本来编写
cmdlet
,而不需要使用编译的
C#
和
VB.NET
代码。
已知问题
:
此版本中,不支持下面的
cmdlet
参数
:
·
Parameter sets
·
Help
更多信息
:
·
get-help about_scriptcmdletparameters
·
get-help about_scriptcmdletmethods
·
get-help about_scriptcmdletattributes
4.
可步进式管道线(
steppable pipeline
)
此特性使您可以将脚本块转化为一个可步进式管道线,接下来通过在管道线上独立调用
Begin()
、
Process()
和
End()
来步进式的控制活动的执行序列。
5.
数据语言
数据语言是
PowerShell
语言的一个子集,它允许更好的进行脚本的共享。它还允许将数据从你脚本的代码中分离出来。
更多信息
:
·
get-help about_data_section
·
get-help ConvertFrom-StringData
6.
脚本国际化
此新特性允许
PowerShell
脚本作者编写能够被翻译为
Windows
支持的各种语言的脚本。
你可以将字符串资源从其他代码分离出来,使用新的数据语言特性
(
如上
)
。使用最新的
Import-LocalizedData cmdlet
,你可以指示
PowerShell
检查操作系统的
UI
区域设置,并在适当的区域设置目录中
(
例如
en-US
或者
de-DE)
检查转换数据文件
(translated data file
,以
.psd1
结尾
)
,并使用转换字符串替换原始字符串。
更多信息
:
·
get-help about_script_internationalization
·
get-help Import-LocalizedData
·
get-help ConvertFrom-StringData
·
get-help about_data_section
7.
脚本调试
添加了新的调试特性:你现在可以在行、列、函数、变量和命令上设置断点。你还可以指定,当触发断点时的行为。还支持进入、跳过或者退出函数调用。你还可以简单的显示调用栈
更多信息
:
·
get-help about_debugger
8.
新的运算符
:
·
Splatting
运算符
(@)
:
PowerShell V2
支持
splatting
运算符
(@)
同时传递一个集合的参数
·
-Split
:
-split
运算符允许用户根据用户指定的分隔符,将字符串分为一个数组的字串。
·
–Join
:
-join
运算符对字符串数组中多个字符串,使用用户指定分隔符将它们连接成为一个单独的字符串。
9.
新的变量
:
·
$commandLineParameters
:保存命令行和管道中的参数。
Cmdlets
可以通过
MyInvocation.CommandLineParameters
访问。
·
$PSVersionTable:
通过此变量查看
PowerShell
版本信息
·
$Culture:
通过此变量查看当前的区域设置信息
·
$UICulture:
通过此变量查看当前
UI
的区域设置信息
10.
新的
Cmdlet:
如下
24 cmdlet
是新添加到
PowerShell 2.0
中的。查看帮助来了解如何使用这些
Cmdlet
的细节
.
Get-PSBreakpoint
|
Get-PSCallStack
|
Remove-PSJob
|
New-PSBreakpoint
|
ConvertFrom-StringData
|
Start-PSJob
|
Disable-PSBreakpoint
|
Import-LocalizedData
|
Stop-PSJob
|
Enable-PSBreakpoint
|
Get-Runspace
|
Wait-PSJob
|
Remove-PSBreakpoint
|
New-Runspace
|
Invoke-WMIMethod
|
Step-Into
|
Remove-Runspace
|
Remove-WMIObject
|
Step-Out
|
Get-PsJob
|
Set-WMIInstance
|
Step-Over
|
Receive-PSJob
|
Out-GridView
|
11.
受限运行空间
(Constrained Runspaces)
:
受限运行空间允许创建具有约束集合的
PowerShell
运行空间。在使用受限运行空间时,这些约束包括:限制命令、脚本和语言元素访问和执行的限制能力。
未完待续