System.Diagnostics.Process.Start не будет работать при запуске при наличии учетной записи пользователя - PullRequest
0 голосов
/ 31 января 2011

У меня есть приложение vb.net 2008, которое должно запускаться при запуске.После выполнения определенных условий ПК должен перезагрузиться.Ниже приведен код ошибки:

System.Diagnostics.Process.Start("shutdown", "-r -t 00 -f", myUsername, myPassword, myDomain)

myUsername и myDomain являются строками, а myPassword - SecureString.Приложение работает правильно, когда выполняется вручную, но выдает следующую ошибку при запуске из запуска (путем размещения в папке автозагрузки или путем добавления в реестр):

Недопустимое имя каталога

Кроме того, программа работает должным образом, когда пропущены последние 3 аргумента, и у пользователя есть необходимые права.

Как принудительно перезапустить, используя определенные, альтернативные учетные данные пользователя при запуске?

1 Ответ

1 голос
/ 31 января 2011

Вы запускаете процесс с текущим рабочим каталогом по умолчанию. Это может вызвать проблемы, если этот каталог недопустим для указанного вами пользователя. Вместо этого используйте перегрузку Process.Start (ProcessStartInfo). Установите ProcessStartInfo.WorkingDirectory в каталог, который подходит для любого пользователя. Как c: \

Подробнее в этой статье KB .

...