Я хотел бы позвонить Process.Start
с некоторым пользователем с ограниченными правами, потому что запускаемая программа может содержать вредоносный код.Здесь я думаю, что Everyone
должно быть правильным, чтобы попытаться сначала, и я думаю, что он не имеет никакого связанного пароля.
Однако следующий код будет жаловаться на неверное имя пользователя или пароль (конечно, имя пользователя существует, поэтому похоже, что оно касается пароля):
var startInfo = new ProcessStartInfo("some_exe");
startInfo.WorkingDirectory = Environment.CurrentDirectory;
startInfo.UserName = "Everyone";
startInfo.Domain = "mydomain";
startInfo.UseShellExecute = false;
Process.Start(startInfo);
Если это невозможно, мне нужно каким-то образом динамически создать учетную запись пользователя с ограниченными правами с полнымимя пользователя / пароль для Process.Start
.
. В ядре .NET мы не можем использовать AppDomain
для создания изолированной программной среды. Единственный рекомендуемый здесь подход - попытаться ветвить другой процесс с меньшими или ограниченными привилегиями.