У меня есть следующий код, где я запускаю процесс, используя другие Windows учетные данные, предоставленные во внешнем источнике.
Код:
public static void ImpersonateProcess_WithProfile(string appPath, string domain,
string user, string password)
{
ImpersonateProcess(appPath, domain, user, password, LogonFlags.LOGON_WITH_PROFILE);
}
private static void ImpersonateProcess(string appPath, string domain, string user,
string password, LogonFlags lf)
{
StartupInfo si = new StartupInfo();
si.cb = Marshal.SizeOf(typeof(StartupInfo));
ProcessInfo pi = new ProcessInfo();
if (CreateProcessWithLogonW(user, domain, password,
lf,
appPath, null,
0, IntPtr.Zero, null,
ref si, out pi))
{
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
else
{
throw new System.ComponentModel.Win32Exception(Marshal.GetLastWin32Error());
}
}
Эта программа отлично работает для меня в версия windows 7,8 и 10 ..
Но в windows 10 версии 1703 я имею дело с ошибкой по формату даты (указана ошибка, возникшая в результате проверки запущенного процесса) .. I Не понимаю, почему это происходит только с этой версией.
Ошибка возникает из-за того, что запущенный процесс ожидает, что формат даты будет dd / MM / yyyy. Но я повторяю, это происходит только со мной только в этой версии Windows 10 и имеет одинаковый формат даты во всех версиях, которые я пробовал.