sách gpt4 ai đã đi

windows - 如何找出哪个用户以编程方式将打印命令发送到 windows/windows 服务器?

In lại 作者:可可西里 更新时间:2023-11-01 11:40:32 30 4
mua khóa gpt4 Nike

我有一个 Windows 网络 (peer-2-peer) 以及 Active Directory,我需要记录向服务器发送任何类型打印的用户的名称。我想编写一个程序来记录他们的用户名和/或他们各自的 IP,我熟悉 c#.net 和 c++,但我没有找到任何关于如何解决我的问题的线索。

有没有什么方法可以借助 WMI 来捕捉他们的名字,或者应该用 API 弄脏我的手(但我不知道哪个 API)?

问候。

1 Câu trả lời

这些功能在 Spooler API 下公开.

EnumJobs将枚举给定打印机的所有当前作业。它将返回 JOB_INFO_1结构,其中包括与给定打印作业关联的用户名:

typedef struct _JOB_INFO_1 {
DWORD JobId;
LPTSTR pPrinterName;
LPTSTR pMachineName;
LPTSTR pUserName;
LPTSTR pDocument;
LPTSTR pDatatype;
LPTSTR pStatus;
DWORD Status;
DWORD Priority;
DWORD Position;
DWORD TotalPages;
DWORD PagesPrinted;
SYSTEMTIME Submitted;
}JOB_INFO_1, *PJOB_INFO_1;

如果您更喜欢 WMI,可以将 wmic.exe/node 开关(或您喜欢的变体)和 Win32_PrintJob 一起使用类(class)。大致:

c:\> wmic /node 10.0.0.1 
wmic> SELECT * FROM Win32_PrintJob

...将返回一个结构,其中包含所选服务器的所有打印作业信息。您可以根据需要使用 WHERE 子句进行过滤。

关于windows - 如何找出哪个用户以编程方式将打印命令发送到 windows/windows 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2074311/

30 4 0
可可西里
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com