网安
  • Develop
    • JAVA学习
      • 字节码
      • API开发
      • Web开发
      • 工程结构推荐
      • 创建第一个项目
      • 权限管控
      • 配置文件
      • 日志管理
      • 数据访问
      • 性能监控
      • IoC容器
      • Spring
      • Filter与Listener
      • jsp
      • MVC
      • servlet-1
      • servlet-2
      • servlet-3
      • servlet-4
      • FreeMarker
      • Thymeleaf
      • EL
      • SpEL
      • JSTL
      • 部署
      • JDBC
      • 数据库连接池
      • fastjson
      • jackson
      • XML
      • JSON
      • 序列化
      • Maven
      • 安装与使用
      • 工具
      • 爬虫
    • GO学习
      • GO
        • flag 包
        • goland 远程调试
        • GoReleaser
        • OS 包
        • time 包
        • 格式化输出
    • Lua学习
      • Lua
      • 基础语法
      • LuaJIT
      • 与系统交互
    • Pyhon
      • 基础
      • Django
      • CLI
      • miniforge
      • MockingBird
      • pdb
      • pyc
      • 装的我脑血栓要犯了
      • Python101
      • 反序列化
      • 爬虫
      • Pillow
      • 图像识别
      • flask
    • Speed-Ruby
      • 入门1
      • 入门2 对象
      • 入门3 创建命令
      • Encoding类
      • File类与Dir类
      • IO
      • Proc类
      • Time类与Date类
      • 正则
      • 错误处理与异常
      • 对象、变量和常量
      • 方法
      • 数值
      • 数组
      • 条件判断
      • 循环
      • 运算符
      • Socket编程
      • 字符串
      • 并发与线程
      • 块
      • 类和模块
      • 散列
    • Web
      • HTTP
        • Connection
        • HTTP 报文
        • Vary
      • 笔记
        • 跳转
        • 认证 & 授权
        • 同源策略(SOP)
        • 文件
    • Git 学习笔记
    • JSON
      • JSON 学习笔记
    • HTML
      • Speed-HTML
      • 语法学习
      • HTML字符实体
    • XML
      • XML 学习笔记
    • 计算机基础
      • 操作系统
      • 计算机组成
      • 算法
      • 内存
      • 字符编码
    • gnuplot 学习笔记
    • regex
  • Integrated
    • Linux
      • God-Linux
      • Secure-Linux
      • Power-Linux
      • IO模型
      • Speed-Linux
      • 发行版
      • 工具
      • 启动过程
      • 进程
      • 认证
      • 日志
      • 守护进程
      • 文件
      • 信息
      • VSFTP 配置案例
      • auditd
      • containerd
      • DNS 配置案例
      • Docker
      • Docker-Compose
      • firewalld 实验
      • gpg
      • Iptables
      • httpd
      • LAMP
      • mysql
      • nfs 配置案例
      • openssl
      • PAM
      • samba 配置案例
      • terraform
      • ufw
      • VSFTP 配置案例
    • Network
      • Speed-Net
      • Power-Net
      • SDN 笔记
      • DNS
      • TLS
    • Windows
      • Secure-Win
      • Speed-Win
      • ACL
      • LDAP
      • IPC$(Internet Process Connection)
      • PDB符号文件
      • 工作组
      • WinRM
      • 角色权限
      • 凭据
      • 签名
      • 日志
      • 认证
      • 协议
      • 信息
      • 应用
      • 组策略
      • 域
      • asp站点搭建
      • Exchange 搭建
      • Windows 故障转移集群
      • Windows 基础服务搭建
      • Windows 域搭建
      • 本地抓包
      • PowerShell 笔记
    • 容器
      • Docker
    • 数据库
      • Speed-SQL
      • Power-SQL
      • MSSQL
      • MySQL
      • Postgresql
      • Redis
      • MySQL大小写问题
      • 主键和外键
      • MySQL快速入门
      • 虚拟化
        • ESXi
        • vCenter
  • Plan
    • Mac-Plan
    • Misc-Plan
    • Team-Plan
    • Thinking-Plan
    • VM-Plan
  • Sercurity
    • Power-PenTest
    • BlueTeam
      • 安全建设
      • 分析
      • 加固
      • 取证
      • 应急
      • USB取证
      • 磁盘取证
      • 内存取证
      • ClamAV 部署
      • yara 实验
      • 安防设施搭建使用
      • ZIP明文攻击
      • 流量分析
    • Crypto
      • Crypto
        • 2020 9 G60攻防大赛
        • CTF
        • 2020 9 中能融合杯工控CTF
        • 2020 10 全国工业互联网安全技术技能大赛江苏省选拔赛
        • 2020 10 全国网络与信息安全管理职业技能大赛江苏场
        • 2020 11 I²S峰会暨工业互联网安全大赛
        • 2021 6 第二届I²S峰会暨工业互联网安全大赛
        • 2021-9-第七届工控信息安全攻防竞赛
        • 2021 9 第七届全国职工职业技能大赛某市县选拔赛
        • 2021 9 全国网络与信息安全管理职业技能大赛江苏场
        • 2021-10-G60攻防大赛
    • CTF
      • CTF
      • writeup
        • 2020 9 中能融合杯工控CTF
        • 2020 9 G60攻防大赛
        • 2020 10 全国工业互联网安全技术技能大赛江苏省选拔赛
        • 2020 10 全国网络与信息安全管理职业技能大赛江苏场
        • 2020 11 I²S峰会暨工业互联网安全大赛
        • 2021 6 第二届I²S峰会暨工业互联网安全大赛
        • 2021-9-第七届工控信息安全攻防竞赛
        • 2021 9 第七届全国职工职业技能大赛某市县选拔赛
        • 2021 9 全国网络与信息安全管理职业技能大赛江苏场
        • 2021-10-G60攻防大赛
    • ICS
      • PLC攻击
      • S7comm 相关
      • 工控协议
      • 上位机安全
      • Modbus 仿真环境搭建
      • siemens 仿真搭建实验
      • S7-300 启停实验
    • IOT
      • 无线电安全
        • RFID复制卡
        • RFID基础知识
        • WiFikiller
      • 硬件安全
        • DIY键盘嵌入指纹识别模块实验记录
        • Device-Exploits
        • HID-Digispark
        • HID-KeyboardLogger
        • HID-USBHarpoon
        • HID-USBKeyLogger
      • 固件安全
        • 固件安全
        • Dlink_DWR-932B 路由器固件分析
    • Mobile sec
      • 小程序安全
      • Android安全
    • PWN
      • SLMail溢出案例
      • PWN
    • Red Team
      • OS安全
        • Linux 安全
        • Exploits
        • NTLM中继
        • Windows 安全
        • Responder欺骗
        • Windows-LOL
      • Web_Generic
        • Top 10
          • RCE
          • Fileread
          • SQLi
          • SSRF
          • SSTI
          • Web Generic
          • XSS
          • XXE
      • Web_Tricks
        • JWT 安全
        • HTTP_request_smuggling
        • OOB
        • 绕过访问
      • 靶场
        • Hello-Java-Sec 学习
        • DVWA-WalkThrough
        • pikachu-WalkThrough
        • upload-labs-WalkThrough
        • XVWA-WalkThrough
        • XSS挑战-WalkThrough
      • 实验
        • flask
        • fastjson
        • Log4j
        • nodejs
        • Shiro
        • Spring
        • Weblogic
      • 前端攻防
      • IDOR
    • 安防设备
      • Exploits
      • Bypass 技巧
    • 后渗透
      • 权限提升
      • 后渗透
      • 权限维持
      • 实验
        • C2 实验
        • Exchange
        • 端口转发实验
        • 代理实验
        • 免杀实验
        • 隧道实验
    • 软件服务安全
      • Exploits
      • CS Exploits
      • 实验
        • Docker
        • Kubernetes
        • Mysql
        • Oracle
        • PostgreSQL
        • Redis
        • vCenter
    • 协议安全
      • Exploits
    • 信息收集
      • 端口安全
      • 空间测绘
      • 信息收集
    • 语言安全
      • 语言安全
        • 语言安全
      • GO安全
        • GO安全
        • Go代码审计
      • JAVA安全
        • JAVA安全
        • JAVA代码审计
        • JAVA反序列化
        • SpEL 注入
      • PHP安全
        • PHP安全
        • bypass_disable_function
        • bypass_open_basedir
        • phpinfo
        • PHP代码审计
        • PHP反序列化
        • PHP回调函数
        • 变量覆盖
        • POP
        • 弱类型
        • 伪协议
        • 无字母数字Webshell
      • Python安全
        • pyc反编译
        • Python安全
        • Python 代码审计
        • 沙箱逃逸
      • dotnet安全
      • JS安全
    • 云安全
      • 公有云安全
    • Reverse
      • Reverse
      • FILE
        • ELF
        • BMP
        • JPG
        • PE
        • PNG
        • ZIP
        • 文件头
      • 实验
        • PYAble
          • 2-逆运算
          • 1-基本分析
          • 3-异或
          • 4-Base64
          • 5-Base64换表
          • 6-动态调试
        • Windows
          • condrv.sys 内存损坏漏洞
    • 工具
      • Aircrack
      • BloodHound
      • Burp Suite
      • frp
      • CobaltStrike
      • Ghidra
      • fscan
      • Hashcat
      • IDA
      • merlin
      • Kali
      • Metasploit
      • Mimikatz
      • ModSecurity
      • Nmap
      • nps
      • nuclei
      • pupy
      • RedGuard
      • SET
      • sliver
      • Snort
      • Sqlmap
      • Suricata
      • Sysmon
      • uncover
      • Volatility
      • Wfuzz
      • Wireshark
      • xray
    • 安全资源
      • 靶机
        • VulnHub
          • DC
            • DC2 WalkThrough
            • DC1 WalkThrough
            • DC3 WalkThrough
            • DC4 WalkThrough
            • DC5 WalkThrough
            • DC6 WalkThrough
            • DC9 WalkThrough
            • DC8 WalkThrough
          • It's_October
            • It’s_October1 WalkThrough
          • Kioptrix
            • Kioptrix2 WalkThrough
            • Kioptrix3 WalkThrough
            • Kioptrix4 WalkThrough
            • Kioptrix5 WalkThrough
          • Mission-Pumpkin
            • PumpkinGarden-WalkThrough
            • PumpkinFestival WalkThrough
            • PumpkinRaising WalkThrough
          • Symfonos
            • symfonos1 WalkThrough
            • symfonos2 WalkThrough
            • symfonos3 WalkThrough
            • symfonos5 WalkThrough
        • Wargames
          • Bandit
            • Bandit-WalkThrough
      • 面试问题
        • 面试问题
