Ошибка программы runas не удалось получить пароль пользователя

Обновлено: 06.07.2024

Runas, .bat и server 2k8
Собственно такая ситуация, нужно запустить программу требующую права админа с учетки имеющие права.

Как запустить runas в батнике без ввода пароля?
я заношу в батнике в буфер пароль(пароль 1), но команда runas не видит его echo 1 | runas.

Если ОС — Windows XP, то выполнить один BAT-файл, а если ОС — Windows 7, — другой BAT-файл
Доброго времени. Кто будет добр и подскажет решение. Надо чтобы bat определял версию ОС (XP или 7).

Runas не работает под системной учётной записью
здравствуйте. проблема такая: если в запущенной под системной уч. записью командной строке.

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

Добавлено через 7 минут
Если речь идет об удаленном запуске скриптов, я бы наверное выбрал либо PSEXEC, либо Powershell(Invoke-command), либо планировщик (SCHTASKS)

v_svitere,
я правильно понял всё равно будет происходить

Думаю не совсем.

При использовании RUNAS, вам все равно нужно будет ввести пароль хотя бы 1 раз (при использовании ключа \Savecred)
На вскидку не помню, как это работает при запуске на удаленных машинах. Вероятно, нужно будет сохранять их для каждого подключения.

Вариант с RUNAS мне вообще не нравится.

Элевация прав запуска BAT-файла (отображается диалог контроля учетных записей UAC)

Нет, это окно подтверждения элевации UAC.

Я запускал скрипты при помощи PSEXEC, и не испытывал явных неудобств, при таком подходе вводить пароль необязательно, а можно указать в явном виде аргументом.
Единственное, в этом случае он будет виден в явном виде, это наверное, не так хорошо

Подключаем сетевой диск, скачиваем программу, отключаем диск, устанавливаем программу
вот только на установку нужны администраторские права.
поэтому через runas пытался установить под Администратором, но пароль не получается подсунуть.

Пытался сейчас через планировщик подсунуть выполнение своего батника, но..

Ошибка: Отказано в доступе

Добавлено через 2 минуты
v_svitere,

выходит окно о подтверждении и вводе пароля администратора для продолжения

При таком подходе SCHTASKS должен запускаться с правами администратора
По гибридному варианту с VBS я вам ничего не подскажу, по VBS знаний нет.

Я правильно понимаю, что запуск скрипта должен быть с одного ПК на другие удаленные?

Я правильно понимаю, что запуск скрипта должен быть с одного ПК на другие удаленные?

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

Добавлено через 5 минут
v_svitere,

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

Так себе вариант. Врядли так теперь вообще кто-то делает, с учетом того, что теперь столько средств для удаленного запуска скриптов

В любом случае, я бы предложил вам уйти от решения на BAT, а реализовать, например через powershell.
Написать один общий на всех скрипт, в котором можно часть кода (установка программы) запустить в контексте пользователя "Администратор", в powershell это можно сделать при помощи командлета start-process и ключом -Runas, которому можно передать credential в неинтерактивном режиме.

Утилита из Sysinternals - стороннее ПО

Добавлено через 14 минут

В любом случае, я бы предложил вам уйти от решения на BAT

Или загибридить BAT и POSH, если нужен именно BAT-файл

Добавлено через 4 минуты
Phil,

Можете прокомментировать, если Вас не затруднит, что делает каждая строка

Добавлено через 3 минуты
v_svitere, и ссылку дать на какой-нибудь пример скрипта из powershell похожего на выполнение моей задачи, попробую разобраться,

Просто этот скрипт ещё надо будет запустить и т.д.

Пока единственный вариант всё это провернуть, который мне кажется самым возможным.

Все пользователи 1с заходят со своих портативных ноутбуков в 1с и запускают внутреннюю обработку,
в ней сидит bat файл, он сохраняется на рабочий стол, 1с закрывается, файл запускается.
Как-то так,на большее фантазии не хватило)

Здесь, средствами CMD запускается powershell. Создается ScriptBlock(Набор команд Powershell).

Конвертируем пароль в защищенную строку.
Создаем объект Credential (Аутентификационные данные)
Запускаем процесс установки, с ключом -Runas , которому передаем ранее созданный объект

Добавлено через 13 минут
Phil,

Все пользователи 1с заходят со своих портативных ноутбуков в 1с и запускают внутреннюю обработку,
в ней сидит bat файл, он сохраняется на рабочий стол, 1с закрывается, файл запускается.
Как-то так,на большее фантазии не хватило)

Ранее предложенный вариант, вас устраивает.

