Скрипт Powershell, запускаемый с USB-флешки - привилегии и аргументы - PullRequest
0 голосов
/ 01 апреля 2019

Я делаю скрипт Powershell, который может настраивать ПК.Я работаю с большим количеством компьютеров, поэтому скрипт помещается на мою флешку и запускаю его с него.Сначала я создал 2 отдельных скрипта, один, когда стик был назначен как D:\, а другой, когда он был E:\, но было очень сложно вносить изменения в оба скрипта, поэтому я изменил его и сделал его универсальным для каждой буквы диска.Все работало нормально, кроме команд, в которых скрипт использовал встроенные программы Windows, такие как netsh или cmd.Добавление полного пути решило проблему, но Script запускает и другой сценарий, когда в реестре задач нет конкретной задачи.Я не могу изменить этот второй сценарий, чтобы добавить туда полный путь к программам

Я пробовал:
1. Изменение политики выполнения запущенного сценария
2. Изменение пути к сценарию
3. Изменениепуть к powershell (полный путь)

bat файл, запускающий основной скрипт:

@echo off
SET SCRIPT=path-on-usb-stick\script.ps1
SET PATH="%~dp0%SCRIPT%"
@echo on
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -command "& %path%"

Часть основного скрипта, вызывающая проблемы:

if(!(Get-Scheduledtask | Where-Object{$_.TaskName -eq ".check-vpn-new"})) {
        C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "& 'C:\...\script2.ps1' -Verb RunAs -windowstyle hidden -Wait"
}

IЯ получаю несколько ошибок в моем выводе:
1. Аргументы в сценарии null or empty, но не
2. Скрипт не имеет доступа к файлам с правами администратора (даже если он запущен с правами администратора)
3. скрипт не видит Windows.old папку, которую нужно почистить
(все отлично работает при запуске script2 из bat файла)

...