Windows 8 nie pozwala mi uruchamiać vbscript, mimo że jestem administratorem

1

Napisałem trochę vbscript, który pobiera pliki z serwera WWW. Rozumiem, dlaczego to martwi system operacyjny, ale jestem zalogowany jako administrator i chcę, aby skrypt działał.

Dokładny błąd jaki otrzymuję

Error: Permission denied
Code:  800A0046

Jak mogę powiedzieć systemowi Windows, aby pozwolił administratorowi robić to, czego chce?

EDYTOWAĆ

Poniżej umieściłem skrypt do pobrania na wypadek, gdyby to pomogło. Próbowałem go na Windows XP wcześniej nie było problemu. Moje domowe okna 8 tego nie pozwalają.

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
user2018084
źródło
2
Proszę unikać wulgaryzmów maski, których tutaj nie ma. Czy możesz opublikować skrypt, chociaż nie jest to strona programistyczna, trudno powiedzieć, dlaczego Winows podaje błąd uprawnień, nie wiedząc, co robi sam skrypt.
Ramhound
W jakim katalogu dokładnie umieszczasz pobrany plik?
Ramhound
@Ramhound Dzięki, to było pierwotnie C: próbowałem w innym katalogu i poszło dobrze. Zabawne, że Windows 8 nie pozwoli mi pobrać czegoś bezpośrednio do C: nawet z prawami administratora.
user2018084
1
Windows działa w podobny sposób, w jaki Linux obsługuje uprawnienia. Użytkownik może mieć dostęp do odczytu / zapisu do czegoś, ale niektóre działania mogą wymagać określonej interakcji użytkownika w celu wykonania akcji. Na przykład możesz mieć pozwolenie na zrobienie czegoś w Linuksie, ale może to wymagać uruchomienia sudo polecenie w celu wykonania polecenia. W przypadku systemu Windows należy eskalować uprawnienia procesu (użytkownik musi mu to przyznać), aby utworzyć uprawnienia do procesów na poziomie uprawnień użytkownika. Katalog C jest domyślnie chroniony
Ramhound
Możesz przenieść / zmodyfikować skrypt, aby utworzył folder i plik w innym katalogu w celu rozwiązania określonego problemu z uprawnieniem LUB użyj polecenia „uruchom jako administrator”, który utworzy uprawnienia procesu do poziomu uprawnień użytkownika. Dzięki temu proces sam będzie mógł utworzyć plik, tak jak możesz go utworzyć windows explorer (które domyślnie działa z tym samym uprawnieniem co użytkownik). Nie porównuj zachowania Windows XP z Windows XP, TONem zachowania, zmienionym wraz z wydaniem Windows Vista i wprowadzeniem UAC (na lepsze).
Ramhound

Odpowiedzi:

-3

Windows 8 domyślnie wyłącza wykonywanie wszystkich skryptów. Robi się to, aby niechciane skrypty nigdy nie były uruchamiane. Można go ponownie włączyć, aby zezwolić.

Aby to zrobić:
01. Otwórz Powershell w trybie Admin.
02.Type: Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Pozwala to na wykonanie wszystkich skryptów.

Aby zresetować:

Set-ExecutionPolicy -ExecutionPolicy Undefined

Więcej informacji: Istnieje łącznie 6 zasad:

  • restricted [Default]: zezwala tylko na polecenia. Brak skryptów.
  • AllSigned: Umożliwia uruchamianie zaufanych skryptów (podpisanych)
  • RemoteSigned: zezwala na niepodpisane lokalne skrypty, ale podpisane skrypty ze źródeł zewnętrznych
  • Nieograniczony: umożliwia uruchomienie WSZYSTKICH skryptów, ale przed uruchomieniem zewnętrznych skryptów są wyświetlane ostrzeżenia
  • Obwodnica: Bez ograniczeń.
  • Niezdefiniowane: Nie zdefiniowano w bieżącym zakresie.
  • Aby uzyskać więcej informacji, przejdź do: Polityki wykonania

    Vignesh Palani
    źródło
    To nie jest powód, dla którego skrypt nie działa. Jest to krystalicznie jasne na podstawie lokalizacji samego skryptu.
    Ramhound
    Nie wspominając, że uruchamiany skrypt jest VBScript, a nie PowerShell. W ten sposób bezpieczeństwo PowerShell nie ma znaczenia.
    EBGreen