PowerShell 入门

本文介绍了PowerShell的基础知识,包括其历史背景、安装方法、基本概念如cmdlet和管道的使用,以及一些实用的命令示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PowerShell 入门 

 

一 PowerShell 介绍
PowerShell即开发代号为Monad的命令行外壳和脚本系统管理工具。 PowerShell是微软公司于2006年第四季度正式发布的, 它的出现标志着 微软公司向服务器领域迈出了重要的一步, 拉近了与Unix、 Linux等操作系统的距离。 PowerShell的前身命名为Monad, 在2006年4月25日正式发布beta版时更名为PowerShell,PowerShell是一款基于对象的shell, 建立在.Net框架之上, 目前支持.Net Framework 2.0. 能够运行在Windows XP SP2, Windows Vista, Windows 2003操作系统上。 能够同时支持WMI, COM, ADO.NET, ADSI等已有的Windows管理模型。

二 下载和安装
目前最新版本为:Windows PowerShell 2.0 Community Technology Preview (CTP)
http://www.microsoft.com/downloads/details.aspx?familyid=60deac2b-975b-41e6-9fa0-c2fd6aa6bc89&displaylang=en
下载PowerShell_Setup_x86.msi 首先要下载补丁包WS-Management v1.1安装后,才能正常安装PowerShell_Setup_x86.msi。

并下载补丁包 WS-Management v1.1
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=845289ca-16cc-4c73-8934-dd46b5ed1d33

三 执行方式
可以利用以下三种方式执行 Windows PowerShell:
位于『开始 / 所有程序』的『Windows PowerShell』快捷方式。
在『开始 / 运行』的『运行』命令窗输入 powershell。
在任何『命令提示字符』窗口的命令提示符号输入 powershell。

四 概念介绍

1 cmdlet
cmdlet是 Windows PowerShell 的指令,这相当于 DOS 或其它 shell 的内建指令。
cmdlet 的发音方式是 command-let。cmdlet 名称的格式都是以连字符号隔开的一对动词和名词,并且通常都是单数名词。例如可以在线查询 cmdlet 用法的 cmdlet 即为 get-help。cmdlet 名称的动词部分大致有 get、set、add、remove 等等。
注:Windows PowerShell 的操作与 DOS 相同,输入的字母都不分大小写。

2 管道
管道操作符 (|)
PowerShell中的的管道与传统环境中的管道有所不同。
在传统环境中,一个命令的结果作为一个单一的结果集被返回,也就是说整个结果集必须在任何信息传递到管道之前生成;第一个结果与最后一个结果是同时返回的。
但是在PowerShell中,所有的结果是按照管道的顺序连续产生的。一旦一个命令返回一个
结果,它就会把它传递到管道上,而该结果就立刻可以被管道上的下一个命令使用。


五 使用技巧

1 管道
#此命令显示正在运行的服务
get-service | where-object {$_.Status -eq "Running"}
或者gsv | where{$_.status -eq 'running'}
#可以加Select-Object 过滤属性
Get-Service | Where-Object{$_.Status -eq 'Running'} | Select-Object Displayname

2 格式化语句的输出
#以表格输出当前进程
 Get-Process | Format-Table
#以列表输出当前进程
 Get-Process | Format-Table
#以宽表的格式显示当前进程
 Get-Process | Format-Wide
 
3 控制语句的输出
#输出到指定文件
  Get-Process powershell | Format-List | Out-File  -FilePath D:/guoqiang/ps.txt
#追加文本 
 Get-Process powershell | Format-List | Out-File  -FilePath D:/guoqiang/ps.txt -append 


4 排序语句的输出
#降序排序
 Get-ChildItem C:/windows | Where-Object{$_.Length -gt 50000} | Sort-Object -property Length -descending
 
5 如何处理PowerShell的长语句
当命令以管道符合(|)结尾时,将进入“多行模式”,出现多行提示符“>>”,直至执行两次回车键才返回正常的提示符;
例如:
PS C:/> Get-Service |
>> Where-Object{$_.status -eq 'running'} |
>> Select-Object displayname
>>

DisplayName
-----------
Windows Audio
Background Intelligent Transfer Service

