欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

【黑客基础】Windows PowerShell 脚本学习(上)

程序员文章站 2022-03-12 07:51:31
视频地址:【黑客基础】Windows PowerShell 脚本学习 2019.12.05 学习笔记 1、$PSVersionTable :查看PowerShell的版本信息。 2、PowerShell 界面: 开始界面搜索 “PowerShell” ,点击 “PowerShell.exe” 或者 ......

视频地址:【黑客基础】windows powershell 脚本学习

2019.12.05 学习笔记

1、$psversiontable :查看powershell的版本信息。
2、powershell 界面:
  • 开始界面搜索 “powershell” ,点击 “powershell.exe” 或者 “powershell ise”。
  • cmd 命令界面输入 “powershell”。
3、powershell 快捷键
  • alt + f7 :清除命令等历史记录,相当于 cls 命令。
  • ctrl + pgup :上翻页。
  • ctrl + pgdn :下翻页。
  • 上下箭头键 :切换命令行等历史记录。
  • 左/右箭头键 :左右移动光标。
  • ctrl + home :
  • ctrl + end :
  • esc:清空当前命令行。
  • tab :自动补齐并选择补齐命令或文件名。
  • enter :执行当前的命令。
  • ctrl + c :取消正在执行等命令。
  • backspace :从右删除命令行字符。
  • f2 :自动补充历史命令到指定字符。
  • f4 :删除命令行至光标右边指定等字符处。
  • f7 :对话框显示命令行历史记录。
  • f8 :检索包含指定字符的命令行历史记录。
  • f9 :根据命令行等历史记录编号选择命令,历史记录编号可以通过 f7 查看。
4、powershell 的管道
  • powershell 的管道是基于对象的,和linux shell 基于文本不同。
  • 管道:前一个命令的输出作为下一个命令的输入。
  • 重定向:
    • “>” 表示输出到某文件,覆盖文件原有的内容,如果文件不存在则自动创建。
    • “>>” 表示添加到某文件内容的结尾。
5、powershell 的运算符
  • 支持四则运算
  • 支持数值的进制转换
  • 支持逻辑运算
6、powershell 使用外部命令
  • powershell 是 cmd 的扩展,cmd 的命令在 powershell 中基本都可以使用执行。

  • netstat -ano :查看端口信息,同 cmd 命令。
  • ipconfig :查看网络配置信息,同 cmd 命令。
  • route print :打印路由信息,同 cmd 命令。
  • start :打开应用程序。
  • notepad :打开文本编辑器,同 cmd 命令。
  • calc :打开计算器,同 cmd 命令。
  • &"command" :打开powershell 外部命令,powershell 专用。
  • $env:path :输出 path 环境变量的内容。
  • $env:path = $env:path + "dir_path" :临时添加 path 环境变量。

7、powershell 的命令集
  • get-command :获取 powershell 所有的命令。
  • powershell 的命令类型有 alias 、function 、cmdlet 三种。
  • alias :别名。
  • function :函数。
  • cmdlet :powershell 内部命令,以动-名词的格式命名。
  • get-help :获取命令的帮助信息。
  • get-process :获取系统的进程信息。
  • get-alias :获取别名对应的命令信息。
  • get-history :获取命令行使用命令的历史信息。
  • get-date:获取当前的日期时间信息。
8、powershell 的别名
  • get-help :获取命令的帮助信息,包含命令的别名信息。
  • get-alias :获取别名对应的命令信息。
  • get-alias -name "ls" :获取别名是“ls”的powershell命令。
  • get-alias | where {$_.definition.startswith("remove")} :获取以“remove”开头命令的别名信息。
  • get-alias | group-object definition | sort -descending count :根据命令别名的个数倒序显示命令及其别名。
9、自定义别名
  • set-alias :定义命令的别名。
    • set-alias -name txt -value notepad
    • -name :指定命令的别名。
    • -value :指定需要定义别名的命令。
  • del alias:txt :删除别名“txt”。
  • export-alias :导出别名,export-alias demo.ps1
  • import-alias :导入别名,import-alias demo.ps1,不成功可以使用“-force”参数进行强制导入。
10、powershell 变量
  • powershell 使用 $ 符号来定义变量,不需要指定变量类型。
  • $var_name
  • $var_name = value
  • powershell 对大小写不敏感。
  • 定义变量使用特别的变量名需要使用花括号将变量名括起来。
  • 变量的赋值可以是别名、命令、表达式等。
  • 多个变量可以同时赋值。
11、变量操作
  • 两个变量的值互换:

    • $tempt = $var1
      $var_1 = $var_2
      $var_2 = $tempt
    • $var_1,$var_2 = $var_2,$var_1
  • ls variable:: 查看当前使用的变量。
  • ls variable:var_name: 查看变量 $var_name 的信息,支持正则表达式。
  • test-path variable:var_name:查看变量 $var_name 是否存在,返回布尔值。
  • del variable:var_name:删除指定的变量。
  • clear-variable :清除指定的变量。
  • remove-variable:删除指定的变量。

12、powershell 自动化变量
  • 自动化变量是由 powershell 自己创建和维护的,一些变量是只读而不能写入的。
  • $home :用户根目录路径。
  • $pid :当前界面进程的id。
  • $$ :上一个运行的命令。
  • $? :上一个命令运行的状态,返回布尔值。
  • $_ :当前变量。
  • $null :空值,空变量。
13、powershell 环境变量
  • ls env: :查看环境变量信息。
  • env:var_name :显示指定的环境变量信息,支持正则表达式。
  • env:varname=value :创建添加一个环境变量。
  • del env:var_name :删除指定的环境变量,支持正则表达式。
  • [environment]::setenvironmentvariable("path","d:\","user"):设置用户的 $path 变量,永久生效。
  • [environment]::getenvironmentvariable("path","user"):获取环境变量 $path 。
14、powershell 脚本执行策略
  • powershell 脚本以 .ps1 后缀。
  • get-executionpolicy :查看命令行的脚本执行权限,返回 restricted 表示禁止。
  • set-executionpolicy remotesigned :允许命令行运行 powershell 脚本。
15、powershell 脚本调用
  • 切换到桌面:cd desktop
  • & “powershell_script_path” :执行脚本。
  • .bat 脚本文件调用powershell 脚本:powershell "& 'powershell_script_path'"