Powered by GitBook
On this page
  • 安装Powershell
  • 支持的 Windows 版本
  • 使用
  • 常用命令
  • 基础入门
  • 收集信息
  • 软件管理
  • 机器管理
  • 远程桌面
  • 语法
  • 输出
  • 函数
  1. Integrated
  2. Windows

PowerShell 笔记

Previous本地抓包Next容器

什么是 PowerShell

Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework 的强大功能.

Windows PowerShell 需要用于管理 .NET 对象的语言.该语言需要为使用 cmdlet 提供一致的环境.该语言需要支持复杂的任务,而不会使简单的任务变得更复杂. 该语言需要与在 .NET 编程中使用的高级语言(如C#)一致.


学习资源

  • https://www.pstips.net/


常见报错

  • 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signing"

    set-ExecutionPolicy RemoteSigned
  • 使用 powershell 运行脚本报错:进行数字签名.无法在当前系统上运行该脚本.有关运行脚本和设置执行策略的详细信息

    powershell "Set-ExecutionPolicy -ExecutionPolicy Unrestricted -force |Out-null"

安装Powershell

  • https://docs.microsoft.com/zh-cn/powershell/scripting/install/installing-powershell-on-windows

支持的 Windows 版本

  • ✅ 指示仍支持 OS 或 PowerShell 版本

  • ❌ 指示不支持 OS 或 PowerShell 版本

  • 💢 指示该 OS 版本不再支持 PowerShell 版本

Windows版本
7.0 (LTS)
7.1(最新版)
7.2 (LTS-preview)

Windows Server 2016,2019,2022

✅

✅

✅

Windows Server 2012 R2

✅

✅

✅

Windows Server Core(2012 R2)

✅

✅

✅

Windows Server Nano(1809)

✅

✅

✅

Windows Server 2012

💢

❌

❌

Windows Server 2008 R2

💢

❌

❌

Windows 11

✅

✅

✅

Windows 10 1607

✅

✅

✅

Windows 8.1

✅

✅

❌

以下处理器体系结构在 Windows 上支持 PowerShell。

Windows版本
7.0 (LTS)
7.1(最新版)
7.2 (LTS-preview)

Nano Server 1803

x64、Arm32

X64

X64

Windows Server 2012 R2

x64、x86

x64、x86

x64、x86

Windows Server Core 2012 R2

x64、x86

x64、x86

x64、x86

Windows 10 or 11

x64、x86

x64、x86、Arm64

x64、x86、Arm64

Windows 8.1

x64、x86

x64、x86

x64、x86


使用

PS1文件

一个 PowerShell 脚本其实就是一个简单的文本文件, 这个文件包含了一系列 PowerShell 命令,每个命令显示为独立的一行,对于被视为 PowerShell 脚本的文本文件,它的文件名需要加上 .PS1 的扩展名。

PowerShell 的执行策略

为防止恶意脚本的执行,PowerShell 有一个执行策略,默认情况下,这个执行策略被设置为受限。

我们可以使用: Get-ExecutionPolicy 命令查看 PowerShell 当前的执行策略。它有多个策略。

  • AllSigned: 仅当脚本由受信任的发布者签名时才能运行.

  • Bypass: 没有任何内容被阻止,也没有警告或提示.

  • Default: 设置默认执行策略。 受限于 Windows 客户端或 RemoteSigned 受限于 Windows 服务器。

  • RemoteSigned: 本地创建的脚本可以运行,但是从网上下载的脚本不能运行 (拥有数字证书签名的除外)

  • Restricted: 不加载配置文件或运行脚本。 Windows 客户端计算机的默认执行策略。

  • Undefined: 没有为范围设置执行策略。 从不是由组策略设置的范围中删除分配的执行策略。 如果所有范围内的执行策略为 Undefined,则有效的执行策略为 Restricted。

  • Unrestricted: 允许所有的脚本执行.

Set-ExecutionPolicy 策略名(如:Unrestricted)

常用命令

基础入门

像文件系统那样操作 Windows Registry

cd e:

在文件里递回地搜索某个字符串

dir -r | select string "searchforthis"

   使用内存找到X个进程

ps | sort -p ws | select -last x

循环(停止,然后重启)一个服务,如 DHCP

Restart-Service DHCP

在文件夹里列出所有条目

Get-ChildItem - Force

递归一系列的目录或文件夹

Get-ChildItem -Force c:\directory -Recurse

在目录里移除所有文件而不需要单个移除

Remove-Item C:\tobedeleted -Recurse

重启当前计算机

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)

