PowerShell基本使用教程

一、说明

1.1 背景说明

个人对PowerShell也不是很熟悉,开始的时候就突然看到开始菜单中多了个叫PowerShell的文件夹,后来一点就看到某个教程视频说PowerShell很厉害但也没怎么听,再后来就看到kali也有了一些PowerShell的脚本这才意识到PowerShell应该确实有独到之处而且正在逐渐受到认可,不过我使用PowerShell是不久前网上看到篇文章说PowerShell可以算数所以常当个计算器使用。直到昨天看了《Windows PowerShell实战指南》才算有了比较完整的了解。

1.2 PowerShell是什么

很多人上来就什么基于.Net强无敌,首先作为用户我不关心你是什么技术,我首先想知道的是你提供的是什么东西、怎么用。

PowerShell,从名字可以知道,他首先是一个shell,shell的意思就是和Linux的bash等一样、和原来的cmd一样就是在里边敲命令(可执行文件)使用;

而Power就意味他是一个功能强大的shell,从面向用户而言,个人觉得其功能强大体现在以下几方面:

(1) 微软态度。微软是真正的在推行PowerShell,包括Office等更多自家软件,底层都是调用PowerShell来实现。

(2) 兼容性cmd。PowerShell包含原先cmd的所有命令,原先命令使用形式不变,在是在其基础上添加命令。

(3) 对标Linux。PowerShell使用了Linux Shell的思想,也就是所有的系统操作、配置,都可以在shell中敲写命令实现。

(4) 统一的命令格式和自包含的文档。基于前3点我们即可以说PowerShell已可与Linux Bash等一较高下,如果再加上后发优势那就可以让人相信PowerShell可以成功。对于bash等shell你觉得最大的缺点是什么?从我角度而言我觉得是成本很高,最开始是我不知道用什么命令不太记得使用什么命令我需要百度一下,二是我经常忘记命令参数格式怎么写要在良莠不齐的网上百度半天(man手册?对不起我真的经常没看懂,我博客之前写了不少关于shell命令的文章就是备忘用,网上那么多关于shell命令的文章也说明不是因为我特别蠢)。而这就是PowerShell的两个优点:第一点是PowerShell所有命令使用统一的cmdlet命令格式(也就是“动词-名词”的格式,比如get-process)会使人很容易记住;第二点这里所谓自包含是指你要干一件事你可以逐步找到要做的事所需的所有命令,即便你记不得命令你也可以很容易找到,你找到命令看文档就很容易知道怎么使用。

当然powershell很好但也有着其劣势:

(1)Linux和Windows系统本身定位的差异。Linux的免费稳定使其牢牢占据了服务器领域,Linux Shell命令是没有很多统一格式的因此工程师们要费很大的劲去学习,而当Linux占据工程师的大部分精力并塑造完他们的习惯后,工程师们也许并没有那么多精神和动力去学powershell。

(2)来自Windows GUI的竞争。Windows上命令能干的事GUI也都能干也许效率慢一些但普通用户可不想去黑漆漆的界面敲感觉不受控制的命令。

Linux占据了服务器工程师的日常,而Windows自身强大的GUI对普通用户有天然的亲和力,所以powershell能期望的目标用户是谁呢,Windows服务器运维工程师好像没见过专门设有这职位。

二、PowerShell使用

下边我们将假设我们对powershell一无所知,通过杀除一个notepad进程的操作过程,来看一下什么叫powershell的“统一的命令格式和自包含的文档”。

我这里并不介绍一堆命令----命令是介绍不过来的我这里是win7到了win10你会看到多出一倍不止的命令,以后还会更多----而是介绍powershell的使用思路,其他工作都可借助类似的思路来进行。

2.1 启动PowerShell

方法一: 直接在cmd中执行powershell,切换为powershell

方法二: 开始菜单中输入powershell启动powershell

方法三: 开始菜单----附件----powershell启动

带x86的是32位的,不带的是64位的;带ies的是简单的ide

2.2 使用powershell

powershell启动后界面如下

2.2.1 get-help查看帮助

我们一无所知,所以我们输入help试一下,很好,powershell确实支持help

(不过我们前边说过powershell命令是cmdlet格式,help也使用cmdlet格式,help只是get-help的一个别名)

2.2.2 get-command查看有哪些命令

在确定powershell支持get-help之后,首先我们需要知道powershell支持哪些命令,在上图get-help中可以看到可以使用get-command查看powershell支持的命令

CommandType列,表示命令类型,Alias是别名、Cmdlet是powershell格式的命令、Function是函数

Name列,就是命令

Definition列,命令功能的简单描述

2.2.3 get-command缩小范围

上面的命令太多了,我们需要缩小范围以确定类似ps功能的命令在powershell中是什么(当然我们说过powershell兼容cmd所以可以直接用ps,但这不是我们这里想要的)

查看信息都是get-开头,所以我们猜测查看进程的命令也以get-开头,执行get-command get-*试一下