如果不是以(|)结尾,会报错;则要加反勾号(`)结尾告诉PowerShell要延续到下一行。
PS C:/> Get-Service |
>> Where-Object{$_.status -eq 'running'}
>> | Select-Object name
>>
An empty pipe element is not permitted.
At line:3 char:2
+ | <<<<  Select-Object name
PS C:/> Get-Service |
>> Where-Object{$_.status -eq 'running'} `
>> | Select-Object name
>>

Name
----
AudioSrv
BITS

如果想手工终止一个语句,在结尾加上(;)即可;
 

六 常用命令
1  get-help
别名:help
功能:
可以在线查询所有的 Windows PowerShell 指令和说明文件。
举例:
#列出所有的主题,包括指令和概念。
get-help *
#列出所有的主题,包括指令和概念,而且显示满整个窗口就暂停。
get-help * | more
#列出所有别名 并输出到文件中
 Get-Help * | Select-Object Name,synopsis | Out-File -FilePath D:/guoqiang/alias.txt
 
2 Set-Location
别名:cd
功能:
举例:
PS C:/> Get-ChildItem C:/


3 Get-Alias
别名:gal
功能:
举例:
PS C:/> Get-Alias | Select-Object name,definition

4 Get-Command
别名:gcm
功能:获取命令清单
举例:
PS C:/> Get-Command Get*


5 Set-Content
别名:sc
功能:向文件中写入数据
举例:
PS C:/> Set-Content D:/guoqiang/test.txt -value "http://blog.youkuaiyun.com/guoqiang1983"


6 Get-Content
别名:gc
功能:从文件中读取内容
举例:
PS C:/> Get-Content D:/guoqiang/test.txt
http://blog.youkuaiyun.com/guoqiang1983
PS C:/>

7 Set-ExecutionPolicy
别名:
功能:设置PowerShell脚本运行功能
    * Restricted,默认设置,不允许运行任何脚本。
    * AllSigned,仅运行受信任脚本(稍后会详细介绍)。
    * RemoteSigned,运行本地脚本,不管这些脚本是否受信任;如果是从 Internet 下载的脚本,则必须是受信任的脚本才能够运行。
    * Unrestricted,允许运行所有脚本,甚至是不受信任的脚本。
举例:
PS C:/> Set-ExecutionPolicy RemoteSigned

8 Set-PSDebug
别名:
功能:设置调试条件
举例:
PS C:/> Set-PSDebug -step
PS C:/> Get-Process

Continue with this operation?
   1+  <<<< Get-Process
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

 

9 Get-Process
别名:
功能:查看进程
举例:
PS C:/> Get-Process

10 Get-EventLog
别名:
功能:获取日志记录
举例:
PS C:/> Get-EventLog -newest 10 -logname system

 
11 get-service
功能:取得本地计算机上的服务.
举例:
#此命令显示正在运行的服务
get-service | where-object {$_.Status -eq "Running"}


七 学习PowerShell资源
1 TechNet Magazine: Windows PowerShell
http://technet.microsoft.com/zh-cn/magazine/cc135920.aspx


 

Microsoft Windows PowerShell 是一种新的命令行外壳和脚本语言,用于进行系统治理和自动化。Windows PowerShell 建立在 .NET Framework 的基础上,IT 专业人员可通过命令或脚本来治理计算机,从而通过系统自动化来提高工作效率。 Windows PowerShell 包括: * 129 个命令行工具(称为“cmdlet”),用于执行常见系统治理任务,如治理服务、进程、事件日志、证书、注册表以及使用 Windows Management Instrumentation (WMI)。 * 采用标准命名约定和通用参数的命令行工具,易于把握和使用;以及用于对数据和对象进行排序、筛选以及格式设置的简便工具。 * 对现有脚本语言、现有命令行工具以及多种 Windows 版本的支持,其中包括 Windows XP、Windows Server 2003、Windows Vista 以及 Windows Server(代码名称为“Longhorn”)。 * 方便的功能,使用户能够浏览数据存储(如注册表和证书存储),就像面对文件系统一样。 * 用于治理位于不同存储中以及采用不同格式的 Windows 数据的标准实用程序,这些数据包括 Active Directory (ADSI)、Windows Management Instrumentation (WMI)、组件对象模型 (COM) 对象、ActiveX 数据对象 (ADO)、HTML 和 XML。 * 在命令行进行的高级表达式分析和 .NET 对象处理,其中包括对对象进行流水线处理以帮助提高 IT 专业人员的工作效率。 * 可扩展的接口,使独立软件供给商和企业开发人员能够构建自定义 cmdlet 以满足特有的应用程序和系统治理要求。 安装本更新程序后,可能需要重新启动计算机。我们根据 Windows Vista 许可条款向您提供本更新程序并授予您使用许可。
### 回答1: PowerShell是一种命令行工具和脚本语言,它可以帮助管理员自动化任务和管理Windows操作系统。它使用.NET框架,并且可以访问Windows管理接口(WMI)和其他系统管理API。要入门PowerShell,您需要学习基本语法和命令,了解如何使用PowerShell管理文件和文件夹,以及如何使用PowerShell管理Windows服务和进程。您还可以学习如何编写PowerShell脚本来自动化常见的管理任务。 ### 回答2: PowerShell是一个命令行界面和脚本语言,在Windows操作系统中提供了一种强大的管理员工具,它是Windows管理员最常使用的工具之一。PowerShell的目标是使管理员的工作更加轻松和自动化。本文将介绍PowerShell入门知识。 一、PowerShell的基础知识 PowerShell的基础命令是cmdlet(简单指令),它是PowerShell的核心对象之一。通过执行cmdlet,用户可以获取系统的信息、管理系统、创建对象以及执行操作等等。PowerShell的cmdlet是由系统提供的,也可以由用户自定义。PowerShell的文件扩展名是 .ps1,它是PowerShell脚本。 二、使用PowerShell实现各种操作 在使用PowerShell时,可以使用不同的命令来实现各种操作。以下是PowerShell的各种命令: 1. Get-Command:获取系统上可用的cmdlet和函数的信息。 2. Get-Help:获取有关某个cmdlet的详细信息和示例。 3. Get-Process:获取在计算机上正在运行的进程。 4. Get-Service:获取计算机上已安装的服务。 5. Set-Service:启动、停止或重启特定的服务。 6. Start-Process:启动一个新的进程。 7. Stop-Process:停止正在运行的进程。 8. Get-EventLog:获取Windows事件日志的信息。 9. Get-WMIObject:获取计算机上或远程计算机上的Windows管理信息。 三、PowerShell的常见用途 除了上面提到的操作之外,PowerShell可以用于以下任务: 1. PowerShell可以用于自动化任务,例如部署系统更新、测试软件等。 2. PowerShell可以用于管理系统,例如获取系统硬件、操作系统和应用程序的信息。 3. PowerShell可以用于执行诸如注册表修改、文件操作和网络配置等任务。 4. PowerShell可以对于需要定期复制的文件,创建一个自动任务程序,定时复制文件,也可以找到具体错误文件,准确判断故障原因。 5. PowerShell还可以将数据转换为CSV文件,使用SQL Server Analysis Services (SSAS) 或 Excel等工具进行数据分析。 四、如何学习PowerShell 如果你想学习PowerShell入门知识,你可以: 1. 下载和安装PowerShell。 2. 阅读PowerShell的帮助文件,包括Get-Help cmdlet命令的帮助信息。 3. 学习PowerShell的基本语法和命令,例如:cmdlet、管道、参数等。 4. 阅读PowerShell脚本,可以从中学习如何编写脚本以及如何使用cmdlet执行操作。 5. 看PowerShell的视频教程,例如PowerShell入门课程等。 总之,PowerShell是一个强大的管理工具,在Windows系统中有着广泛的应用。学习PowerShell需要一定的时间和耐心,但一旦掌握了PowerShell的基础知识,您就可以节省大量的时间和精力来管理系统和自动化任务。 ### 回答3: Powershell是一种面向对象的Shell和脚本语言,由微软公司开发推出,用于 windows 系统下的管理和自动化的任务。很多人认为,Powershell是一种强大的工具,提供了许多管理和脚本功能,能够很好地利用现有的技能和知识来实现更高效的管理和自动化任务。 设置Powershell 首次打开Powershell会话后,需要执行Set-ExecutionPolicy命令进行权限设置,以便启用Powershell脚本。在管理模式下,输入以下命令: Set-ExecutionPolicy Unrestricted 这个命令可以让你运行任何脚本。如果不想运行任何脚本,也可以: Set-ExecutionPolicy Restricted 但是,这样将会禁止任何脚本的执行。 完成这些设置后,你就可以使用Powershell进行管理和脚本编写了。 基础命令 Powershell有很多基础命令,这里只简单列举: 获取帮助:help 列出命令:get-command 执行命令:invoke-command 获取电脑信息:get-process 显示输出:write-output 变量:$variable,可以存储任何类型的数据。 学习Powershell的秘诀 要学习Powershell,需要: 了解基本的脚本语言结构。 熟悉Powershell自带的命令和别名。 使用在线学习资源,如微软官方文档和社区论坛。 实践编写脚本。 与其它Powershell爱好者进行交流。 总之,学习Powershell需要付出时间和精力,但这将会带来更高效的管理和自动化技能,让你在IT管理中受益匪浅。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值