Наверное, момент с Bat-файлом вы можете опустить, сразу сформировав powershell-скрипт (PS1-файл)
Переписываете вот эту часть на powershell
Подключаем сетевой диск, скачиваем программу, отключаем диск
А установку программы делаете как я вам показал в предыдущем посте, через start-process -runas

У меня есть скрипт, в котором я использовал runas /savecred . Первый раз он спросил у меня пароль. Позже он не спрашивал меня, и он работал нормально. Но если другой пользователь входит в систему на том же сервере и запускает тот же скрипт, он просит его ввести пароль.

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

Я проверил Пуск> Выполнить> control userpasswords2> Дополнительно> Управление паролями. Это показывает сохраненное имя пользователя, только когда я вошел в систему. Как мы можем хранить одно и то же имя пользователя и пароль для всех на одном компьютере?

Краткий ответ: НЕ ДЕЛАЙТЕ ЭТОГО. Вы только собираетесь открыть свою систему ОГРОМНО, и я имею в виду ОГРОМНУЮ уязвимость системы безопасности: как только вы /savecred, вы сохраняете пароль администратора в профиле пользователей, НЕОБХОДИМО, чтобы они могли использовать его в любое время, в любом случае им нравится. Это означает, что после сохранения они могут запустить окно консоли (приглашение CMD), ввести « runas /savecred /user: administrator cmd.exe » и немедленно запустить новую командную консоль с полными правами администратора, чтобы делать все, что они захотят. Вы, вероятно, не хотите, чтобы они могли это сделать!

Я думаю, что вы действительно хотите, чтобы любой пользователь мог запускать определенную команду, не запрашивая повышенные (администраторские) разрешения и не вводя пароль администратора. Для этого в современных операционных системах Microsoft (tm) Windows есть безопасное и работающее решение: настройте программу на запуск по расписанию с конкретными правами доступа, которые необходимы программе. Вы можете создать учетную запись пользователя специально для этой программы, или вы можете просто использовать учетные данные администратора / системы для этой и только для этой программы. Вот как..

Во-первых, вам нужно настроить запланированное задание, как и любое другое запланированное задание. Вы должны назначить ей определенную командную строку (поэтому, если вам нужно передать параметры задаче, вам придется использовать скриптовые или пакетные файлы, чтобы создать "файл параметров" для передачи параметров в программу, или использовать другой метод сделать это .. Это решение не идеально!). Затем вы можете назначить ему все необходимые вам права безопасности. Назовите это как-нибудь подходящее - и избегайте использования пробелов в имени, чтобы сделать его простым; Мы собираемся использовать это имя для запуска программы, когда ваш пользователь должен ее запустить. Кроме того, не планируйте фактическое время для запуска задачи, так как мы будем вызывать ее для запуска по требованию через мгновение, а не всегда в определенное время.

Как только задача будет создана, следующий вопрос будет «Как мне ее запустить ?«Ну, вы либо создаете ярлык, либо файл пакета / сценария, который будет вызывать запланированное задание для запуска:« schtasks / run / tn name-you-дали-the-task-выше ». Таким образом, если вы создали задачу с именем "AutoAddLocalPrinters" (например, обычную задачу администратора), вы должны создать командный файл или ярлык для запуска команды « schtasks / run / tn AutoAddLocalPrinters » (если вы назвали ее чем-то с помощью пробелы, вы должны будете поместить все имя в кавычки - вот почему я избегаю пробелов в именах).

Обратите внимание, что для настройки запланированного задания требуется только право администратора или пароль. Простое выполнение задачи после ее установки не требует пароля, не требует его и, что самое важное, не позволяет глобально и вслепую сохранять пароль администратора в профиле пользователя. Он сохраняется как часть запланированной задачи, которая влияет только на эту задачу и только на эту задачу, и не позволяет пользователю изменять или изменять ее, а также запускать новую консольную команду с повышенными правами и т.д.

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

Наконец, еще одно преимущество (или недостаток . ) в том, чтобы делать это таким образом: он работает практически во всех выпусках Windows, где вы можете планировать задачи и запускать команду "schtasks". Например, я понимаю, что выпуски Windows Home в любом случае игнорируют параметр /savecred "runas", поэтому вам всегда нужно будет указывать пароль. Запланированное задание будет выполняться с учетными данными, с которыми вы его настроили, даже в домашних выпусках.

В этой статье приводится ряд обходных способов решения проблемы, в которой после обновления Windows Server нельзя использовать команду, параметр Run as Administrator или Run в качестве другого runas пользовательского параметра.