收集信息

查看当前Powershell版本

$PSVersionTable

获取计算机组成或模型信息

Get-WmiObject -Class Win32_ComputerSystem

获取当前计算机的 BIOS 信息

Get-WmiObject -Class Win32_BIOS -ComputerName .

检查设备驱动程序版本

Get-WmiObject Win32_PnPSignedDriver| select DeviceName, Manufacturer, DriverVersion

列出所安装的修复程序(如QFE或Windows Update文件)

Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName .

获取当前登录计算机的用户的用户名

Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName .

获取当前计算机所安装的应用的名字

Get-WmiObject -Class Win32_Product -ComputerName . | Format-Wide -Column 1

获取分配给当前计算机的 IP 地址

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Format-Table -Property IPAddress

获取当前机器详细的 IP 配置报道

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Select-Object -Property [a-z]* -ExcludeProperty IPX*,WINS*

找到当前计算机上使用 DHCP 启用的网络卡

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=true" -ComputerName .

在当前计算机上的所有网络适配器上启用 DHCP

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=true -ComputerName . | ForEach-Object -Process {$_.EnableDHCP()}

软件管理

在远程计算机上安装 MSI 包

(Get-WMIObject -ComputerName TARGETMACHINE -List | Where-Object -FilterScript {$_.Name -eq "Win32_Product"}).Install(\\MACHINEWHEREMSIRESIDES\path\package.msi)

