我正在尝试编写一些代码,这些代码需要能够在已加入域的系统和未加入域的系统上运行。最大的需求之一是能够查看谁已登录或已登录系统。我已经看到/使用了NetSessionEnum的传统PInvoke。
所以我的问题如下:
1)是否可以通过c#代码模拟runas / netonly,以使NetSessionEnum在通过命令行提供的凭据下运行(即:.exe -d -u -p?
2)还是可以通过某种方式设置模拟以执行相同的操作?我有一个基本的模拟集,但我认为它需要扩展以在非域联接系统上工作。
private static extern int NetSessionEnum(
[MarshalAs(UnmanagedType.LPWStr)] string ServerName,
[MarshalAs(UnmanagedType.LPWStr)] string UncClientName,
[MarshalAs(UnmanagedType.LPWStr)] string UserName,
int Level,
out IntPtr bufptr,
int prefmaxlen,
out int entriesread,
out int totalentries,
ref IntPtr resume_handle);