Применяется к: Windows Server 2012 R2
Исходный номер КБ: 977513

Симптомы

Рассмотрим следующий сценарий.

Причина

Список управления дискреционным доступом (DACL) для службы Secondary Logon неправильно задаваем при обновлении Windows Server. Эта проблема не позволяет обычному пользователю запускать эту службу и запускать приложение в качестве другого пользователя.

Обход 1. Использование Sc.exe командной подсказок

Вы можете использовать командную Sc.exe для настройки безопасности по умолчанию после обновления сервера.

Прежде чем запускать эти команды, необходимо войти в систему в качестве администратора.

Для этого выполните указанные ниже действия.

Откройте окно командной строки.

В командной строке введите следующую команду, а затем нажмите клавишу ВВОД:

В командной строке введите следующую команду, а затем нажмите клавишу ВВОД:

Эта команда завернута для читаемости.

Закройте окно командной строки.

Попробуйте использовать одну из следующих функций:

  • runas команда
  • Запуск в качестве параметра Администратор
  • Запуск в качестве другого пользовательского параметра

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

Обходное решение 2. Использование групповой политики

Консоль управления групповой политикой можно настроить политику на основе домена, которая задает безопасность конфигурации по умолчанию после обновления сервера. Для этого обхода необходимо создать новый объект групповой политики (GPO). И его следует связывать так, чтобы новый GPO применялся только к затронутым компьютерам.

Для этого выполните указанные ниже действия.

Изменение групповой политики в консоли управления групповой политикой.

Найдите политику: Конфигурация компьютера\Политики\Windows Параметры\Security Параметры\System Services.

Откройте службу Secondary Logon.

Выберите поле Определение этого параметра политики, а затем выберите Включено.

Установите режим запуска службы в ручном режиме.

Расширйте узел безопасности, чтобы убедиться, что задаются следующие свойства и объекты.

Выберите ОК, чтобы применить изменения безопасности.

Выберите ОК для применения изменений групповой политики.

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

Попробуйте использовать одну из следующих функций:

  • runas команда
  • Запуск в качестве параметра Администратор
  • Запуск в качестве другого пользовательского параметра

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

Дополнительная информация

Дополнительные сведения о команде runas можно получить на следующем веб-сайте Microsoft TechNet:

Дополнительные сведения об использовании консоли управления групповой политикой можно найти на следующем веб-сайте Microsoft TechNet:

date

03.08.2020

directory

Windows 10, Windows Server 2016

comments

комментария 42

Любой пользователь Windows может запустить в своей сессии программы от имени другого пользователя (Run As). Благодаря этому можно выполнить скрипт (.bat, .cmd, .vbs, .ps1), исполняемый .exe файл или запустить установку приложения (.msi, .cab) с полномочиями другого, как правило привилегированного, пользователя .

Например, вы можете использовать RunAs для установки программ или запуска MMC оснасток с правами администратора непосредственно в сессии непривилегированного пользователя. Также возможность запуска программ “от имени” может быть полезна, когда приложение настроено под другим пользователем (и соответственно хранит свои настройки в чужом профиле, к которому у данного пользователя нет прав доступа), а его нужно запустить с теми же настройками в сессии другого пользователя.

За возможность запуска программ от имени другого пользователя в Windows отвечает служба Вторичный вход в систему (Secondary Log-on). Если эта служба остановлена все описанные методы runas работать не будут. ВЫ можете проверить, что служба запущена с помощью следующей команды PowerShell:

windows - служба вторичного входа в систему нужна для запуска от имени

В Windows 10 есть несколько способов запустить программу или процесс от имени другого пользователя.

Запуск программы от имени другого пользователя из Проводника Windows (File Explorer)

Самый простой способ запустить программу из-под другого пользователя – воспользоваться графическим интерфейсом Проводника Windows (File Explorer). Просто найдите нужно приложение (или ярлык), зажмите клавишу Shift и щелкните по нему правой кнопкой мыши. Выберите пункт контекстного меню «Запуск от имени другого пользователя» (Run as different user).

Примечание. Если пункт меню «Запуск от имени другого пользователя» отсутствует, см. следующий раздел.

Запуск от имени другого пользователя - конекстное меню

В появившемся окне нужно указать имя и пароль пользователя, под чьей учетной записью нужно запустить программу и нажать кнопку ОК.

Примечание. Если нужно указать доменного пользователя, используется один из следующий форматов имени: UserName@DomainName или DomainName\UserName .

runas different user

Важно. Запуск программ от имени другого пользователя возможен, если для него задан пароль. Использовать Runas для пользователя с пустым паролем не получится.

