傳教士問:
win下如何 獲取進程命令行,及命令行參數?
傳教士答:
可以用這個powershell命令(實際上是wmi查詢):
(get-wmiobject -query "select * from win32_process").commandline
傳教士問:
俺覺得這樣用挺不爽,為啥么任務管理器中有,“命令行”這個列(任務管理器--》點詳細信息---》點名稱---》點右鍵---》選擇列---》選中命令行),
但powershell中的get-process命令卻沒有.commandline屬性?
傳教士答:
對,但目前只坐等powershell mvp,吃人飯拉點人屎,跟微軟呼吁下。
傳教士問:
win下如何獲取腳本並發數?及進程並發數?
可以檢測任何進程,如exe等。可以檢測任何(擴展名)腳本的並發數。但是感腳用wmi有點別扭。
傳教士答:
#檢測ps腳本進程並發數.ps1 [string]$想要檢測的_運行中的腳本名 = 'txt電子書閱讀器v3.ps1' $當前用戶下_所有命令的命令行 = (get-wmiobject -query "select * from win32_process").commandline #當前用戶權限下運行,則獲得當前用戶的。管理員權限運行,則獲取所有用戶的。 $檢測出的腳本進程並發數 = 0 foreach ($temp001 in $當前用戶下_所有命令的命令行) { if ($temp001 -like "*$想要檢測的_運行中的腳本名*") { $檢測出的腳本進程並發數++ } } write-host "檢測出的腳本進程並發數 $檢測出的腳本進程並發數"
powershell 傳教士 原創文章 2015-10-17 允許轉載,但必須保留名字和出處,否則追究法律責任
傳教士問:
win下獲取腳本並發數,有啥么用捏?
傳教士答:
獲取腳本並發數量這個功能,還是比較常用的。
比如我4有個cpu核心,我就想讓腳本4進程跑。每個進程一個腳本,每個腳本,通過給腳本傳遞參數,分給它一個任務塊。
這樣我就可以用任務計划+一個ps腳本,定期檢查腳本並發數。 如果分發給某腳本的任務塊跑完了,即這腳本退出了,就可以增加腳本任務進程。