Я действительно близок к этому. По сути, я хочу создать пункт контекстного меню для файлов .ps1, которые запускают скрипт от имени администратора, не выходя из окна консоли после запуска. Итак, я могу создать ключ:
Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\.ps1\shell\RunasAdministratorNoExit
со значениями:
и это все хорошо и здорово, чтобы создать запись. Однако, чтобы заставить его что- то сделать , мне нужно добавить еще один ключ, командный ключ:
Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\.ps1\shell\RunasAdministratorNoExit\command
И в этом ключе у меня есть кое-что, что почти работает, но не совсем. Таким образом, значение по умолчанию вышеупомянутого командного ключа:
Powershell.exe -WindowStyle Hidden -Command "& {Start-Process PowerShell.exe -Verb RunAs -ArgumentList '-NoLogo -NoExit -File """%1"""'}"
Но есть одна большая проблема с этим методом; когда сценарий завершается, он возвращает меня в каталог «C:\Windows\system32» вместо каталога самого сценария. Смотрите мое изображение ниже для уточнения:
Кроме того, когда я использую пункт контекстного меню, я создал его для запуска сценариев, содержащих такие строки, как:
$settingsfiles = Get-ChildItem -Recurse $scanPath
Вместо того, чтобы повторяться во всех папках, локальных для сценария, который я только что запустил, он пытается пройти через все папки в "C:\Windows\system32!"«Очевидно, что это нежелательно. Итак, вот мой вопрос:
Что мне нужно изменить в значении по умолчанию командной клавиши, чтобы скрипт PowerShell работал так, как если бы он запускался из того же каталога, что и скрипт?