使用基于 MSI 的应用升级包升级所安装的应用

(Get-WmiObject -Class Win32_Product -ComputerName . -Filter "Name='name_of_app_to_be_upgraded'").Upgrade(\\MACHINEWHEREMSIRESIDES\path\upgrade_package.msi)

从当前计算机移除 MSI 包

(Get-WmiObject -Class Win32_Product -Filter "Name='product_to_remove'" -ComputerName . ).Uninstall()

机器管理

一分钟后远程关闭另一台机器

Start-Sleep 60; Restart-Computer -Force -ComputerName TARGETMACHINE

添加打印机

(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection(\\printerserver\hplaser3)

移除打印机

(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\printerserver\hplaser3 ")

进入 PowerShell 会话

invoke-command -computername machine1, machine2 -filepath c:\Script\script.ps1

远程桌面

以下操作,PS 命令窗口,必须都以管理员身份执行.

  1. 机器 A 和 B,分别开启 PowerShell 远程管理服务

    A = 192.168.3.32

    PS >> Enable-PSRemoting

    然后按照提示,选项选 Y,执行开启远程管理.

    B = 192.168.3.37

    PS >> Enable-PSRemoting

    然后按照提示,选项选 Y,执行开启远程管理.

  2. 机器 A 和 B,分别信任需要远程管理的机器 IP 或名称

    A=192.168.3.32

    PS >> Set-Item WSMan:\localhost\Client\TrustedHosts -Value IP 地址

    然后按照提示,选项选 Y,表示允许远程发送命令

    B = 192.168.3.37 PS >>

    Set-Item WSMan:\localhost\Client\TrustedHosts -Value IP 地址

    然后按照提示,选项选 Y,表示允许远程发送命令

  3. 在机器 A 上面,远程登录和执行命令到机器 B

    A = 192.168.3.32

    PS >> Enter-PSSession -ComputerName IP地址

语法

输出

Write-Host

  • https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/write-host?view=powershell-7.2

Write-Host "no newline test " -NoNewline
Write-Host "second string"

no newline test second string

函数

function print-some
{
    Write-Host "printsome"
}

print-some
function Get-DateTime()
{
    return Get-Date
}

Get-DateTime

本部分内容由 提供,在此只做排版修改

specterops/at-ps
xidaner