System.diagnostics.process.Start не будет работать в запуске при предоставлении учетной записи пользователя

StackOverflow https://stackoverflow.com/questions/4854529

Вопрос

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

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

Myusername и MyDomain - оба струны, в то время как MyPassword - это защита. Приложение работает должным образом при выполнении вручную, но дайте следующую ошибку при выполнении от запуска (либо поместив в папку запуска, либо добавив в реестр):

Имя каталога недействительна

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

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

Это было полезно?

Решение

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

Больше информации в этом КБ статья.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top