Win7 PowerShell 使用教程
Windows PowerShell实用教程

Group-Object
这个命令可以收集对象,并通过特性进行分类。在本文例子中,特性就是 Extension,但 它可能是上面任何的属性。
Windows PowerShell 实用教程
Windows PowerShell 实用教程
Windows PowerShell 是微软交互式命令 shell 和脚本语言。Windows 管理员在 Windows XP、Windows Server 2003 和 Windows Vista 中都能用到 Windows PowerShell, Windows Server 2008 中也有它的身影。但是你如何从 Windows PowerShell 脚本开始呢?作为一本 Windows PowerShell 教程,本专题特为系统管理员汇集了所有新命令和脚本的建议。
为什么 Windows PowerShell 是独一无二的? 认识 Windows PowerShell 函数的参数 PowerShell 脚本新移动功能来袭
实用工具:Windows PowerShell
初步了解了 Windows PowerShell 的一些特性与功能,具体运用中,我们不可能将所以功 能一次性用到,那么,我们在不同的情况下要挑选哪些不同的功能呢?让我们根据专家经 验来挑选一些功能,让这个实用工具来为我们好好服务吧。
PowerShell
Get-childitem | group-object extension | select-object name
虽然这个代码在 VBScript 里并不复杂,但它在 PowerShell 里只需要一行代码。但是 PowerShell 是如何起作用的?下面我们分解下这个代码:
powershell常用指令

powershell常用指令1. `Get-ChildItem`:用于列出文件和文件夹。
2. `Copy-Item`:用于复制文件和文件夹。
3. `Move-Item`:用于移动文件和文件夹。
4. `Remove-Item`:用于删除文件和文件夹。
5. `New-Item`:用于创建文件和文件夹。
6. `Set-Location`:用于更改当前目录。
7. `Get-Location`:用于显示当前目录。
8. `CD`:是`Set-Location`的简写形式。
9. `ls`:是`Get-ChildItem`的简写形式。
10. `Copy`:是`Copy-Item`的简写形式。
11. `Move`:是`Move-Item`的简写形式。
12. `del`:是`Remove-Item`的简写形式。
13. `mkdir`:是`New-Item`的简写形式,用于创建文件夹。
14. `rmdir`:用于删除文件夹。
15. `Clear-Host`:用于清除控制台屏幕。
16. `Format-Table`:用于以表格形式显示数据。
17. `Sort-Object`:用于对对象进行排序。
18. `Select-Object`:用于选择对象的特定属性。
19. `Where-Object`:用于筛选对象。
20. `Foreach-Object`:用于对对象进行循环操作。
以上只是一些 PowerShell 常用指令的示例,还有许多其他指令可用于执行各种任务。
你可以使用`Get-Help`指令获取有关任何 PowerShell 指令的详细信息。
powershell语法手册

