簡體   English   中英

如何在Powershell中使用get-process結果填充數組

[英]How do I populate an array with get-process results in powershell

我正在嘗試編寫一個PS1腳本:
1.以計算機名和進程名
2.顯示與您的搜索相匹配的所有PID和進程
3.詢問您要殺死的PID。 (我沒有包含這部分代碼)

我需要有關$ processInfo數組的幫助。 我希望能夠瀏覽每個過程並顯示名稱和ID。 然后我將知道要殺死的PID是什么。

因此,如果我搜索“ App *”,如何輸出為以下格式:

Process ID: 1000 Name: Apple
Process ID: 2000 Name: Appster
Process ID: 3000 Name: AppSample

這是我到目前為止的

# Look up a computer, and a process, and then 
$computerName = Read-Host "Enter the FQDN of the target computer:"

# Enter the name of the process you're looking for. Wildcard searching is asterix
$processSearch = Read-Host "Enter the process name to look for:"

# Create a process array with PID, Name, and Runpath
$processInfo = (
    processID = get-process -ComputerName $computerName -Name $processSearch | select -expand ID,
    processName = get-process -ComputerName $computerName -Name $processSearch |select -expand Name,
    processPath = get-process -ComputerName $computerName -Name $processSearch |select -expand Path
)

# Display all of the processes and IDs that match your search
foreach($id in $processInfo){
    write-host Process ID: $id.processID Name: $id.processName
}

Get-Process可以在Name參數中使用通配符。 因此,您只需要遍歷對象並輸出所需的屬性。

# Look up a computer, and a process, and then 
$ComputerName = Read-Host "Enter the FQDN of the target computer:"

# Enter the name of the process you're looking for. Wildcard searching is asterix
$ProcessSearch = Read-Host "Enter the process name to look for:"

Get-Process -ComputerName $ComputerName -Name "$ProcessSearch*" | ForEach-Object {Write-Host Process ID: $_.ID Name: $_.ProcessName}

您還可以擺脫所有Read-HostWrite-Host ,從而獲得更多PowerShell感。

Get-Process -ComputerName $ComputerName -Name "$ProcessSearch*" | Select-Object ID,ProcessName

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM