PowerShell是什么?

Windows PowerShell 是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。

解读:

1、什么是交互式提示?

答:交互式提示就像打开一个cmd窗口,在里面执行一个ping命令一样,它会动态的输入结果。也可以像执行ftp命令一样,有一个上下文环境(Context),可以交互。

2、什么是脚本环境?

答:就像写VBScript脚本一样,以文件形式把PowerShell的程序语句写下来,然后利用PowerShell的脚本环境来执行整个脚本文件。顺便说一句,批处理也可以理解为一个脚本环境。PowerShell脚本文件的扩展名为.ps1,语言支持用于循环、条件、流控制和变量赋值的语言结构。

与接受和返回文本的大多数外壳程序不同,Windows PowerShell 是在 .NET 公共语言运行时 (CLR) 和 .NET Framework 的基础上构建的,它接受和返回 .NET 对象。环境中的这一根本更改带来了管理和配置 Windows 的全新工具和方法。

解读:

这个很有意思,一个对象化的脚本环境不奇怪,一个对象化的交互式环境确实是一个全新的理念。

Windows PowerShell 引入了 cmdlet(读作“command-let”)的概念,这是内置到外壳程序中的一个简单的单一功能命令行工具。可以分别使用每个 cmdlet,但是组合使用这些简单的工具执行复杂任务时才发挥其作用。Windows PowerShell 包括一百多个基本的核心 cmdlet,您可以编写自己的 cmdlet 并与其他用户共享它们。

解读:

1、这应该像command自带dir、cd、copy、del这些内置命令差不多,只不过它是可以模块化添加、删除的。PowerShell自带了大量cmdlet,也可以自己编写、分发。
2、可以通过其名称格式识别 cmdlet -- 由短划线 (-) 分隔的动词和名词,如 Get-Help、Get-Process 和 Start-Service。有Start-Service就有Stop-Service、Restart-Service,这里Windows系统不区分命令大小的一惯作风被得以体现。
3、每个cmdlet的作用都很简单,如“get”cmdlet 仅检索数据,“set”cmdlet 仅建立或更改数据,“format”cmdlet 仅设置数据格式,“out”cmdlet 仅将输出定向到指定的目标,所以应注意怎么组合使用。
4、每个 cmdlet 都具有一个帮助文件,可以通过键入以下内容访问它:get-help <cmdlet 名称> -detailed,如果只要查看简单的信息,就不要detailed这个参数,如果要查看更全面的技术信息,则需要把detailed更改为full。
也可以直接使用help <cmdlet 名称>,或者直接在使用 <cmdlet 名称> -? 。
get-help * 可以显示所有Powershell命令。get-help get-*可以显示get开头的命令。
试着完整的阅读get-help start-service -full,会对PowerShell有一个震撼的认识。
5、很多cmdlet有内置的别名,如Get-Service的别名就是gsv;
6、Get-Command,可以列出所有的cmdlet;

Windows PowerShell 为您提供了对计算机上文件系统的访问。此外,使用 Windows PowerShell 提供程序,还可以访问其他数据存储区,如注册表和数字签名证书存储区,与访问文件系统一样容易。

解读:

1、OK,它的强项在于文件系统、注册表、数字证书等?后面随着学习的深入,也会接触到它更多、更强大的功能。

可以在 Windows PowerShell 中运行 Windows 命令行程序,并可以在外壳程序中启动具有图形用户界面的 Windows 程序(如记事本和计算器)。还可以捕获程序生成的文本,并在外壳程序中使用该文本(与在 Cmd.exe 中很类似)。

解读:
1、在cmd.exe里面可以执行的外部命令,如net.exe、xcopy.exe、sc.exe、reg.exe等,均可以在PowerShell中正常使用;
2、cmd.exe本身也可以在PowerShell中使用;
3、cmd.exe自带的内置命令也可以使用,如dir c:;
4、运行services.msc一样可以打开服务面板;
5、也可以打开像notepad.exe这样的图形界面的Windwos程序。

(0)

