Powershell应用

Powershell应用

  • 帮助命令
  • 进程管理
  • 服务管理
  • 文件管理
  • 网络管理
  • 系统管理
  • 用户管理
  • 远程管理
    • 常见问题
  • 字符串和文本处理
  • 脚本和模块
  • 其他常用命令
  • 返回值类型
  • PowerShell调用C# 类库
  • PowerShell使用Wmi
    • WQL测试工具

帮助命令

  • Get-Help
    这个命令用于获取其他命令的帮助文档,例如 “Get-Help Get-ChildItem”。
  • Update-Help
    更新本地帮助文件的版本。
  • Get-Command
    获取系统中所有可用的命令。例如,输入 Get-Command -Module Net 可以获取所有以 “Net” 开头的模块的命令列表。
  • Get-Alias
    获取当前会话中所有的命令别名。例如,输入 Get-Alias -Definition Get-ChildItem 可以获取所有使用 Get-ChildItem 命令的别名。
  • Get-History
    获取当前会话中执行过的命令历史记录。

进程管理

  • Get-Process
    这个命令用于列出正在运行的进程,常用的选项包括“-Name”和“-Id”,例如“Get-Process -Name explorer”。

  • Stop-Process
    这个命令用于终止一个进程,常用的选项包括“-Name”和“-Id”,例如“Stop-Process -Name notepad”。

  • Start-Process
    启动一个新进程。例如,输入 Start-Process -FilePath “C:\Windows\System32\notepad.exe” 可以启动记事本应用程序。

# 启动进程
Start-Process -FilePath "notepad"
Start-Process -FilePath $command -ArgumentList $arguments -RedirectStandardOutput $outputFilePath -RedirectStandardError $errorFilePath -Wait

服务管理

  • Restart-Service
    重启指定的服务。例如,输入 Get-Service 可以获取所有服务列表。

  • Get-Service
    获取系统中所有的服务列表。例如,输入 Start-Service -Name Spooler 可以启动打印机池服务。

  • Stop-Service
    停止指定的服务。例如,输入 Stop-Service -Name Spooler 可以停止打印机池服务。

# 关闭windows update
Stop-Service -Name "wuauserv" -Force
Set-Service -Name "wuauserv" -StartupType Disabled  -ErrorAction SilentlyContinue

文件管理

  • Get-ChildItem
    获取指定目录中的文件和子目录列表。例如,输入 Get-ChildItem -Path “C:\Windows\System32” 可以获取系统 32 文件夹下的所有文件和文件夹列表。

  • Set-Location
    更改当前工作目录。也可以使用其别名“cd”,例如“Set-Location C:\Windows”。

  • Copy-Item
    复制文件或目录。例如,输入 Copy-Item -Path “C:\Temp\file.txt” -Destination “C:\Temp2” 可以将 file.txt 复制到 C:\Temp2 文件夹。

  • Move-Item
    移动或重命名文件或目录。例如“Move-Item C:\Test.txt D:\Archive\Test2.txt”。

  • Remove-Item
    删除文件或目录,常用的选项包括“-Path”和“-Recurse”,例如“Remove-Item -Path C:\Test -Recurse”。

  • New-Item
    创建新文件或目录,常用的选项包括“-ItemType”和“-Path”,例如“New-Item -ItemType Directory -Path C:\Test”。

# 创建文件夹
New-Item -ItemType Directory -Path "C:\path\to\directory"

# 创建文件
New-Item -ItemType File -Path "C:\path\to\file.txt"

# 复制文件
Copy-Item -Path "C:\path\to\file.txt" -Destination "C:\path\to\file_copy.txt"

# 复制文件夹及其内容:
Copy-Item -Path "C:\path\to\directory" -Destination "C:\path\to\directory_dest" -Recurse

# 移动文件
Move-Item -Path "C:\path\to\file.txt" -Destination "C:\path\to\file_new.txt"

# 删除文件
Remove-Item -Path "C:\path\to\file_copy.txt"

# 删除文件夹及其内容:
Remove-Item -Path "C:\path\to\directory" -Recurse

# 列出文件夹内容
Get-ChildItem -Path "C:\path\to\directory"

# 检查文件是否存在
Test-Path -Path "C:\path\to\file.txt"

# 读取文件内容
Get-Content -Path "C:\path\to\file.txt"

# 写入内容到文件
"Content to write" | Set-Content -Path "C:\path\to\file.txt"

# 文件压缩
$sourceDir=""
$destZip=""
Add-Type -AssemblyName System.IO.Compression.FileSystem
[System.IO.Compression.ZipFile]::CreateFromDirectory($sourceDir,$destZip)

# 文件移动
$sourceDir=""
$destDir=""
$extentionList=@("*.jpg","*.log")
if(-not(Test-Path $destDir)){
  New-Item -Path $destDir -ItemType Directory
}

foreach($extention in $ extentionList){
  $partenList=Get-Item -Path $sourceDir -Filter $extention
  $foreach($item in $partenList){
    ReMove-Item -Path $item -Destination $destDir
  }
}

# 文件夹移动
$desktop = "$Env:UserProfile\Desktop"
$txtFolder="$desktop\txt"
$extentionList=@("*.xlsx")
Create-Dir -dir $txtFolder
foreach($extention in $extentionList){
    $files=Get-ChildItem -Path $desktop -Filter $extention
    foreach($file in $files){
       Move-Item -Path $file.FullName -Destination $txtFolder
    }
}
function Create-Dir{
    param([string] $dir)
    if(-not(Test-Path -Path $dir -PathType Container)){
        New-Item -Path $dir -ItemType Directory
    }
}

网络管理

  • Test-Connection
    测试计算机之间的连接状态。

  • Test-NetConnection
    测试网络连接。例如,输入 Test-NetConnection -ComputerName “www.google.com” -Port 80 可以测试计算机是否可以通过端口 80 连接到 Google。

  • Ping
    向指定计算机发送 ICMP 回显请求。

  • Tracert
    显示数据包从本地计算机到指定计算机的路径。

  • Netstat
    显示计算机的网络连接状态和统计信息。

# 测试网络
$connected=Test-Connection -ComputerName baidu.com -Count 1 -Quiet
if($connected){
  Write-Host "connected"
}else{
  Write-Host "not connect"
}

系统管理

  • Get-WmiObject
    获取 Windows 管理信息对象(WMI)的属性和方法。
    用法见PowerShell使用Wmi章节

  • Get-EventLog
    获取指定事件日志的事件列表。

  • Get-ItemProperty
    获取指定注册表键的属性列表。

  • Set-ItemProperty
    设置指定注册表键的属性值。

  • Get-ChildItem Env:
    获取当前会话中所有的环境变量。

用户管理

  • Get-LocalUser
    获取本地计算机上的用户列表。

  • New-LocalUser
    创建新的本地用户。

  • Remove-LocalUser
    删除本地计算机上的指定用户。

  • Add-LocalGroupMember
    将用户添加到本地组。

  • Remove-LocalGroupMember
    从本地组中删除用户。

远程管理

  • Enter-PSSession
    在远程计算机上打开一个 PowerShell 会话。

  • Invoke-Command
    在远程计算机上执行命令。

  • New-PSSession
    创建一个与远程计算机的连接会话。

  • Remove-PSSession
    关闭与远程计算机的连接会话。

  • Enable-PSRemoting
    允许远程计算机上运行的 PowerShell 脚本进行远程管理。

# 1对1 Enter-PSSession
Enter-PSSession -ComputerName xxx.xxx.xxx.xxx -Credential administrator(登录用户)
# 1对多 Invoke-Command
Invoke-Command IP1,IP2,localhost -Command {ipconfig} -Credential Harlan

常见问题

在这里插入图片描述
解决方案:
在这里插入图片描述
Start-Service winrm
winrm quickconfig
Set-Item WSMan:\localhost\Client\TrustedHosts -Value *

字符串和文本处理

  • Select-String
    在文本中查找匹配项。例如,输入 Select-String -Path “C:\Logs*.log” -Pattern “Error” 可以查找 C:\Logs 目录下所有 .log 文件中包含字符串 “Error” 的行。

  • Format-List
    将对象格式化为列表。例如,输入 Get-Process | Format-List Name, Id, CPU 可以将当前正在运行的进程列表格式化为包含名称、ID 和 CPU 列的列表。

  • Split
    将字符串分割为数组。例如,输入 “one,two,three,four” -split “,” 可以将字符串 “one,two,three,four” 分割为包含四个元素的数组。

脚本和模块

  • Set-ExecutionPolicy
    设置脚本执行策略。例如,输入 Set-ExecutionPolicy RemoteSigned 可以设置允许在本地计算机上执行远程签名的脚本。

  • Invoke-Command
    在远程计算机上执行命令。例如,输入 Invoke-Command -ComputerName “remoteComputer” -ScriptBlock { Get-Process } 可以在远程计算机上获取当前正在运行的进程列表。

  • Import-Module
    导入 PowerShell 模块。

  • Export-ModuleMember
    从模块导出命令。

  • New-Module
    创建自定义 PowerShell 模块。

  • Invoke-Expression
    在当前会话中执行字符串作为命令。

其他常用命令

  • Get-Date
    获取当前日期和时间。

  • Get-Random
    生成一个随机数。

  • Measure-Object
    计算对象集合的属性。

  • Out-File
    将输出重定向到文件。

  • Select-Object
    选择对象属性进行显示。

  • Where-Object
    根据条件筛选对象集合。