Откройте Диспетчер задач и убедитесь, что приложение запущенно под указанным пользователем.


Включить пункт “Запуск от имени другого пользователя” в контекстном меню проводника Windows

Если в контекстном меню проводника Windows отсутствует пункт Запуск от имени другого пользователя (Run as different user), откройте редактор локальных групповых политик (gpedit.msc) и убедитесь, что в разделе Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Пользовательский интерфейс учетных данных (Computer Configuration -> Administrative Templates -> Windows Components -> Credential User Interface) отключена (Не задана) политика Запрашивать достоверный путь для входа в учетную запись (Require trusted path for credential entry)

Запрашивать достоверный путь для входа в учетную запись (Require trusted path for credential entry) - политика

Команда Runas – запуск программ от имени другого пользователя из командной строки

В Windows есть консольная утилита runas.exe, которая используется для запуска приложений от имени другого пользователя из командной строки. Также команда runas позволяет сохранить пароль пользователя в Windows Credential Manager, чтобы его не приходилось набирать каждый раз.

Откройте командную строку (или окно Выполнить, нажав сочетание клавиш Win+R). Для запуска Блокнота с правами учетной записи admininstrator выполните команду:

runas /user:administrator “C:\Windows\cmd.exe”

Совет. Если имя пользователя содержит пробелы, его нужно взять в кавычки:

runas /user:”user test” notepad.exe

runas /user:admin

В отрывшемся окне появится приглашение «Введите пароль для admin», где нужно набрать пароль и нажать Enter.

Введите пароль для admin

Должно открыться ваше приложение. В моем случае это cmd. В заголовке окна указано Запущено от имени CompName\username :

cmd.exe заголовок запущено от другого имени

Можно, например, открыть панель управления под другим пользователем:

runas /user:admin control

Для запуска программы из-под доменного пользователя нужно использовать формат имени UserName@DomainName или DomainName\UserName . Например, чтобы с помощью блокнота открыть текстовый файл от имени пользователя домена CORP, используйте команду:

runas /user:corp\server_admin “C:\Windows\notepad.exe C:\tmp\2871997x64.txt”


Иногда нужно запустить программу от имени доменного пользователя с компьютера, который не добавлен в домен AD. В этом случае нужно использовать такую команду (при условии, что в сетевых настройках вашего компьютера указан DNS сервер, который может отрезолвить этот домен):

runas /netonly /user:contoso\aaivanov cmd.exe

Если для запуска программы от другого пользователя не нужно загружать его профиль, используйте параметр /noprofile . При этом приложение запускается намного быстрее, но может вызвать некорректную работу программ, которые хранят данные в профиле пользователя.

Запуск программ от имени другого пользователя без ввода пароля

Вы можете сохранить пароль пользователя, который вы вводите. Для этого используется параметр /savecred.

runas /user:admin /savecred “C:\Windows\notepad.exe”

После указания пароля он сохранится в диспетчере паролей Windows.

сохраненные паролья runas в windows в диспетчере учетных данных

При следующем запуске команды runas под этим же пользователем с ключом /savecred Windows автоматически получит сохраненный пароль из Credential Manager, а не будет запрашивать его повторно.

Чтобы вывести список всех пользователей, для которых сохранены пароли, используется команда:

runas /user:admin /savecred - сохранние пароля в менеджере паролей

Однако использование параметра /savecred не безопасно, т.к. пользователь, в чьем профиле сохранен чужой пароль может использовать его для запуска любой команды под данными привилегиями, или даже сменить чужой пароль. Кроме того, сохраненные пароли из Credential Manager можно легко украсть, поэтом лучше запретить использование сохраненных паролей (а тем более нельзя сохранять пароль привилегированной административной учетной записи).

Примечание. Кроме того, ключ /savecred не работает в Home редакциях Windows.

Ярлык с запуском программы от имени другого пользователя

Можно создать на рабочем столе ярлык, позволяющий запустить программу от имени другого пользователя. Просто создайте новый ярлык, в окне с адресом объекта которого укажите команду runas с нужными параметрами.


При запуске такого ярлыка будет запрашиваться пароль пользователя.

Если дополнительно указать в ярлыке runas параметр /savecred , то пароль будет запрошен только один раз. После этого пароль будет сохранен в Credential Manager и автоматически подставляться при запуске ярлыка от имени другого пользователя без запроса пароля.

Такие ярлыки довольно часто используются для запуска программ, которые требуют прав администратора для запуска. Однако есть более безопасные способы запуска программы без прав администратора, или отключения запроса UAC для определенного приложения.

