PowerShell並發控制-命令行參數之四問


傳教士問:

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腳本,定期檢查腳本並發數。 如果分發給某腳本的任務塊跑完了,即這腳本退出了,就可以增加腳本任務進程。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM