0

我正在尝试使用 WASP 在 Powershell 脚本中选择某个进程名称。但是,问题是每次启动进程时,它都会在扩展之前给自己一个随机生成的字符串。

不过,它总是包含扩展名“.tmp”。如果它在字符串末尾包含 .tmp ,我是否可以选择该进程?在这种情况下,我尝试选择的进程是“is-RI4E5.tmp”。我需要根据它最后包含扩展名“.tmp”来选择它。

 ProcessName    ProcessId IsActive  Handle Title                                                            Class                                
-----------    --------- --------  ------ -----                                                            -----                                
powershell_ise      8652     True  133330 Administrator: Windows PowerShell ISE                            HwndWrapper[PowerShell_ISE.exe;;cf...
is-RI4E5.tmp        6720    False  461306 Setup                                                            TApplication                         
explorer            5472    False  264168 VNC Server                                                       CabinetWClass                        
explorer            5472    False  985230 vnc - Search Results in SharedFiles (\\cas-fs1) (S:)             CabinetWClass                        
chrome              7636    False  329808 Central Arizona Supply - Home - Google Chrome                    Chrome_WidgetWin_1                   
cmd                 7592    False  264396 Administrator: C:\Windows\system32\cmd.exe                       ConsoleWindowClass                   
EXCEL               8860    False 1116322 Microsoft Excel - CAS Network IP Directory  [Compatibility Mode] XLMAIN                               
EXCEL               8860    False  395668 Printers                                                         MS-SDIb                              
VNCScan             9104    False  198140 Bozteck VENM Console 2013.6.3.230                                WindowsForms10.Window.8.app.0.378734a
EXCEL               8860    False  461030 CAS Network IP Directory  [Compatibility Mode]                   MS-SDIb         
4

1 回答 1

0

我建议在启动 WASP 进程之前收集所有进程名称。启动后,再次收集所有进程并使用 Compare-Object 区分两个集合。当多个进程具有“.tmp”后缀时,这将减少误报的机会。

$beforeWasp = Get-Process | Where-Object { $_.Name -Like '*.tmp' }

# start process here

$afterWasp = Get-Process | Where-Object { $_.Name -Like '*.tmp' }

Compare-Object -ReferenceObject $beforeWasp -DifferenceObject $afterWasp -PassThru
于 2016-02-16T17:33:56.673 回答