# 获取桌面
$Env:USERPROFILE\desktop

# 空字符串检查
if(-not $mystring){
}

# 获取返回值成员列表
Get-ChildItem|Get-Member
Start-Process -FilePath "notepad" -PassThru |Get-Member

# 最小化powershell
$shell=New-Object -ComObject Shell.Application
$shell.MinimizeAll()

返回值类型

# 获取返回的类型
$result = Get-ChildItem -Path "C:\path\to\directory"
# 在 PowerShell 中,可以使用 GetType() 方法来确定对象的类型。可以将 Get-ChildItem 命令的输出结果存储在一个变量中,并使用 GetType() 方法来查看其类型。
$result.GetType()
# 如果想要详细了解结果的属性和方法,可以使用 Get-Member 命令
$result | Get-Member

PowerShell调用C# 类库

//引入dll
Add-Type –Path "MerRear.dll"

//创建类
$obj = New-Object MerRear.TrallrahurmuSorhardu

//调用方法
$obj.ViwhawSterenekooSirberheeFarzere()

//调用静态方法
[PATool.Core.sys.WmiHelper]::GetUSB()

PowerShell使用Wmi

//获取补丁
Get-WmiObject Win32_QuickFixEngineering

//获取 机器型号 和 制造厂商
Get-WmiObject Win32_ComputerSystem | Format-List Description,Manufacturer,model,UserName

//获取用户已经安装的驱动程序
Get-WmiObject Win32_SystemDriver | Format-List Caption,Name,State,InstallDate,PathName

//获取系统安装软件
Get-WmiObject Win32_Product | Format-List Caption,Description,IdentifyingNumber,InstallDate,InstallLocation,HelpLink,HelpTelephone,InstallSource,Language,LocalPackage,Name,PackageCache,PackageCode,PackageName,ProductID,RegOwner,RegCompany,SKUNumber,Transforms,URLInfoAbout,URLUpdateInfo,Vendor,WordCount,Version

//查找BatteryFullChargedCapacity
Get-WmiObject -Namespace "root\WMI" -Query "select * from BatteryFullChargedCapacity"
Get-WmiObject -Namespace "root\CIMV2" -Query "SELECT * FROM Win32_ProvisioningPackage"

//获取Wmi中的所有类
Get-CimClass -Namespace "root/WMI"Get-WmiObject -Namespace "root\WMI" -List
Get-CimClass -Namespace "root/CIMV2"Get-WmiObject -Namespace "root\CIMV2" -List

WQL测试工具

cmd: wbemtest.exe
获取所有命名空间:Get-WmiObject -Class __Namespace -Namespace root

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/453143.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

像SpringBoot一样使用Flask - 3.蓝图路由Blueprint

接上一篇文章《像SpringBoot一样使用Flask - 2.静态资源访问及模版》,我们看到测试的"controller"都写在了一起🤔 如何像Springboot一样划分出一个完整的controller,里面实现不同业务的包呢? 本篇引入Blueprint&#xf…

Qt教程 — 1.1 Linux下安装Qt

目录 1 下载Qt 1.1 官方下载 1.2 百度网盘下载 1.3 Linux虚拟机终端下载 2 Qt安装 3 安装相关依赖 4 测试安装 1 下载Qt 1.1 官方下载 通过官网下载对应版本,本文选择的版本为qt-opensource-linux-x64-5.12.12,Qt官方下载链接:htt…

Liunx文件系统和基础IO

文件系统和基础IO 基础IOc语言基础IO函数当前路径和标准流系统IO系统调用函数重定向FILE文件结构体 在谈缓存区问题理解文件系统初识inode 基础IO c语言基础IO函数 打开与关闭 FILE *fopen(char *filename, const char *mode);选项还可以是 r/w/a 意味着为可读可写打开。 2…

【CSS】 css 实现文字的渐变色

