介绍
了解 PowerShell 和 PowerShell 脚本的基础知识
了解一些基础知识。例如,CMD、PS 和某些语法之间的差异。涵盖以下内容:
- 什么是 Powershell
- 基本 Powershell 命令
- Windows 枚举技能
- Powershell 脚本
可使用远程桌面
xfreerdp /v:IP /u:Administrator /p:123456 /dynamic-resolution
什么是powershell
Powershell 是使用 .NET 框架构建的 Windows 脚本语言和 shell 环境。
这也允许 Powershell 直接从其 shell 执行 .NET 函数。大多数 Powershell 命令(称为 cmdlet)都是用 .NET 编写的。与其他脚本语言和 shell 环境不同,这些 cmdlet 的输出是对象——这使得 Powershell 在某种程度上具有面向对象的特性。这也意味着运行 cmdlet 允许您对输出对象执行操作(这使得将输出从一个 cmdlet 传递到另一个 cmdlet 变得非常方便)。cmdlet 的常规格式使用动词-名词表示;例如,用于列出命令的 cmdlet 称为Get-Command。
常用的动词包括:
- Get
- Start
- Stop
- Read
- Write
- New
- Out
要获取已批准动词的完整列表,请访问此链接。https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands?view=powershell-7
获取新对象的命令是Get-New
基本PowerShell命令
现在已经了解了 cmdlet 的工作原理 - 让我们来探索如何使用它们!这里要记住的是,Get-Command 和 Get-Help 是你最好的朋友!
使用 Get-Help
Get-Help 显示有关 cmdlet 的信息。要获取有关特定命令的帮助,请运行以下命令:
Get-Help Command-Name
您还可以通过传入-examples标志来了解如何精确使用该命令。这将返回如下输出:
使用 Get-Command
Get-Command 获取当前计算机上安装的所有 cmdlet。此 cmdlet 的优点在于它允许进行模式匹配,如下所示
Get-Command Verb-*或者Get-Command *-Noun
运行 Get-Command New-* 来查看动词 new 的所有 cmdlet,显示以下内容:
对象操作
在上一个任务中,我们看到每个 cmdlet 的输出都是一个对象。如果我们想要真正操作输出,需要弄清楚以下几点:
- 将输出传递给其他 cmdlet
- 使用特定对象 cmdlet 来提取信息
管道 (|) 用于将输出从一个 cmdlet 传递到另一个 cmdlet。与其他 shell 相比,一个主要区别在于,PowerShell 不是将文本或字符串传递给管道后的命令,而是将对象传递给下一个 cmdlet。与面向对象框架中的每个对象一样,对象包含方法和属性。您可以将方法视为可应用于 cmdlet 输出的函数,而将属性视为 cmdlet 输出中的变量。要查看这些详细信息,请将 cmdlet 的输出传递给 Get-Member cmdlet
Verb-Noun | Get-Member
运行此命令来查看 Get-Command 的成员的示例如下:
Get-Command | Get-Member -MemberType Method
从命令中的上述标志,您可以看到您还可以在方法和属性之间进行选择。
从以前的 cmdlet 创建对象
操作对象的一种方法是从 cmdlet 的输出中提取属性并创建新对象。这可以通过Select-Objectcmdlet 完成。
以下是列出目录并仅选择模式和名称的示例:
您还可以使用以下标志来选择特定信息:
- first - 获取第一个 x 对象
- last - 获取最后一个 x 对象
- unique - 显示独特的对象
- skip - 跳过 x 个对象
过滤对象
检索输出对象时,您可能希望选择与特定值匹配的对象。您可以使用 Where-Object 根据属性值进行筛选。
使用此 cmdlet 的一般格式是
Verb-Noun | Where-Object -Property PropertyName -operator Value
Verb-Noun | Where-Object {$_.PropertyName -operator Value}
第二个版本使用 $_ 运算符来遍历传递给 Where-Object cmdlet 的每个对象。
Powershell 非常敏感,因此请确保不要在命令周围加上引号!
其中-operator是以下运算符的列表:
- -Contains:如果属性值中的任何项与指定值完全匹配
- -EQ:如果属性值与指定值相同
- -GT:如果属性值大于指定值
有关运算符的完整列表,请使用此链接。https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/where-object?view=powershell-6
以下是检查已停止进程的示例:
排序对象
当 cmdlet 输出大量信息时,您可能需要对其进行排序,以便更高效地提取信息。您可以通过将 cmdlet 的输出通过管道传输到Sort-Objectcmdlet 来实现此目的。
该命令的格式为
Verb-Noun | Sort-Object
以下是对目录列表进行排序的示例:
文件 “interesting-file.txt” 的位置是什么
1.Get-ChildItem -Path C:\ -Include interesting-file.* -File -Recurse -ErrorAction SilentlyContinue
-Recurse:递归搜索
-ErrorAction SilentlyContinue:忽略错误
-File 仅文件
-Path:我们要查找的路径。C;\ 表示整个磁盘
-Include:文件的名称。
Get-ChildItem这个cmdlet来获取目录下的文件列表
2.Get-ChildItem “*interesting-file*” -Path C:\ -Recurse -ErrorAction SilentlyContinue
指定此文件的内容Get-Content -Path 'C:\Program Files\interesting-file.txt.txt'
Get-ChildItem “*interesting-file*” -Path C:\ -Recurse -ErrorAction SilentlyContinue | Get-Content
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)