Командная строка Windows для запуска от имени текущего пользователя, вошедшего в систему после запуска командного / пакетного сценария от имени другого пользователя в том же сценарии?

1067
mettle

У меня есть пакетный скрипт Windows, который автоматически запускается при входе в систему как определенный пользователь-администратор (а не тот же пользователь, который вошел в систему) для всех стандартных пользователей.

В том же сценарии мне нужно выполнить проверку их членства в группе (путем вызова exe-файла с определенной группой в качестве параметра) для текущего пользователя, вошедшего в систему, то есть пользователя, который вошел в окна, которые отображает оболочка сценария и является бежать из / в .

Затем, в зависимости от результата вышеупомянутой проверки, продолжайте обрабатывать тот же сценарий, используя права первоначального администратора, то есть установить программное обеспечение.

Есть ли способ сделать это, не запрашивая учетные данные, просто через командную строку или, возможно, даже PowerShell ( вызывается из скрипта) ?

Я ищу абсолютно неинтерактивный опыт для пользователя, так как он должен применяться до прибл. 9000 пользователей.

Любая помощь будет оценена. Приветствия.

1
См. [Аргумент командной строки для запуска в качестве другого пользователя в Windows?] (Http://superuser.com/questions/232899/command-line-argument-for-running-as-another-user-on-windows?rq=1 ) Ƭᴇcʜιᴇ007 7 лет назад 0

1 ответ на вопрос

0
Slipeer

RunasУ команды есть ключ /savedсred, но под каждым новым пользователем вам все равно нужно ввести пароль (один раз).

Есть способ в PowerShell:

  1. Используйте ConvertTo-SecureStrin g для шифрования пароля
  2. Создать объект учетных данных
  3. Запустить приложение с помощью Start-Process

$secstring = ConvertTo-SecureString -String $password -AsPlainText -Force

$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,$secstring)

Start-Process <filefullpath> -WorkingDirectory <work dir> -Credential ($credentials)

Но защищенную строку, зашифрованную на компьютере, нельзя расшифровать на другом ( если вы не шифруете с помощью известного ключа с параметром -Key ). Фактически, вы должны поместить учетные данные в тело вашего скрипта.