void () { List<ProcessInfo> infos = ProcessListUtil.parseWMICOutput( """ Caption CommandLine ExecutablePath ParentProcessId ProcessId \s smss.exe 0 304 \s sihost.exe sihost.exe 304 3052 \s taskhostw.exe taskhostw.exe {222A245B-E637-4AE9-A93F-A59CA119A75E} 0 3068 \s explorer.exe C:\\WINDOWS\\Explorer.EXE C:\\WINDOWS\\Explorer.EXE 3068 3164 \s TPAutoConnect.exe TPAutoConnect.exe -q -i vmware -a COM1 -F 30 3164 3336 \s conhost.exe \\??\\C:\\WINDOWS\\system32\\conhost.exe 0x4 \\??\\C:\\WINDOWS\\system32\\conhost.exe 0 3348 \s """, Map.of( 304L, "user1", 3052L, "user2", 3068L, "user1", 3164L, "user3" ), null); assertOrderedEquals(infos, new ProcessInfo(304, "smss.exe", "smss.exe", "", null, 0, "user1", ThreeState.UNSURE), new ProcessInfo(3052, "sihost.exe", "sihost.exe", "", null, 304, "user2", ThreeState.UNSURE), new ProcessInfo(3068, "taskhostw.exe {222A245B-E637-4AE9-A93F-A59CA119A75E}", "taskhostw.exe", "{222A245B-E637-4AE9-A93F-A59CA119A75E}", null, 0, "user1", ThreeState.UNSURE), new ProcessInfo(3164, "C:\\WINDOWS\\Explorer.EXE", "explorer.exe", "", "C:\\WINDOWS\\Explorer.EXE", 3068, "user3", ThreeState.UNSURE), new ProcessInfo(3336, "TPAutoConnect.exe -q -i vmware -a COM1 -F 30", "TPAutoConnect.exe", "-q -i vmware -a COM1 -F 30", null, 3164, null, ThreeState.UNSURE), new ProcessInfo(3348, "\\??\\C:\\WINDOWS\\system32\\conhost.exe 0x4", "conhost.exe", "0x4", "\\??\\C:\\WINDOWS\\system32\\conhost.exe", 0, null, ThreeState.UNSURE)); }