powershell脚本执行绕过powershell下脚本执行限制(cmd下执行)

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

powershell脚本运行方式有两种,一种是powshell中运行,另一种是在cmd中(在某些情况下相当有用)

powershell一般默认是禁止脚本运行,想要修改允许脚本运行,需要以管理员权限运行powershell,但有时候我们没有管理员权限,只有普通用户权限,这样就没有办法设置允许脚本运行,这时,cmd中运行脚本的优势就体现出来了。在cmd中运行脚本可以绕过powershell的限制。

(cmd)本地权限绕过执行:PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1

powershell:Get-ExecutionPolicy(查看当前脚本执行权限)    Set-ExecutionPolicy(设置脚本执行权限)

一、使用自动化命令查看并统计在powershell有别名的cmd下的命令(cmd的命令可以在powershell下运行并且在powershell下有别名)

 1.代码如下: 

<#
使用自动化命令查看并统计在powershell有别名的cmd下的命令(cmd的命令可以在powershell下运行并且在powershell下有别名)
#>
$cname=cmd /c help  #$cmd /c help 获得的结果是一个数组对象
$len=$cname.count-3  #观察cmd /c help获得数据,去掉前两行和最后一行无用数据
$n=0
#遍历数组
foreach ($i in $cname[1..$len])
{
    $sn=$i.split()[0]   #对每行的数据进行处理,并得到第一个值(命令名称)
    if ($sn -ne "")     #-ne 不等于
    {
        $pcom=get-alias $sn -erroraction silentlycontinue   #获得每个命令的别名,当出现错误不显示,继续执行
        if ($?) #返回上一条指令执行的结果,成功返回True,失败返回False
        {
            $pcom.displayname   #$pcom是一个对象
            $n+=1   #计数
        }
    }
}
write-host "$n Done"    #write-host是写到控制台
pause   #暂停

2.运行方式有两种,一种是powershell中运行,另一种在cmd中

  2.1(cmd)本地权限绕过执行:PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1

 可以看到直接在cmd下执行powershell脚本,绕过了powershell对ps1脚本执行的限制(在某些情况下相当有用) powershell脚本执行绕过powershell下脚本执行限制(cmd下执行)以及在cmd下隐藏脚本窗口 Safe 第1张

2.2在powshell下执行

  可以看到当前脚本的执行权限是限制,当想修改脚本的执行权限时,只能以管理员打开powershell,在某些情况下无法实现管理员修改,这时候只能通过cmd运行脚本了powershell脚本执行绕过powershell下脚本执行限制(cmd下执行)以及在cmd下隐藏脚本窗口 Safe 第2张

  以管理员运行powerrshell之后,设置脚本的运行策略 powershell脚本执行绕过powershell下脚本执行限制(cmd下执行)以及在cmd下隐藏脚本窗口 Safe 第3张

3.设置完脚本的运行策略之后,就可以运行脚本了

  powershell脚本执行绕过powershell下脚本执行限制(cmd下执行)以及在cmd下隐藏脚本窗口 Safe 第4张

4.隐藏脚本到后台

 powershell  -WindowStyle hidden -ExecutionPolicy Bypass -file xxx.ps1 

 运行完隐藏的命令之后,脚本窗口便消失了,只有后台能看到脚本正在运行

 powershell脚本执行绕过powershell下脚本执行限制(cmd下执行)以及在cmd下隐藏脚本窗口 Safe 第5张 

5.想要退出隐藏,可以在任务管理器结束powershell进程

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