powershell语法手册一、简介PowerShell是微软开发的一款强大的命令行脚本和配置环境。
它使用一种基于任务的脚本语言,使得系统管理员能够更高效地管理Windows环境。
PowerShell提供了丰富的命令和功能,使得用户可以自动化许多常见的系统管理任务。
二、基本语法命令结构PowerShell命令的基本结构如下:powershellcommand -Argument $value例如,要获取当前日期,可以使用:powershellGet-Date变量在PowerShell中,变量使用 $ 符号开头。
例如:powershell$variable = "Hello, World!"控制结构If语句:powershellIf ($condition) {# commands}For循环:powershellFor ($i = 0; $i -lt 10; $i++) {# commands}While循环:powershellWhile ($condition) {# commands}函数定义函数的方式如下:powershellFunction functionname {param (param1, param2)# commands}参数 PowerShell命令通常支持参数。
例如,Get-Process 命令可以带一个 -Name 参数来指定要获取的进程的名称。
使用参数的方式如下:powershellGet-Process -Name "notepad"管道管道操作符 | 可以用来将一个命令的输出传递给另一个命令作为输入。
例如:powershellGet-Process | Where-Object { $_.CPU -gt 50 } | Select-Object Name, CPU这个命令会列出CPU使用率超过50%的进程的名称和CPU使用率。
powershell编程实例

powershell编程实例PowerShell 编程示例简介PowerShell 是一种基于对象和命令的脚本语言,用于在Windows 和其他平台上自动化任务和管理系统。
它提供了一个交互式命令行环境,以及用于编写脚本和函数的丰富工具集。
创建 PowerShell 脚本以下步骤说明了如何创建基本 PowerShell 脚本:1. 打开 PowerShell Integrated Scripting Environment (ISE)。
2. 在编辑器窗口中输入以下代码:```powershellWrite-Host "Hello, World!"```3. 单击 "文件" > "保存",将脚本另存为 ".ps1" 文件。
运行 PowerShell 脚本要运行 PowerShell 脚本,请执行以下步骤:1. 打开 PowerShell 控制台。
2. 导航到脚本所在的文件夹。
3. 键入以下命令,其中 "script.ps1" 是脚本的文件名: ```.\script.ps1```使用 PowerShell 命令PowerShell 提供了众多内置命令,用于执行各种任务。
以下是一些常用的命令:Get-Command - 获取可用命令列表Get-Service - 获取系统服务列表New-Item - 创建新项目(文件、文件夹等)Set-Location - 更改当前工作目录Write-Host - 在控制台中显示信息使用 PowerShell 脚本编写函数函数是可重用的代码块,可用于封装常见任务。
以下步骤说明了如何编写 PowerShell 函数:1. 在脚本的开头使用 "function" 关键字声明函数:```powershellfunction MyFunction {# 函数代码}```2. 在函数主体中放置要执行的代码。
Win7系统中查看Windows日志的方法查看Windows日志

Win7系统中查看Windows日志的方法查看Windows日志在Windows 7系统中,可以通过以下方法查看Windows日志:1.使用"事件查看器":- 点击"开始"菜单,输入"eventvwr"或"事件查看器",然后点击打开该程序。
- 在事件查看器窗口中,可以看到左侧面板中的"事件查看器(本地)",它列出了各个日志类别,例如"应用程序和服务日志"、"Windows日志"、"安全性日志"等。
-单击所需的日志类别,右侧窗口将显示相关的事件列表。
-可以使用筛选器来限定显示的事件范围,也可以通过右键单击事件来查看详细信息。
2.使用"命令提示符":- 点击"开始"菜单,输入"cmd"或"命令提示符",然后点击打开该程序。
-在命令提示符窗口中,输入以下命令来查看各种类型的日志:- `eventvwr.msc`:打开事件查看器。
- `eventvwr.msc /s`:打开事件查看器并连接到远程计算机。
- `eventvwr.msc /r`:打开事件查看器并连接到远程计算机的备份日志。
-执行上述命令后,将会打开事件查看器界面,操作方法同第一种方法。
3.使用"管理工具":-点击"开始"菜单,在"控制面板"中选择"管理工具"。
-在管理工具窗口中,可以看到各种可用的工具。
-双击"事件查看器"来打开事件查看器界面。
-操作方法同第一种方法。
4. 使用"Windows PowerShell":- 点击"开始"菜单,输入"powershell"或"Windows PowerShell",然后点击打开该程序。
PowerShell命令“Get-Service”的使用方法

PowerShell命令“Get-Service”的使用方法功能Get-Service是 PowerShell 中的一个命令行工具,用于查看和管理 Windows 服务。
它可以显示系统中所有服务的列表,以及每个服务的状态、启动类型和其他相关信息。
用法基本的命令格式如下:Get-Service [-Name] <String[]> [-ComputerName] <String[]> [-DisplayName]<String[]> [-ServiceName] <String[]> [<CommonParameters>]主要参数的作用-Name:指定要查询的服务名称。
-ComputerName:指定要查询的服务所在的主机名或 IP 地址。
-DisplayName:指定要查询的服务的显示名称。
-ServiceName:指定要查询的服务名称的空间分隔列表。
示例1. 获取所有服务的列表:Get-Service2. 获取名为“Network”的服务信息:Get-Service-Name Network3. 获取显示名称为“网络连接”的服务信息:Get-Service-DisplayName "网络连接"4. 获取远程计算机上的服务信息(假设你知道远程计算机的名称或IP地址):Get-Service-ComputerName "RemoteComputer"在使用这些示例时,请确保你正在查询的服务名称和显示名称是正确的。
如果你不确定服务的名称或显示名称,可以先使用Get-Service命令列出所有服务,然后从中找到所需的服务信息。
在操作远程计算机上的服务时,请确保你有足够的权限进行管理。
不正确的操作可能会导致系统不稳定或者服务中断。
PowerShell系列教程(二) for XP
今天Vista地带就讲一下Windows PowerShell内置命令,Windows PowerShell内置了丰富的系统管理命令。
如进程查看、服务列表、逻辑运算等功能,同时又支持cmd命令执行。
今天就的难度为LEVEL 100适合入门级,几乎看了亲身适用一次就可以完全掌握了。
(一)PowerShell 的启动方法:(安装了PowerShell 后启动方法)方法一. 在Windows 的开始菜单-“所有程序”-“Windows PowerShell 1.0”-“Windows PowerShell图标” 来启动。
方法二. 在“运行”对话框中输入powershell 回车即可运行。
方法三. 在“cmd命令提示符”中输入powershell 即可运行。
同时兼容telnet 和SSH 环境下执行。
(二)获取系统服务信息Windows Powershell内置命令近似自然语言,获取系统服务信息可以联想到get service,我们输入 get-service 命令即可,如图1所示:图1(三)获取系统进程信息同理我们仍然可以联想到GetProcess ,这里我们输入get-process即可查看当前的进程列表,如进程PID、句柄数等等信息如图2所示:图2(四)获取系统当前的日期和时间获取日期的自然语言GetDate ,这里我们输入get-date即可,如图3所示:图3(五)计算机的KB 、MB、GB、TB的字节数。
我们输入12MB可以得到12582912 (即12x1024x1024),输入15 KB可以得到15360,但是输入时一定要注意单位完成,是KB而不是K,如图4所示输入错误会提示“数字常量无效”所在位置:行字符等信息。
图4(五)逻辑运算真假异或等我们知道异或是真^真=假真^假=真假^真=真假^假=假,我们输入1 -xor 0 显示为真True 如图5所示:图5(六)获取系统BIOS 信息,这里我们是通过WMI 执行 WQL语言我们输入Get-WmiObject win32_bios (后面的参数win32_bios可以通过查询WMI Class 参考获取),如图6所示:SMBIOSBIOSVersion : P1.20Manufacturer : American Megatrends Inc.Name : Default System BIOSSerialNumber : To Be Filled By O.E.M.Version : A M I - 8000610。
向WIN7USB安装盘添加USB30驱动
向WIN7USB安装盘添加USB30驱动
WIN7原版映像中添加USB3.0驱动程序
最新发现用rufus制作的原版win7 USB启动盘,在一些板子上安装系统时,无法
识别到键盘鼠标,导致无法进行安装,百度了一下发现是原版的win7镜像没有集
成USB3.0的驱动,然后如今的电脑主板基本是XHCI主控(以前是EHCI的),
这一变动导致在安装Win7的过程中会出现USB接口失灵的状况,所以在安装时
无法识别键盘、鼠标、U盘。
这样我们就只能在映像文件中添加usb3.0驱动了。
百度后发现实现方法不少
1.使用UltraISO提取出镜像的boot.wim,install.wim,然后打开powershell,
用dism命令将驱动合入wim映像
2.使用dism++程序为映像添加驱动
3.使用intel官方工具win7-usb3.0-creator添加驱动(官网已下架)
4.使用技嘉WindowsImageTool(感觉最好用)
这里只介绍第四种,前面的方法请自行百度
usb3.0.1.png
2.制作WIN7 USB启动盘
usb3.0.2.png
3.使用管理员权限启动WindowsImageTool.exe,选择制作号的USB启动盘usb3.0.3.png
4.点击start开始制作,大概7分半钟制作完成
usb3.0.4.png
重新将U盘插入主板开机选择USB,进入WIN7安装界面后鼠标能够正常移动,
安装过程完美。
powershell命令大全
powershell命令大全Cmdlet返回指定的路径部分。
Test-Path Cmdlet确定路径的所有元素是否存在。
Get-Process Cmdlet获取在本地计算机上运行的进程。
Stop-Process Cmdlet停止一个或多个正在运行的进程。
Remove-ItemPropertyCmdlet从注册表项中删除属性及其值。
Rename-ItemPropertyCmdlet重命名项的属性。
Resolve-Path Cmdlet解析路径中的通配符并显示路径内容。
Get-Service Cmdlet获取本地计算机上的服务。
Stop-Service Cmdlet停止一个或多个正在运行的服务。
Start-Service Cmdlet启动一个或多个已停止的服务。
Suspend-Service Cmdlet挂起(暂停)一个或多个正在运行的服务。
Resume-Service Cmdlet恢复一项或多项挂起(暂停的)服务。
Restart-Service Cmdlet停止并接着启动一个或更多服务。
Set-Service Cmdlet更改服务的显示名称、说明或启动模式。
New-Service Cmdlet在注册表和服务数据库中为Windows 服务创建新项。
Set-Content Cmdlet在项中写入内容或用新内容替换其中的内容。
Set-ItemPropertyCmdlet设置位于指定位置的属性的值。
Get-AclCmdlet获取资源(例如文件或注册表项)的安全描述符。
Set-AclCmdlet更改指定资源(例如文件或注册表项)的安全描述符。
Get-PfxCertificateCmdlet获取计算机上.pfx证书文件的相关信息。
Get-Credential Cmdlet获取基于用户名和密码的凭据对象。
Get-ExecutionPolicyCmdlet获取外壳程序的当前执行策略。
Set-ExecutionPolicyCmdlet更改外壳程序执行策略的用户首选项。
win7内存诊断要多久
win7内存诊断要多久win7内存诊断要多久?现如今win7系统是市场上主流的操作系统。
很多用户虽然使用win7系统有段时间了,知道系统中自带有内存诊断工具,但在安装系统的时候很多用户并不曾留意过,导致需要时却不知道该如何才能打开内存诊断工具。
那么内存诊断工具到底在哪呢?下面店铺给大家分享下内存诊断工具的打开方法!win7内存诊断要多久?如果计算机的内存出现问题对系统的稳定性及正常使用会带来很大的问题,例如说蓝屏、死机、应用程序无法正常运行等,此时除了使用提换法来确定内存故障以外我们还可以通过WINDOWS 内存诊断工具来确定内存是否有问题.1、以管理员权限运行C:\WINDOWS\SYSTEM32目录下的MdSched.exe,根据需要点击立即重新启动并检查问题或瑕疵启动计算机时检查.2、重新启动后系统会自动进入内存检测界面,我们也可以通过F1设置检测项目也可以通过ESC来结束检测3、检测完毕后系统会告诉你是否检测到内存问题默认情况下,诊断工具会对您所选择的项目内容执行2次(两个轮回),但是您完全可以手动修改这个测试轮回的次数,范围是最大99次!使用TAB键定位到修改次数的地方键入需要的轮回次数。
我多麽希望能将此设置成任务计划来定期检测,但是似乎这个是不能的。
(原文是:I wish there was a way to set this when configuring the scheduled task, but I have yet to fine one.) 按下F10进行应用,诊断工具开始全自动运行直到轮回次数为您设定的数值后,系统将会重启,并带来如下提示:一般来说,根据你的内存大小和选择级别时间会有长有短,慢慢等待它过去吧,系统会自动重启的,不论是失败还是通过!重启后的样子,如图我的电脑内存是没有任何错误的!假设您等的不耐烦了,没有看到上面的画面,不用着急,我们可以进入事件查看器,来检索刚才时间段关于内存检查的信息报告!另外,如果您电脑上安装有PowerShell,您可执行如下命令就像这样:PS C:\> get-eventlog system -after "12/26/2011 12:00PM"-source Microsoft-Windows-MemoryDiagnostics-Results | Select EntryType,InstanceID,Message |format-listEntryType : InformationInstanceId : 1201Message : The Windows Memory Diagnostic tested the computer's memoryand detected no errorsEntryType : InformationInstanceId : 1101Message : The Windows Memory Diagnostic tested the computer's memoryand detected no errors以上就是win7旗舰版64位系统自带内存诊断工具的打开方法,一般情况下我们是用不到它,不过通过本篇教程,让大家知道该如何找到该工具,避免将来需要时不知道如何找寻,希望上面的方法对大家能够有所帮助!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Get-Command 用于检索所有可用 cmdlet 的列表。 Get-Help 用于显示有关 cmdlet 和概念的帮助信息。 Get-WMIObject 用于通过 WMI 来检索管理信息。 Get-EventLog 用于检索 Windows 事件日志。 Get-Process 用于检索单个活动进程或活动进程的列表。 Get-Service 用于检索 Windows 服务。 Get-Content 用于读入文本文件,将每行视为一个子对象。 Add-Content 用于将内容附加到文本文件。 Copy-Item 用于复制文件、文件夹和其他对象。 Get-Acl 用于检索访问控制列表 (ACL)。 要获得 PowerShell 自带的完整 cmdlet 列表,请访问 /en-us/library/ms714408.aspx。 所有 cmdlet 都以标准的“动词-名词”格式命名,这使其易于理解和记忆。例如,运行 Get-Command cmdlet 将会列出所有 可用的 cmdlet。对于管理员来说最有用的 cmdlet 也许就是 Get-WMIObject。若您想要查明 Server2 正在运行哪个服务包,只需 运行:
PowerShell 中的对象使用非常普遍,这全都仰仗于它的变量。而且,您不必预先声明变量,只需在变量名称前放置一个美元符号 ($) 就可以开始使用它们了。尽管不是必需的,但您也可以将所要放入变量的数据类型告知 PowerShell。这使得 PowerShell 可以将 变量映射到某一种极其强大的 .NET Framework 类型,从而为您提供诸多附加的内置功能。例如,假设您想要提示输入计算机名称并 从该计算机中检索服务包版本,但是您不知道键入的计算机名称是否会包括两个反斜线(如 \\Server2)。由于您知道 Get-WMIObject cmdlet 不需要反斜线,因此您可以将计算机名称保存到一个字符串变量中,然后使用 Replace 方法以空字符串替换反斜线,如下所 示:
PowerShell 强大的管理能力
在经历了漫长的等待之后,PowerShell 终于已蓄势待发。这意味着该是 Windows 管理员提起注意的时候了。PowerShell 提 供了也许是最简单且最灵活的方法来自动执行各种各样的管理任务,从而您的工作效率和效力都得到提高。
但更为重要的是,Microsoft 正在 PowerShell™ 之上构建 Exchange Server 2007 和 System Center 2007 之类产品的图形 管理控制台。这意味着您将能够从 PowerShell 内部执行几乎所有的管理任务。随着时间的推移,Microsoft 计划提高越来越多产品 的管理能力。因此,PowerShell 最终会成为用于管理几乎任何 Microsoft 服务器产品的第一个全能型工具。为了帮助您尽快入门, 我将在此新设的专栏中定期探讨 PowerShell。请务必要下载一份软件。
如果要重复使用此同一代码,只需将其制成函数即可。再次将以下内容直接键入到外壳中:
PS C:\> function Get-ServicePacks ($file) {
>> $names = get-content $file
>> foreach ($name in $names) {
3
>> $name >> gwmi win32_operatingsystem -prop servicepackmajorversion -comp $name >> } >> } >>
可读性与复用
然而,编写一行命令和参数无助于可读性。PowerShell 允许您将其拆分成更具可读性的形式,您甚至不用编写脚本就能将其直接 键入外壳。这就是它可能的形式:
PS C:\> $names = get-content "c:\computers.txt"
PS C:\> foreach ($name in $names) {
Cmd.exe 做到的事情,PowerShell 几乎都能做到。例如,您可以运行 ipconfig 并且会获得同样熟悉的输出。但是 PowerShell 会引入一整套新的命令,它们不是外部可执行文件。这些 cmdlet(发音为“command-let”)就内置于 PowerShell 之中(要了解 对 PowerShell 使用入门最有用的 cmdlet,请参见侧栏的“快速使用入门十大 Cmdlet”)。
强大而又简便的功能
顾名思义,PowerShell 是一个外壳,但与从 Windows NT® 3.1 起就出现的命令提示符 (Cmd.exe) 不同。Cmd.exe 不会消失, 但随着 PowerShell 的到来,几乎没有什么理由再继续使用 Cmd.exe。
PowerShell 在使用方面与 Cmd.exe 并无多大不同,只是 PowerShell 的功能更为强大。与 Cmd.exe 一样,PowerShell 具 有内置的脚本编写语言,不过它比 Cmd.exe 原始的批处理语言更为灵活。灵活性是如何体现的呢?有了 PowerShell,您可以使用仅 包括大约半打内置关键字的语言自动执行极其复杂的任务。
既然我已提到了脚本编写,那么现在我可能就应该简单提一下安全性。PowerShell 得益于 Microsoft 过去十多年在安全性方面 所取得的研究成果。默认情况下,PowerShell 不会运行脚本,只能交互式地用它来运行单个命令。如果您确实启用了脚本编写,则可 令 PowerShell 仅运行经过数字签名的脚本。这些均有助于确保 PowerShell 不会成为下一个 VBScript — 一种伟大的语言,但它 常被滥用来创建恶意脚本。VBScript 也不会退出历史舞台,但您可能会发现 PowerShell 对于许多不同的任务来说更易于使用。
如您所见,实际上并未做太多更改。只需将上一示例封入一个名为 Get-ServicePacks(与 PowerShell 的“动词-名词”命名惯 例保持一致)的函数即可。该函数现在具有一个名为 $file 的输入参数,该参数在 Get-Content cmdlet 中已被取代,这样便可在运 行函数时指定另一不同的文件。至此已定义了函数,运行它很简单,方法几乎与 cmdlet 一样,只需调用其名称并传递输入参数即可:
在此给出一项更难的任务。从文件中读取计算机名称的列表(每行一个名称)并显示每台计算机的服务包号。在 VBScript 中, 此项任务将需要一打或更多行的代码。在 Cmd.exe 中,您就得使用复杂的批处理文件。在 PowerShell 中,此项任务仅需一行:
Get-Content "c:\computers.txt" | foreach
为什么面向对象很重要
PowerShell 在 Microsoft® .NET Framework 上构建,所以它完全是面向对象的。通常,只有软件开发人员才会对此感到兴奋, 但是就本处的情况而言,面向对象可以为管理员节省大量的时间。这是因为管理员现在只需在基于文本的外壳内就能直接处理丰富的 对象。请看以下示例:
Get-WMIObject Win32_OperatingSystem –Property ServicePackMajorVersion
–Computer Server2
1
要使用 VBScript 来发现同一信息,就得编写几行代码。利用 cmdlet 可以处理服务(Start-Service、Stop-Service 等)、进 程(Stop-Process 等)、文件(例如,Rename-Item、Copy-Item、Remove-Item、Move-Item)等等。其中许多 cmdlet 甚至 还有快捷名称,称为别名。对于 Get-WMIObject 而言,您可以只键入 gwmi。运行 Get-Alias 将为您提供这些快捷名称的列表。
[string]$c = Read-Host "Enter computer name" $c = $c.Replace("\","")
Get-WMIObject Win32_OperatingSystem –Property ServicePackMajorVersion –Computer $c
>> $name
>> gwmi Win32_OperatingSystem -prop ServicePackMajorVersion -comp $name
>> }
>>
这一次,文件的内容存储在变量 $names 中。本例仍使用了 foreach,但它不是通过管道进行输入的,因此必须告知它需要循环 处理哪个对象集合以及将每个对象存储在哪个变量中,即 ($name in $names) 所指明的那一部分。其他方面大体相同,只要您一按 Enter,就会执行代码并显示结果。
花括号内实际是两个命令:第一个只是通过输出 $_ 的内容来显示当前的计算机名称。第二个是现已熟悉的 gwmi。结果将显示 文件中所列出的每台计算机的服务包版本列表。所有这些都是用相对简单的一行命令完成的。
请注意,–Property 和 –Computer 参数名已被缩写。PowerShell 仅需有足够的信息即可唯一地区分参数名。
图 1 使用简单的 Cmdlet 进行故障排除
管道(在美式键盘上,该竖线字符通常位于反斜线按键上)的使用是 PowerShell 具有如此能力不可或缺的组成部分。使用此字 符,可以将对象从一个 cmdlet 传递(或通过管道输送)给另一个,从而使每个 cmdlet 可以进一步提炼结果、设置结果的显示格式, 等等。之所以能够采用这种机制,是因为每个 cmdlet 均会返回一个或多个对象,而非纯文本,这就使得后续 cmdlet 可以处理完整 的对象。