结果如下图所示,列出了所有get开头的命令,其中我们看到有一个叫get-process的命令,一看就是获取进程信息的

2.2.4 get-process查找进程

我们将命令锁定在了get-process但是我们不知道这个命令怎么用,2.2.1中说可以通过get-help command的形式查看帮助,我们也试一下

可以看到所有选项都是带中括号的,所以直接执行get-process就可以了

但是可以猜测,没有任何过滤条件返回的肯定是所有进程列表这需要过滤,可以看到-name参数可以过滤进程名,为保险起见我们还加上*号通配符

整个要执行的命令就是:get-process -name *notepad*

2.2.5 stop-process杀除进程

第一个思路是:在get-help get-process中已看到相关链接中有stop-process,这大概率是杀除进程的命令

第二个思路是:获取进程是get-process,那么杀除进程也大概率是xxx-process

执行:get-command *process

可以看到就5个命令,而其中只有stop-process比较像,一样使用get-help来查看帮助顺便确认是不是

显而易见确实是,而且杀除命令就是:stop-process -id pid

以上就是PowerShell的基本使用的详细内容,更多关于PowerShell使用的资料请关注我们其它相关文章!

(0)

相关推荐

  • 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脚本 随机密码生成器(ps随机密码生成器)

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

  • PowerShell中Job相关命令及并行执行任务详解

    前言 在 PowerShell 中可以轻松的执行后台任务并且让多个后台任务并行执行.本文介绍 PowerShell 中 Job 相关的一些命令,并通过 demo 演示如何在后台同时执行多个任务.下面话不多说了,来一起看看详细的介绍吧. PowerShell 中执行后台任务的模式 下图描述了在 PowerShell 中执行后台任务的进程模型(此图来自互联网): 首先我们需要一个 PowerShell 进程执行与用户交互的命令,比如执行 Start-Job 命令运行一个后台任务.每一个这样的后台任务

  • PowerShell 语音计算器实现代码

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

  • 通过DNS TXT记录执行powershell

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

  • 如何利用PowerShell监控Win-Server性能详解

    前言 Q:如何系统层面的去监控一下Windows Server? A:额--一时间的话--能想到的可能也就是PowerShell+SQL Server+job,试试. 本文就给大家介绍了关于利用PowerShell监控Win-Server性能的相关内容,下面话不多说了,来一起看看详细的介绍吧 一.关于PowerShell 1.什么是PowerShell 表层面的翻译:强大的Shell. 强大? 如果是从知名度和用户的使用量来谈的话,PowerShell相较当下流行的一些面向对象的语言来说应该是逊

  • 使用 powershell 创建虚拟机

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

  • 基于PowerShell在Ubuntu系统的使用详解

    本文主要介绍如何在Ubuntu 16.04 LTS上安装和使用PowerShell.要知道,PowerShell Core是微软公司推出的一个跨平台(Windows,Linux和macOS)自动化和配置工具/框架,可与现有工具很好地配合使用,并对结构化数据(如JSON, CSV,XML等),REST API和对象模型的处理做了优化.PowerShell包括一个命令行shell,一个相关的脚本语言和一个处理cmdlet的框架. 下面先介绍在Ubuntu 16.04(Xenial Xerus)服务器

  • PowerShell 指令操作集合(小结)

    PowerShell 命令 集合 操作[含义] 命令 打印工作目录[检查当前 所在位置] pwd[print working directory] 查看 计算机 在网络中的名称 ?待填充 创建目录[只能是文件夹] mkdir 新建文件夹名称[DOS 指令] 列出 目录内容 ls [list] 列出 目录内容 dir[DOS 指令] 更改目录 cd 目录 /盘符 [change document][盘符切换的格式:?待填充] 返回 上一目录 cd -[是两个 英文句号][返回home :cd ~]

  • PowerShell实现简单的grep功能

    在PowerShell中,无法像*nix中一样使用grep命令,直接对一个目录下的所有文件进行内容查找,下面的PS脚本针对目录和文件进行了区分,借用Select-String命令,实现了内容查找,并显示查找到的文件和匹配内容所在行号. 使用的时候,只需要在shell中,输入: "命令所在目录"\grep.ps1 "需要查找的字符串" "需要查找的路径" param($str, $path=".\") #输入参数,默认在当前目录

  • PowerShell 远程执行任务的方法步骤

    在 linux 中我们可以使用 SSH 执行各种远程操作,同样的在 windows 平台上我们可以通过 PowerShell 获得类似的能力.本文将介绍通过 PowerShell 执行远程操作的基本信息.想了解 SSH 远程操作的同学,可以参考<SSH 远程执行任务>. 基础 MS 定义了一个叫做 WS-Management 的协议,这个协议为计算机设备远程交换管理数据提供了一个公开的标准.在 Windows 平台上,MS 通过 Windows 远程管理服务(Windows Remote Ma

  • 原创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地址的处理,更新

随机推荐