Краткий ответ: НЕ ДЕЛАЙТЕ ЭТОГО. Вы только собираетесь открыть свою систему ОГРОМНО, и я имею в виду ОГРОМНУЮ уязвимость системы безопасности: как только вы /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", поэтому вам всегда нужно будет указывать пароль. Запланированное задание будет выполняться с учетными данными, с которыми вы его настроили, даже в домашних выпусках.
Сноска. Я упоминаю об этом, потому что обычно удаляю много путей к программам из системной переменной PATH и добавляю «C:\sys\admin; C:\sys\bat; C:\sys\bin» к системному пути. Затем в папках «C:\sys *» (очевидно, вам нужно их создать), я создаю отдельные пакетные / сценарии / ярлыки, которые вызывают реальные программы или запланированные задачи. Таким образом, я полностью контролирую, кому, что, когда, где и как разрешено / запрещено запускать различные программы. Это также помогает предотвратить глупые ошибки. Одна ошибка, с которой я действительно столкнулся, была, когда один из моих конечных пользователей пытался преобразовать файл и выполнил команду "convert", не зная, что они делали. Поскольку в Windows уже есть команда convert, которая преобразует FAT в NTFS, все, что им удалось сделать, - это преобразовать свою файловую систему. Им повезло, и это все еще работало, так как их компьютеру было все равно, была ли файловая система FAT или NTFS. Но теперь у меня всегда есть файл C:\sys\bat\convert.bat, который шлепает их по руке и говорит им поговорить со мной, прежде чем пытаться выполнить эту команду. ;-) Я делаю то же самое со многими другими потенциально опасными или опытными командами, которые могут серьезно вызвать проблемы при неправильном использовании / неправильном наборе.
Удачи!