版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5. Win dows Powershell Cmdlets介绍在使用Powershell的时候,你可以直接的在shell的命令行里面输入命令,你也可以直接把相同的命令保存为一个文本文件。这个脚本文件被称为cmdlet,可以在Powershell中直接调用。和其他的脚本语言一样,用记事本来创建和编写脚本足够够用的。在Powershell中,你只需要把cmdlet保存为PS1格式的文件 即可。写脚本文件有两个额外的好处, 它可以对你的 命令归档,这样你就不会忘掉;另外cmdlet文件也见证了你使用 Powershell所取得的成果。Powershell Cmdlets(读 comma nd le
2、ts)一般来说,cmdlet有两层意思;第一层意思:它是 Powershell脚本的同义词,一个 Powershell Cmdlets 是一系列的命令组成,它可能多过一行,并且保存在PS1格式的文本文件中。这,就是我们今天需要讲的Cmdlets第二层意思:在微软的文档中,cmdlet意思就是Powershell中的内置命令,它具有简单的 动-名词格式,这类 cmdlet 一般都有别名(alias), 比如get-member就有个别名是 GM cmdlets的优势如果你曾初步的接触过Powershell的命令行,你可能很希望把你的代码保存为自己的Cmdlet文件。这样你以后就可以直接使用,并且
3、如果代码变得越来越复杂,那这种方法就变得更加实用了。我的做法是,一旦某个cmdlet能够满足基本目的,我就把他复制下来“另存为”,这样以后的开发也可以用得到。 我的经验是,在调试的时候,十有七八都会出错,但是由于我有“复 件” cmdlet,我可以马上调整过来。我希望你对Cmdlet有了个初步的了解。尽量完善你的Powershell命令,一旦完成后就把他 保存为文本文件,以后再调用。这种办法能够帮你节省输入代码和命令行的时间。另外,你可以直接的通过文件名来调用,比如,.'memory.这样,使用Powershell的cmdlet已经成为我编写脚本的重要方法之一。三步快速上手Powers
4、hell cmdlets创建 Windows Powershell Cmdlets很简单直接,也相当有价值。如果想让你的脚本执行顺利,你需要遵守三个重要步骤1. 1.出于安全考虑,操作系统默认不会自动执行Powershell脚本,因此,我们需要调整Executi on Policy来确保Powershell脚本运行。最佳方法是使用下列命令:set-Execution Policy RemoteSig ned.当然修改对应的注册表也可以1. 2.确保你的文件后扩展是.ps12. 3.从Powershell命令行调用该文件的办法是:输入完整路径D:scriptfilename3. 如果你已经在 D
5、:scripts,只要输入.filename# 提示1:如何快速调用子目录的cmdlet。比如D:scripts 是我的主脚本目录,我把cmdlets保存在里面的子目录,比如D:scriptswmi32proc.ps1。而我现在的Powershell命令行就在 D:scripts 目录下,这样我只要在命令行输入.wmi32proc 即可*提示2:在调用cmdlet文件时候,没有必要把文件扩展名.ps1也加上去,文件名足够了。*提示3: cmdlets脚本只能在Powershell命令行中使用.才能够调用,这种方法尽管看起来很麻烦,微软是出于安全考虑的才这样做。黑客,钓鱼者可能会诱使人们去执行
6、恶意的Powershell代码,但是如果直接双击的话并不会执行-除非你使用“ . ”方法来执行详细介绍 Powershell Cmdlets下面的介绍和上面差不多,但我们将一步一步来演示1) Powershell 的 ExecutionPolicy 命令我偏向这种方法,这样可以通过Powershell的命令来控制脚本的执行策略,在Powershell命令行中输入下面代码# PowerShellset-Execution Policyget-Execution Policy# Now try:set-Execution Policy -?# Here is the crucial comma n
7、d:set-Execution Policy RemoteSig ned简单来说,你可以直接输入set-execution policy remotedsig ned即可1b) 更改对应Powershell注册表出于安全因素考虑,在默认设置中,微软阻止Powershell直接运行cmdlets脚本。因此我们需要更改特定的注册表键值来允许cmdlets的执行。如果你直接运行 cmdlet脚本,你会看到如下的错误信息:" The execution of scripts is disabled on this system"为此,我们需要更改注册表REG_SZ_Executio
8、nPolicy 的键值,将其更改为RemoteSigned。还有另外两种选择Un restricted 和Allsig ned. 但是,RemoteSig ned是最推荐的,因为它允许你运行本地的脚本,而会阻止其他人从另外机器上(比如互联网)攻击你。请浏览到下面的键值去更改HKLMSOFTWAREMicrosoftPowerShell1ShellldsMicrosoft.PowerShell把键值更改为REG_SZ Execution Policy RemoteSig ned2a)文件名和.ps1扩展名当你使用记事本来创建 Powershell Cmdlet时候,文件名必须是以.ps1作为扩展
9、名的,如runnin gprocess.ps1.有一种办法把你的 Powershell命令保存到记事本是,通过菜单,选择另存,选择所有文件,runnin gprocess.ps1.为了确认,你可以把"”加入进去,如"Runnin gProcess.ps1 ",请确认文件不是RunningProcess.txt 或 RunningProcess.ps1.txt在你filename.ps1 的内容就是你在 Powershell命令行里面输入的命令。你可以尝试输入 get-process在你的测试ps1文件中,然后再执行(可能看起来太简单,但是我的方法就是保持事件简单而
10、成功)下面是一些高级演示,只是让你感觉到cmdlet的强大# RunningServices.ps1PowerShell Cmdlet# This script gen eratesa report about Running Services# Guy ThomasSeptember 2007# Version 1.5""# Insert a blank line"Reportgen eratedat " + (get-date)""# Insert blank line"Services that are running
11、"get-service | where-object $_.status -eq "Running"学习要点«提示1实例中最关键的命令就是get-service提示2:让我们看看 Where这个参数,$_.是一个需要介绍的特殊变量。在当前的管道中,美元符号$表明我们正在使用变量,下划线符号表明变量值在后面。进程对象有很多属性,我们这边使用的是.status, -eq意思是左边的值等于右边的值。这个句子也就是,我们在找这样的值,值的条件是status是Running的。« 除-eq夕卜,我们还有比较符,-match,-contain*提示2b:
12、调用文件*设想:你把cmdlets脚本文件保存在一个目录里,文件是为 runningservices.ps1(等于以及包含)目录是 D: scripts,在这个例子里,当通过调用文件名来执行cmdlet,你并不需要加入.ps1扩展名。但是你还是需要注意路径,你需要在命令行里面输入完整路径,如D:scriptsru nnin gservices.这样可以执行。在成功的基础上,我们再进一步。通过下面方法在 Powershell里面定位到D:Scripts 目录,set-locati ond:scripts现在你就可以简单输入命令.runnin gservices, 而不用输入d:scriptsr
13、unnin gservices在输入的时候,你还可以考虑使用Tap键的自动完成功能来填写路径以及文件名下面还有些Powershell Cmdlets 的例子在Powershell中的复制粘贴如果,不管什么原因,你不想使用cmdlet 了。我们也可以执行它,把命令从记事本里面复制出来,粘贴到 Powershell的命令行中。复制和粘贴办法复制代码到内存启动 Windows Powershell编辑-粘贴按“回车”来执行代码你可以参考下面的截图总结:Windows Powershell 的 Cmdlets当你执行Powershell命令的时候,你可以直接在Powershell命令行中输入相关命令,或者 你可以创
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年创业投资合作协议书范本3篇
- 2024年版专业消防工程承揽协议细则版B版
- 2024年木地板电商平台入驻合作协议范本3篇
- 2024年儿童看护机构合作协议3篇
- 2024女方背叛婚姻责任承担与离婚财产分割协议3篇
- 2024年度外贸企业外汇借款合同范本:跨境电商融资合同编制规范3篇
- 2024年桥梁建设施工合同
- 春季室外课程设计
- 2024年版权质押合同:电影作品版权抵押融资
- 抖音营销效果评估合同
- 2024年就业保障型定向委培合同3篇
- 2024预防流感课件完整版
- 2024沪粤版八年级上册物理期末复习全册知识点考点提纲
- 人教版2024-2025学年第一学期八年级物理期末综合复习练习卷(含答案)
- 残联内部审计计划方案
- 2024-2030年中国漫画行业发展趋势与投资战略研究研究报告
- 2024年大学生安全知识竞赛题库及答案(共190题)
- 吊装作业施工方案
- 智能工厂梯度培育行动实施方案
- 科学认识天气智慧树知到期末考试答案2024年
- 2023-2024学年贵州省贵阳市八年级(上)期末数学试卷
评论
0/150
提交评论