Запуск оснастки MMC консоли от имени другого пользователя

В некоторых случаях от имени другого пользователя нужно запустить одну из управляющих оснасток Windows. К примеру, если под другим пользователем нужно запустить оснастку Active Directory Users and Computers из набора инструментов администрирования RSAT, можно воспользоваться такой командой.

runas.exe /user:DOMAINname\USER “cmd /c start \”\” mmc %SystemRoot%\system32\dsa.msc”

Аналогичным образом можно запустить любую другую оснастку (главное знать ее имя).

Как добавить пункт “Запуск от имени” для программ в меню Пуск?

По-умолчанию в Windows 10 у элементов меню Пуск (начального экрана) отсутствует возможность запуска приложений от имени другого пользователя. Чтобы добавить в контекстное меню пункт “Запуск от имени другого пользователя”, нужно включить политику Показывать команду «Запуск от имени другого пользователя» при запуске (Show “Run as different user” command onStart) в разделе редактора групповых политик (консоль gpedit.msc) Конфигурация пользователя ->Административные шаблоны -> Меню Пуск и панель задач (User Configuration -> Administrative Templates -> Start Menu and Taskbar).

включить политику Показывать команду «Запуск от имени другого пользователя» при запуске

Либо, если редактор gpedit.msc отсутствует, создать в ветке реестра HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer ключ типа DWORD с именем ShowRunasDifferentuserinStart и значением 1.
New-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\CurrentVersion\Explorer" -Name ShowRunasDifferentuserinStart -Value 1 -PropertyType DWORD -Force

ShowRunasDifferentuserinStart - реестр

Осталось обновить групповые политики (gpupdate /force) и убедиться, что у программ в меню Пуск появится новое контекстное меню Дополнительно -> Запуск от имени другого пользователя.

Как установить программу без прав администратора

Для установки некоторого программного обеспечения требуется наличие прав администратора. Кроме этого и сам администратор может ставить ограничение на установку различного софта. В случае когда требуется выполнить инсталляцию, а разрешения на нее нет, предлагаем воспользоваться несколькими простыми методами, описанными ниже.

Устанавливаем программу без прав администратора

В сети интернет присутствует множество различного ПО, позволяющего обходить защиту и выполнять инсталляцию программы под видом обычного пользователя. Мы не рекомендуем их использовать особенно на рабочих компьютерах, так как это может нести за собой серьезные последствия. Мы же представим безопасные способы установки. Давайте рассмотрим их подробнее.

Способ 1: Выдача прав на папку с программой

Чаще всего права администратора софту требуются в том случае, когда будут проводиться действия с файлами в своей папке, например, на системном разделе жесткого диска. Владелец может предоставить полные права другим юзерам на определенные папки, что позволит выполнять дальнейшую установку под логином обычного пользователя. Делается это следующим образом:

  1. Войдите в систему через учетную запись администратора. Подробнее о том, как это сделать в Виндовс 7 читайте в нашей статье по ссылке ниже.

Свойства папки Windows 7

Настройки безопасности папки в Windows 7

Настройки безопасности папки в Windows 7

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

Способ 2: Запуск программы с учетной записи обычного пользователя

В тех случаях когда нет возможности попросить администратора предоставить права доступа, рекомендуем воспользоваться встроенным в Windows решением. С помощью утилиты через командную строку осуществляются все действия. От вас требуется только следовать инструкции:

    Откройте «Выполнить» нажатием горячей клавиши Win + R. Введите в строку поиска cmd и нажмите «ОК»

Запуск командной строки в Windows 7

runas /user:User_Name\administrator Program_Name.exe

Ввод команды в командную строку Windows 7

Способ 3: Использование портативной версии программы

Некоторое ПО имеет портативную версию, не требующую установки. Вам будет достаточно скачать ее с официального сайта разработчика и запустить. Выполнить это можно очень просто:

  1. Перейдите на официальный сайт необходимой программы и откройте страницу загрузки.
  2. Начните загрузку файла с подписью «Portable».

Поиск портативной версии программы

Запуск портaтивной версии программы

Вы можете перекинуть файл софта на любое съемное устройство хранения информации и запускать его на разных компьютерах без прав администратора.

Сегодня мы рассмотрели несколько простых способов как установить и использовать различные программы без прав администратора. Все они не сложные, но требуют выполнения определенных действий. Мы же рекомендуем для установки софта просто войти в систему с учетной записи администратора, если это доступно. Подробнее об этом читайте в нашей статье по ссылке ниже.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: