Я пытаюсь написать некоторый код, который должен работать как на присоединенных к домену, так и на подключенных к домену системах.Одним из самых больших требований является возможность видеть, кто вошел в систему или вошел в систему.Я видел / использовал традиционный PInvoke для NetSessionEnum.
Итак, у меня есть следующие вопросы:
1) Есть ли способ эмулировать runas / netonly через код c #, чтобы сделать 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);