2014-11-18 3 views
1

Хорошо, у меня есть сценарий PSH, который делает следующие вещи:PowerShell и UAC в Windows Vista

  1. создает текстовый файл под пользователем/AppData/локальный каталог
  2. Создает запланированное задание с SchTasks команда
  3. Запускает ионообменную (New-Object Net.WebClient) .DownloadString: команда ('HTTPS \ BlahBlah.com')
  4. Создает файл VBS в папке system32

В Windows 7 и 8 он отлично работает.

В Windows Vista шаги 1, 2 и 3 работают, но 4 с ошибкой неавторизованного доступа. Я попытался изменить его так, чтобы он создавал только файл txt вместо VBS (чтобы увидеть, был ли исполняемый файл проблемой), но я получаю ту же ошибку.

Это, конечно, ОАК. Но я не знаю, как обойти это. Скрипт PSH требует одобрения пользователя для запуска в первую очередь и не имеет проблем с внесением всех других изменений, за исключением одной вещи.

Есть ли какая-либо команда обхода, которую я могу добавить, чтобы обойти UAC?

Вот что я получаю при отладке из Powershell ISE:

PS C:\Users\Caitlin> New-Item $env:SystemRoot\System32\Initialize.txt -type file -force 

New-Item : Access to the path 'C:\Windows\System32\Initialize.txt' is denied. 
At line:1 char:9 
+ New-Item <<<< $env:SystemRoot\System32\Initialize.txt -type file -force 
+ CategoryInfo : PermissionDenied: (C:\Windows\System32\Initialize.txt:String) [New-Item], UnauthorizedAccessException 
+ FullyQualifiedErrorId : NewItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.NewItemCommand 

Я хочу, чтобы это было относительно автоматизирован, потому что я буду делиться с другими людьми за пределами своей сети.

Я думаю, что простое решение состоит в том, чтобы просто создать его в другом каталоге, но я бы предпочел, чтобы он выполнял то же, что и в Windows 7/8.

ответ

0

Вы запускаете powershell как администратор (щелкните правой кнопкой мыши> запуститься как администратор)? Кроме того, проверьте права доступа к каталогу system32 и убедитесь, что учетная запись, выполняющая скрипт, действительно имеет права на запись.

2

Пожалуйста, не размещайте свои собственные файлы в папке system32. Это ломает каждое руководство в книге, это опасно, может привести к дырам в безопасности, несовместимости, нестабильной системе, конфликтам версий. Пожалуйста, не делайте этого.

Что вы пытаетесь достичь с этим? Чтобы у пользователей был простой способ запустить ваш скрипт?

Ваши собственные исполняемые файлы должны быть в папке ниже Program Files или Program Files (x86)