Довольно простой вопрос, на который мне трудно найти ответ.
Ранее serverfault помог мне найти способ автоматизации обновлений Windows без использования WSUS. Он работает фантастически, но чтобы запустить его по сети, сначала нужно подключить общий диск. Это довольно простая XP, поскольку вы просто монтируете диск и запускаете программу обновления.
На Vista и W7, однако, все это должно быть сделано с повышенными привилегиями для правильной работы. Учетная запись UAC не может видеть сетевые диски, подключенные обычным пользователем, поэтому, чтобы все заработало, я должен смонтировать общий ресурс через net use
расширенную оболочку. Я хотел бы автоматизировать монтирование этого ресурса и запуск программы обновления через простой файл .bat.
Возможно, я мог бы просто поручить всем щелкнуть правой кнопкой мыши «Запуск от имени администратора» в файле .bat, но я хотел бы сделать все как можно более простым и сделать так, чтобы .bat автоматически предлагал пользователю повысить свои привилегии.
Поскольку эти компьютеры не принадлежат нам, я не могу рассчитывать на то, что будет установлен Powershell, так что это исключает любые решения в этом направлении и в значительной степени должно полагаться на то, что будет включено в установку RTM Vista. Я надеюсь, что в основном мне не хватает чего-то очевидного здесь. :)
источник
elevate.cmd
иelevate.vbs
Если вы готовы перейти на PowerShell, это сделать гораздо проще. Это мой "
Elevate-Process.ps1
" скрипт (сsu
псевдонимом в моем профиле):Обнаружение повышения также может быть сделано в PSH (таким образом, вы можете проверить повышение, а затем повысить при необходимости):
источник
Вот пример сценария, который я придумал, надеюсь, он поможет другим. Это bat-файл, который запрашивает у пользователя разрешение и затем сам расширяется. Он передает некоторый vbscript, который вызывает приглашение UAC, а затем повторно запускает файл bat с повышенными правами ... http://jagaroth.livejournal.com/63875.html
источник
Это то, что вам нужно: http://sites.google.com/site/eneerge/home/BatchGotAdmin
источник
FusionInventory.org - это решение с открытым исходным кодом, в основном используемое небольшими ремонтными мастерскими. Это может быть как ваш персональный удаленно управляемый Windows Updater.
источник
Ни одно из этих решений не работает для файла .cmd, который должен знать параметры командной строки. Поместите это в самом начале файла .cmd, и все ваши проблемы будут решены. (Это для будущих людей, просматривающих эту ветку [Я проверял это на Windows XP, 7 Vista и 8; x86 + x64]):
источник
Как сказал @emilio, этот сценарий в порядке, но он не принимает никаких аргументов. Здесь модифицированный скрипт для совместимости с аргументами:
источник
Если вы не можете рассчитывать на установку Powershell, вы можете использовать это решение в StackOverflow:
автоматическое повышение с UAC с использованием командного файла
Он не требует установки и запускается из коробки. Если вам нужно сохранить аргументы командной строки, рассмотрите это обновление.
источник
Вы пробовали
runas
команду?источник