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

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

以管理员权限运行 QProcess_数据

2.2在powshell下执行

以管理员权限运行 QProcess_shell脚本_02

以管理员权限运行 QProcess_shell脚本_03

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

以管理员权限运行 QProcess_shell脚本_04

4.隐藏脚本到后台

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

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

以管理员权限运行 QProcess_管理员权限_05

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