相关推荐

  • Windows PowerShell 微软官方解释

    通过提供一百多种系统管理实用工具.一致的语法.及对普通管理数据更好地导航(如登记或 Windows Management Instrumentation (WMI)),Windows PowerShell 使 Windows 管理员提高了生产力.Windows PowerShell 还包括全面启动 Windows 系统自动化管理任务的脚本编写语言.Windows PowerShell 语言是直观的,并支持贵企业现有的脚本和命令行工具投入.Exchange Server 2007 和 System

  • 使用 powershell 创建虚拟机

    在进行与 azure 相关的自动化过程中,创建虚拟主机是避不开的操作.由于系统本身的复杂性,很难用一两条简单的命令完成虚拟主机的创建.所以专门写一篇文章来记录使用 PowerShell 在 azure 上创建虚拟主机(Ubuntu 服务器). 虚拟主机虚拟主机需要与其他的一些基础性组件关联在一起才能提供可用的服务,这些组件包括:网卡.public IP 地址.虚拟网络.网络安全组.存储等.下图包含了新建一个虚机所需要的其他组件: 也就是说在我们创建虚机的同时也要把这些组件一一的创建出来. 定义变

  • 如何防范PowerShell代码注入漏洞绕过受限语言模式

    导语:受限语言模式是缓解PowerShell攻击的一种方式,能够阻止执行任意未签名的代码. 介绍 受限语言模式是缓解PowerShell攻击的一种方式,能够阻止执行任意未签名的代码.当Device Guard或者AppLocker处于强制模式时,它是最实际有效的强制安全措施,因为未被策略允许的任何脚本或者模块都位于受限语言模式下,这严重限制了攻击者执行未签名的代码.通过限制语言模式限制了Add-Type的调用.限制Add-Type明显是考虑到了它能编译并加载任意的C#代码到你的运行空间中去. 但

  • 通过DNS TXT记录执行powershell

    0x00简介 DNS TXT记录一般用来记录某个主机名或者域名设置的说明,在这里可以填写任何东西,长度限制255.绝大多数的TXT记录是用来做SPF记录(反垃圾邮件).本篇文章主要介绍如何使用 nishang 通过创建TXT记录执行powershell脚本.当然,首先你要有一个域名. 0x01创建TXT记录 这里需要使用nishang中的一个脚本 OUT-DnsTxt . 1.常见命令 因为常见命令比较短,所以可以直接添加到TXT记录中,如下图: 现在查看一下TXT记录: 可以看到记录已经成功添

  • PowerShell 语音计算器实现代码

    带中文发音功能的计算器程序,支持鼠标和小键盘输入,支持多种数值转人民币 大写,如:123.4--->壹佰贰拾叁点肆圆. [程序界面抓图] 版本号 1.51 下载:/201710/tools/voice_calc_jb51.rar [本程序定位] 本程序定位为:语音+简单+常用+方便的+免费软件. 所以本程序并不打算提供语音开关功能.假如不需要语音功能,建议使用微软自带的计算器. [开发初衷] 带有语音的计算器软件大都收费或者是破解版,而我这个首先不收费, 其次开源,也就是说绝无后门,你还可以di

  • PowerShell脚本 随机密码生成器(ps随机密码生成器)

    脚本作用:产生随机密码.每密码字符个数,密码数量,存盘位置等可以自定义. 脚本用法: 脚本采用了硬编码,所以你需要打开脚本,修改如下变量: $生成密码总个数 = 1000 $每个密码位数 = 12 $存盘目录 = 'e:\脚本ps\log_ps\' $大文件所在盘符 = 'f:\' 并保存,然后运行脚本,脚本运行的较慢,可以缩小powershell窗口,n分钟后去[$存盘目录]收取生成的密码 文件[小写加数字加特殊符号密码.txt],[大小写加数字密码.txt],[小写加数字密码.txt]. 提

  • 原创powershell脚本小工具ctracert.ps1跟踪路由(win8以上系统)

    脚本名称:ctracert.ps1 软件名称:灰主牛 跟踪路由 归属地版 V1.0 脚本作用:1跟踪路由.2显示归属地.(注意不带显示时间功能) 脚本作者=我=powershell传教士 用法:ctracert.ps1 域名或ip 完成日期:2016-02-03 QQWry.NET.dll 是供.net调用纯真ip数据文件的dll库.来源于http://hjf1223.cnblogs.com/ ,感谢作者阿布(mvp) 2016-05-29 1.01版 发布 新增序号,超时的ip地址的处理,更新

  • powershell玩转SQL SERVER所有版本的方法

    微软发布了最新的powershell for sql server 2016命令行客户端库.文章介绍了与之相关的实用方法. powershell,sql server,2016,功能包,客户端,下载 powershell玩sql server就是比powershell玩mysql强! 问:那么问题来了,强在哪? 答:微软给我们做好了powershell+sqlserver的[客户端]库. 问:那么问题来了,客户端库在哪?叫什么名?哪里下载? 答: 在 叫做[sql server 20xx 功能包

  • powershell玩转sqlite数据库详细介绍

    脚本经常需要处理文本,有时候是行列整齐文本.那么powershell脚本处理行列文本有几种方法呢?一种是excel,另外的一些是?access?sqlite? sqlite是一个很小巧的,很方便嵌入到脚本语言中的,关系型数据库.它给powershell提供了一个免费的,处理行列整齐数据,存储数据,统计数据的极品神器. 只要你学会了它,上天入地皆可去得.而且以后学sql server,mysql,都类似,没有难度. 带着引号搜本文关键字: "^_^上天入地皆可去^_^" 发文初衷:世界上

  • PowerShell 未经数字签名 系统将不执行该脚本

    一句话解决方法: 设置一下可以运行未签名的脚本或者为你的脚本签名. set-executionpolicy Bypass PowerShell因为在此系统中禁止执行脚本的解决方法 http://www.jb51.net/article/95022.htm Powershell 脚本数字签名实现方法

  • Powershell 脚本数字签名实现方法

    脚本很容易被冒名顶替或者更改,因为它们是由纯文本构成的.数字签名为脚本提供了更高的安全性,因为它能确定脚本和脚本的编辑者的唯一性,并且不能被更改.作为脚本的发布者,你能确定你的脚本没有被恶意篡改.即使专家也无能为力,因为这种机制是基于复杂逻辑的.幸运的是,在实际应用中,你不需要深究这些细节,只需要掌握Powershell脚本签名的机制和过程. 准备一个合适的证书 因为不能使用传统的纸质签名给Powershell脚本进行签名,你需要另一个工具"证书".证书就像一把私有并且安全的钥匙.证书

随机推荐