2011-11-18 10 views
6

Tôi cần lấy vị trí chính xác của của tên quy trình mà công việc đã lên lịch đang thực thi. Tôi muốn sử dụng WMIC JOB (nếu bạn có bất kỳ gợi ý nào khác .. hãy cho tôi biết) để có được điều đó, nhưng tôi không biết CÁCH chính xác. Tôi đã thử một số biến thể nhưng không may mắn cho đến nay.Làm thế nào để sử dụng công việc wmic get/list trong CMD để lấy tên và vị trí của quá trình?

Tôi nên làm như thế nào?

+0

Tất nhiên tôi đã thử, đó chỉ là WMIC là chủ đề lớn và tôi không biết phải làm gì với chính xác. :) – ETL

Trả lời

5

Đây là thứ bắt đầu.

Lấy nhận dạng quá trình dịch vụ Schedule

wmic service where name='schedule' get ProcessId 
ProcessId 
288 

Lấy quá trình mà quá trình cha mẹ nhận dạng là Schedule dịch vụ

wmic process where ParentProcessId=288 

Sửa

Tôi không nghĩ rằng trong các công việc của hệ thống Microsoft là những gì bạn đang tìm kiếm:

Đối tượng công việc cho phép các nhóm quy trình được quản lý dưới dạng đơn vị. Đối tượng công việc là các đối tượng có thể đặt tên, có thể chia sẻ, có thể chia sẻ kiểm soát các thuộc tính của các quy trình được liên kết với chúng. Các thao tác được thực hiện trên một đối tượng công việc ảnh hưởng đến tất cả các tiến trình liên kết với đối tượng công việc. Ví dụ bao gồm việc thực thi các giới hạn như kích thước bộ làm việc và mức độ ưu tiên của quy trình hoặc chấm dứt tất cả các quy trình được liên kết với công việc.

Tôi nghĩ rằng bạn đang tìm kiếm quy trình.

Để trả lời câu hỏi của bạn, tôi tìm kiếm các quy trình do dịch vụ lịch biểu bắt đầu. Nếu bạn muốn vị trí chính xác, nó được cung cấp bởi các tài sản ExecutablePath.

wmic process where ParentProcessId=288 get ExecutablePath 
ExecutablePath 
C:\Windows\system32\wuauclt.exe 
+0

Nhận xét không cần thiết đã bị xóa. Các lệnh này có liên quan đến cách truy cập dịch vụ Lịch biểu, không liên quan đến vị trí của tên quy trình (+ tên quy trình). Tôi có thiếu cái gì không? Tại sao bạn sử dụng WMIC SERVICE/PROCESS chứ không phải JOB? Đó có phải là một phần của tất cả những điều này? Cảm ơn. – ETL

+0

Tôi sửa đổi câu trả lời của mình. – JPBlanc

+0

Tôi hiểu. Nhưng quan điểm của tôi là ** không cần thiết ** để tìm kiếm các quy trình được bắt đầu bởi dịch vụ lịch biểu. Ví dụ: nếu dịch vụ lịch biểu bị tắt, mã sẽ không tìm thấy tất cả những gì tôi cần. – ETL

5

Sau đây sẽ làm việc, mặc dù bạn chỉ cần "CommandLine" hoặc "ExecutablePath" - không được cả hai:

wmic process where "ProcessID=1111" get CommandLine, ExecutablePath 

Nó sẽ trở lại một cái gì đó như sau, cho thấy nơi chương trình cho PID 1111 đang chạy:

"C:\Program Files (x86)\Common Files\MyProgram\Agent\agent.exe" 
-1

WMIC có trợ giúp tiến bộ tích hợp, vì vậy bạn có thể tìm hiểu cú pháp của nó bằng cách sử dụng /? tại bất kỳ nơi nào

C:\WINDOWS\system32>wmic 
wmic:root\cli>/? 

[global switches] <command> 
Các vấn đề liên quan