Windows 8 не позволяет мне запускать vbscript, хотя я и являюсь администратором


1

Я написал небольшой VBScript, который загружает файлы с веб-сервера. Я понимаю, почему это беспокоит ОС, но я вошел в систему как администратор и хочу, чтобы скрипт запускался.

Точная ошибка, которую я получаю,

Error: Permission denied
Code:  800A0046

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

РЕДАКТИРОВАТЬ

Я поставил сценарий загрузки ниже на случай, если это поможет. Пробовал на Windows XP ранее, он не работал без проблем. Мой домашний windows 8 не позволяет, хотя.

HTTPDownload "http://site.com/fileA.dll", "C:\"
HTTPDownload "http://site.com/fileB.exe", "C:\"

Sub HTTPDownload( myURL, myPath )
    Dim i, objFile, objFSO, objHTTP, strFile, strMsg
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Set objFSO = CreateObject( "Scripting.FileSystemObject" )
    If objFSO.FolderExists( myPath ) Then
        strFile = objFSO.BuildPath( myPath, Mid( myURL, InStrRev( myURL, "/" ) + 1 ) )
    ElseIf objFSO.FolderExists( Left( myPath, InStrRev( myPath, "\" ) - 1 ) ) Then
        strFile = myPath
    Else
        Exit Sub
    End If
    Set objFile = objFSO.OpenTextFile( strFile, ForWriting, True )
    Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )
    objHTTP.Open "GET", myURL, False
    objHTTP.Send
    For i = 1 To LenB( objHTTP.ResponseBody )
        objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) )
    Next
    objFile.Close( )
End Sub

2
Пожалуйста, избегайте ненормативной лексики маски здесь нежелательно. Можете ли вы опубликовать сценарий, не являясь веб-сайтом для программирования, трудно сказать, почему Winows выдает ошибку разрешения, не зная, что делает сам сценарий.
Ramhound

В какую директорию вы пытаетесь поместить загруженный файл?
Ramhound

@Ramhound Спасибо, это был изначально C: \, пробовал в другом каталоге и все прошло нормально. Забавно, что Windows 8 не позволяет мне загружать что-то напрямую в C: \ даже с правами администратора.
user2018084

1
Windows работает аналогично тому, как Linux обрабатывает разрешения. Пользователь может иметь доступ для чтения / записи к чему-либо, но для выполнения определенных действий могут потребоваться определенные действия пользователя. Например, у вас может быть разрешение на что-то в Linux, но вам все равно может потребоваться выполнить sudoкоманду для ее выполнения. В случае с Windows вам необходимо повысить разрешения процесса (пользователь должен предоставить его специально), чтобы повысить разрешения процессов до уровня разрешений пользователя. Каталог C защищен по умолчанию
Ramhound

Вы можете либо переместить / изменить скрипт, чтобы он создал папку и файл в другом каталоге, чтобы решить конкретную проблему с разрешениями, либо использовать «запуск от имени администратора», который увеличит разрешения процесса до уровня разрешений пользователя. Это даст самому процессу возможность создавать файл так же, как вы можете создать его, используя windows explorer(который по умолчанию запускается с тем же разрешением, что и пользователь). Не сравнивайте поведение Windows XP с Windows XP, тонна поведения, измененная с выпуском Windows Vista и введением UAC (в лучшую сторону).
Ramhound

Ответы:


-3

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

Для этого:
01.Откройте Powershell в режиме администратора.
02.Тип: Set-ExecutionPolicy -ExecutionPolicy Неограниченный

Это позволяет выполнять все сценарии.

Сбросить это:

Set-ExecutionPolicy -ExecutionPolicy Не определено

Больше информации: Всего 6 политик:

  • limited [Default]: разрешены только команды. Нет сценариев.
  • AllSigned: позволяет запускать доверенные (подписанные) сценарии
  • RemoteSigned: разрешает неподписанные локальные сценарии, но подписанные сценарии из внешних источников
  • Неограниченно: позволяет запускать ВСЕ сценарии, но перед запуском внешних сценариев выдаются предупреждения
  • Обход: никаких ограничений.
  • Не определено: Не определено в текущей области.
  • Для получения дополнительной информации, перейдите к: Политики исполнения


    Это не причина, по которой скрипт не работает. Это кристально ясно, исходя из расположения самого сценария.
    Ramhound

    Не говоря уже о том, что запускаемый скрипт - это VBScript, а не powershell. Таким образом, безопасность PowerShell не имеет никакого отношения.
    EBGreen
    Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
    Licensed under cc by-sa 3.0 with attribution required.