Запись в контекстном меню скрипта PowerShell для запуска скрипта от имени администратора без выхода
400
jippyjoe4
Я действительно близок к этому. По сути, я хочу создать пункт контекстного меню для файлов .ps1, которые запускают скрипт от имени администратора, не выходя из окна консоли после запуска. Итак, я могу создать ключ:
И в этом ключе у меня есть кое-что, что почти работает, но не совсем. Таким образом, значение по умолчанию вышеупомянутого командного ключа:
Powershell.exe -WindowStyle Hidden -Command "& "
Но есть одна большая проблема с этим методом; когда сценарий завершается, он возвращает меня в каталог «C: \ Windows \ system32» вместо каталога самого сценария. Смотрите мое изображение ниже для уточнения:
Кроме того, когда я использую пункт контекстного меню, я создал его для запуска сценариев, содержащих такие строки, как:
$settingsfiles = Get-ChildItem -Recurse $scanPath
Вместо того, чтобы повторяться через все папки, локальные для сценария, который я только что запустил, он пытается выполнить повторение через все папки в «C: \ Windows \ system32!» Очевидно, что это нежелательно. Итак, вот мой вопрос:
Что мне нужно изменить в значении по умолчанию командной клавиши, чтобы скрипт PowerShell работал так, как если бы он запускался из того же каталога, что и скрипт?
1 ответ на вопрос
1
postanote
Попробуйте использовать ... командлет Set-Location или Push-Location или блок scritpblock ...
Скрипт Split-Path $: MyInvocation.MyCommand.Path
... в вашей последней команде.
Или просто создайте новый ярлык, настроенный так, как вы хотите, и используйте контекстное меню SendTo, не требуя взлома.
Посмотрите эту ветку, демонстрирующую подход SendTo для PowerShell.
Синтаксис - это та часть, которая сбивает меня с толку командой set-location. Как бы я включил это в запись реестра, все еще передавая файл в powershell, чтобы запустить оригинальный скрипт? Мне в основном нужно использовать -command и -file одновременно, но я не уверен, что это работает. Можете привести пример?
jippyjoe4 6 лет назад
0
Хорошо, я понял это после того, как возился слишком долго. Цитаты убивали меня. Вот какая строка должна быть: Powershell.exe -WindowStyle Hidden -Command "& "" '-verb runAs} "
jippyjoe4 6 лет назад
0
Рад, что все получилось. Yeppers, цитирование может быть PTA. Тем не менее, быстрый C & P в вашей линии в ISE или VSCode, все еще показывает синтаксические ошибки. Вы знаете, вся эта цветовая кодировка кричит от редактора. Все, начиная с этого [% 1 "" "'-parent); &' '" ""% 1 "" "' '}" "-verb runAs}"], отображает неправильные цвета (фиолетовый против темно-красного) до быть в командном блоке. Итак, немного странно, что он работает как есть. Тем не менее, если это так, это все, что имеет значение. Мне придется поиграть с этим, чтобы сказать наверняка.
postanote 6 лет назад
0