效果 实现 .text {position: absolute;left: 52px;top: 1px;width: 200px;height: 31px;font-family: YouSheBiaoTiHei;font-size: 24px;color: rgba(255, 255, 255, 0.8);line-height: 31px;text-shadow: 0px 0px 8px #000000;text-align: center;font-style: normal;transiti…

车载气象站比传统气象站的优势是什么

【TH-CZ5】车载气象站在灵活性、覆盖范围、实时监测、多功能性和成本效益等方面均优于传统气象站。这些优势使得车载气象站在气象监测、气象服务、灾害应急等领域具有广泛的应用前景。 车载气象站与传统气象站相比,具有显著的优势,主要体现在以下几个方…

内网渗透-跨域环境渗透-2

目录 内网渗透-跨域环境渗透-2 热土豆提权 Wimc连接执行命令 Responder 密码抓取 WPAD提权 提取域控的NTDS hash文件 内网渗透-跨域环境渗透-2 热土豆提权 这个是提升本地权限的,不是提域控! 总结:Potato.exe -ip 需要提权的IP -disab…

Java+SpringBoot+Vue+MySQL:教育培训办公系统的全栈开发

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

系统设计学习(二)用户认证场景

一、常用鉴权方式 HTTP Basic Authentication (HTTP基本认证) session-cookie 1,服务器在接受客户端首次访问时在服务器端创建session,然后保存session(我们可以将session保存在内存中,也可以保存在redis中,推荐使用后者)&…

Idea 看不到本地 change

环境 idea IntelliJ IDEA 2023.3.3 (Community Edition) idea 升级后,看不到本地change了,去掉下面勾选即可。 解决:

python调用clickhouse

(作者:陈玓玏) 使用clickhouse-driver包,先通过pip install clickhouse-driver安装包,再通过以下代码执行sql。 from clickhouse_driver import Client client Client(host10.43.234.214, port9000, userclickhou…

【网络安全】手机不幸被远程监控,该如何破解,如何预防?

手机如果不幸被远程监控了,用三招就可以轻松破解,再用三招可以防范于未然。 三招可破解可解除手机被远程监控 1、恢复出厂设置 这一招是手机解决软件故障和系统故障的终极大招。只要点了恢复出厂设置,你手机里后装的各种APP全部将灰飞烟灭…

AMEYA360:稳先微汽车驱动芯片—智能高边开关WS7系列

近几年,新能源汽车高速发展,用车浪潮蔓延全球,我国新能源汽车占有量连续9年居全球前列,2023年全年市占率达37.7%,市场规模可观,并显现出以下特点:电车产品对比油车优势明显、消费者接受度高、市…

蓝桥杯算法错题记录-基础篇

文章目录 本文还在跟新,最新跟新时间3/11!!! 格式一定要符合要求,(输入,输出格式)1. nextInt () next() nextLine() 的注意事项2 .数的幂 a^2等3.得到最大长度(最大...&a…

【python pyinstaller库】pyinstaller介绍、安装、以及相关重点知识

PyInstaller是一个在Windows、GNU/Linux、macOS等平台下将Python程序冻结(打包)为独立可执行文件的工具, 用于在未安装Python的平台上执行Python编写的应用程序。 相比类似工具,它的主要优点是 PyInstaller 与 Python 3.7-3.10 一起工作&…

阿里又又发布了一个“AI神器”

阿里给“打工”朋友送上“节日礼物” 六一儿童节当天,阿里就给所有“打工”的大朋友送上了一份“节日礼物” 6月1日上午,阿里云发布了面向音视频内容的AI新品“通义听悟”,并正式公测 通义千问、通义听悟 这哥俩现在所处环境不同&#xff0…

Druid连接池经常性断链问题

前段时间有应用使用Druid连接池经常的提示断链报错,整个问题排查分析过程很有意思。这里将Druid连接池、数据库层以及负载均衡层的配置分析下,记录整个问题的分析过程,同时梳理下Druid连接池的配置和连接保活及回收机制。 1、问题背景 应用…

线程(thread)

目录 线程的基本特性 pthread库的主要函数 pthread_create pthread_join pthread_exit pthread_mutex_init pthread_mutex_lock 和 pthread_mutex_unlock pthread_cond_init pthread_cond_wait 和 pthread_cond_signal / pthread_cond_broadcast pthread_cond_destro…

探索Linux世界:基本指令(文件查看、时间相关、grep、打包压缩及相关知识)

今天继续介绍一些指令 文章目录 1.cat - 查看文件1.1输出重定向和追加重定向1.2指令echo 2.more 指令3.less - 逐页查看文本文件内容4.head- 显示文件开头部分内容5.tail - 显示文件末尾部分内容5.1输入重定向&#xff08;<&#xff09;5.2管道&#xff08;|&#xff09; 6.…

【C++从练气到飞升】03---构造函数和析构函数

&#x1f388;个人主页&#xff1a;库库的里昂 ✨收录专栏&#xff1a;C从练气到飞升 &#x1f389;鸟欲高飞先振翅&#xff0c;人求上进先读书。 目录 ⛳️推荐 一、类的6个默认成员函数 二、构造函数 1. 构造函数的概念 2. 构造函数的定义 3. 构造函数的特性 三、析构函…

Python环境下一维时间序列的高斯均值滤波分解方法

信号分解是一种可以将复杂的观测信号分解为若干子信号的时频分析技术。该技术可以通过分解得到的子信号来有效表征观测信号内部的时频特性&#xff0c;进而能够从观测信号中提取出有用信息。因此&#xff0c;信号分解在信号处理领域中发挥着重要的作用。 傅里叶分解是早期常用…