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腳本執行的限制(在某些情況下相當有用)

2.2在powshell下執行
可以看到目前腳本的執行權限是限制,當想修改腳本的執行權限時,隻能以管理者打開powershell,在某些情況下無法實作管理者修改,這時候隻能通過cmd運作腳本了
以管理者運作powerrshell之後,設定腳本的運作政策
3.設定完腳本的運作政策之後,就可以運作腳本了
4.隐藏腳本到背景
powershell -WindowStyle hidden -ExecutionPolicy Bypass -file xxx.ps1
運作完隐藏的指令之後,腳本視窗便消失了,隻有背景能看到腳本正在運作
5.想要退出隐藏,可以在任務管理器結束powershell程序