天天看點

powershell腳本執行繞過powershell下腳本執行限制(cmd下執行)以及在cmd下隐藏腳本視窗

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

 可以看到直接在cmd下執行powershell腳本,繞過了powershell對ps1腳本執行的限制(在某些情況下相當有用) 

powershell腳本執行繞過powershell下腳本執行限制(cmd下執行)以及在cmd下隐藏腳本視窗

2.2在powshell下執行

  可以看到目前腳本的執行權限是限制,當想修改腳本的執行權限時,隻能以管理者打開powershell,在某些情況下無法實作管理者修改,這時候隻能通過cmd運作腳本了

powershell腳本執行繞過powershell下腳本執行限制(cmd下執行)以及在cmd下隐藏腳本視窗

  以管理者運作powerrshell之後,設定腳本的運作政策 

powershell腳本執行繞過powershell下腳本執行限制(cmd下執行)以及在cmd下隐藏腳本視窗

3.設定完腳本的運作政策之後,就可以運作腳本了

  

powershell腳本執行繞過powershell下腳本執行限制(cmd下執行)以及在cmd下隐藏腳本視窗

4.隐藏腳本到背景

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

 運作完隐藏的指令之後,腳本視窗便消失了,隻有背景能看到腳本正在運作

 

powershell腳本執行繞過powershell下腳本執行限制(cmd下執行)以及在cmd下隐藏腳本視窗

5.想要退出隐藏,可以在任務管理器結束powershell程序