Запустите powershell от имени администратора, дважды щелкнув файл ps1

Я читал Как открыть файл для редактирования в режиме администратора?

У меня есть .ps1 файл, который необходимо запустить от имени администратора. Я счастлив, что, когда я дважды щелкните на любой .файл ps1, powershell запускается от имени администратора.

Я C:UsersmeAppDataRoamingMicrosoftWindowsStart MenuProgramsWindows PowerShell и сделал оба PowerShell ярлыки для запуска от имени администратора

Если я открываю Powershell из меню Пуск, меня спрашивают, хочу ли я разрешить приложению вносить изменения... Это показывает, что он работает как Admin, в сочетании с когда Powershell работает он отображает администратора в строке "название"

однако, когда я дважды щелкните на a .ps1 файл, он открывается как обычный пользователь (не администратор).

что еще мне нужно сделать?

10
задан MyDaftQuestions
25.04.2023 4:14 Количество просмотров материала 2597
Распечатать страницу

4 ответа

.ps1 по умолчанию связаны с Блокнотом.exe с дизайном. Двойной щелчок просто откроет .ps1 в блокноте Для просмотра или редактирования. Это было осознанное решение безопасности от ср.

защита оболочки Windows PowerShell https://technet.microsoft.com/en-us/library/2007.09.powershell.aspx

конечно, вы можете изменить эту связь на powershell.exe, но опять же, вы подвергаете себя ненужному риску. Если это находится на предприятии, ваша команда безопасности может иметь слова для вас, и или это может в конечном итоге быть и RPE (возобновление производства события).

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

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

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe

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

опять же, изменение сопоставления файлов на автоматическое выполнение-это просто плохая практика и подвергает вас тем же рискам из наследия .дни vbscript.

1
отвечен postanote 2023-04-26 12:02

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

$principal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if($principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    # code here...
}
else {
    Start-Process -FilePath "powershell" -ArgumentList "$('-File ""')$(Get-Location)$('\')$($MyInvocation.MyCommand.Name)$('""')" -Verb runAs
}

при этом без повышенных консоли выйдет.

1
отвечен iTechieGamer 2023-04-26 14:19

скопируйте и вставьте ярлык powershell в место, откуда требуется запустить сценарий. Щелкните правой кнопкой мыши новый ярлык, выберите Свойства, а затем дополнительно и убедитесь, что он настроен на запуск от имени администратора. Затем в поле в цели введите путь и имя сценария после powershell.exe

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\myscripts\my-awesome-script.ps1

убедитесь, что вы используете" кавычки " вокруг вашего добавления, если есть какие-либо пробелы в пути или имени файла, как:

"c:\my scripts\some script with spaces.ps1"

это запустит новый powershell от имени администратора и автоматический запуск сценария в новой оболочке.

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

0
отвечен apocalysque 2023-04-26 16:36

объяснение

Windows не позволяет запускать сценарий PowerShell изначально, необходимо обновить политику выполнения для пользователя или выбранного пользователя, чтобы использовать их.

ответ

  1. откройте PowerShell (в режиме администратора, если это необходимо)
  2. изменить политику выполнения Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  3. тип Get-Execution -List чтобы увидеть все исполнения политики

            Scope    ExecutionPolicy
            -----    ---------------
    MachinePolicy    Unrestricted
    UserPolicy          Undefined
    Process             Undefined
    CurrentUser      RemoteSigned
    LocalMachine     Unrestricted
    

если это все еще не работает, вы можете используйте Windows PowerShell ISE, который является PowerShell IDE

  1. щелкните правой кнопкой мыши *.ps1 файл
  2. открыть с помощью → Windows PowerShell ISE

или просто раскройте Исэ сперва.

безопасность

Microsoft не позволяет запускать сценарий PowerShell по умолчанию для серьезных причины, кто-то может легко запустить скрипт на вашем компьютере и иметь полный доступ! Чтобы избежать этого, пожалуйста установить ваша политика исполнения вернулась к тому, какими они были.

документация Microsoft

0
отвечен DIDIx13 2023-04-26 18:53

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх