Код ошибки 800a0046 разрешение отклонено

  • Remove From My Forums
  • Question

  • I have a script that requires a .ico file to be copied from a server’s folder to a folder that is created in the users %UserProfile%. I’m able to run the script without receiving permission errors. However during user testing, the users are able to run
    the script once and not receive the .ico file. The users then delete the Icons 2011 folder before running the script again, as instructed. Finally the script gives a Error: 800A0046 Line: 35 Char: 1, Permission denied, MS VBSript runtime error. What could
    cause the script to run, partially successful the first attempt then not at all the second attempt. Does Microsoft Win7 hold some sort of cache that could be affecting this script based icon install? My code follows. Thanks.

    Option Explicit
    Dim fso
    Dim objShell
    Dim objDesktop
    Dim objFolder
    Dim objLink
    Dim strAppPath
    Dim strWorkDir
    Dim strIconPath
    Dim Profile
    dim Path
    ‘OVERWRITE EXISTING DLL TO GET UPDATES
    Const OverwriteExisting = True
    ‘SET ENVIRONMENT VARIABLES
    SET fso = Wscript.CreateObject(«Scripting.FileSystemObject»)
    Profile = CreateObject(«WScript.Shell»).ExpandEnvironmentStrings(«%UserProfile%»)
    Path = Profile & «Icons 2011»
    ‘CREATE THE ICONS FOLDER IN THE DIRECTORY IF IT DOESN’T EXISTS ALREADY
    ‘QUITE RUNNING THE SCRIPT IF IT DOES EXIST
    If Not fso.FolderExists(Path) Then
    Set objFolder = fso.CreateFolder(Path)
    else
    WScript.Echo Path & » already exists so the icon path was not created. Please delete the Demo Icons 2011 folder and run this script again.»
    WScript.Quit
    End If
    ‘Copy Files
    fso.CopyFile «\serverv$DemoICONS2011 IconsDemoDemo.ico», Path & «», OverwriteExisting
    strWorkDir =»C:windows»
    ‘URL
    strAppPath = «http://Demo:9001/frms/servlet?config=Demo_app»
    ‘specify the path to the locally kept icon, ~IconsDemo.ico
    strIconPath = Path & «Demo.ico»
    Set objShell = CreateObject(«WScript.Shell»)
    objDesktop = objShell.SpecialFolders(«Desktop»)
    ‘change to your shortcut name
    Set objLink = objShell.CreateShortcut(objDesktop & «Demo.lnk»)
    ‘replace with your description
    objLink.Description = «Demo Icon 2011»
    objLink.IconLocation = strIconPath
    objLink.TargetPath = strAppPath
    objLink.WindowStyle = 3
    objLink.WorkingDirectory = strWorkDir
    objLink.Save
    blockquote>

Answers

  • I was able to get my script file to work by creating a looping structure to determine the which drive letter is free for mapping a network share, having the script map a share on the users pc, copying the file from the locally mapped share (referenced by
    \serverDemo instead of by the mapped drive letter) to the local My Documents folder, and finally deleting the share. The icon script works now. I also had to share the Demo folder on the server so I could
    directly map to it using a UNC like
    \serverDemo instead of
    \serverv$DemoICONS2011 IconsDemo . I took this approach after reading on another forum that Vista and later OS’s have problems with the fso.CopyFile loosing connection to drives in midst of performing the copy function due to speed during transfers.
    Thanks for your help.

    • Marked as answer by

      Thursday, December 8, 2011 4:47 PM

Skydiver_vrn

0 / 0 / 0

Регистрация: 01.07.2014

Сообщений: 14

1

VBS

Разрешение отклонено

01.07.2014, 09:03. Показов 29566. Ответов 11

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Set FSO = CreateObject("Scripting.FileSystemObject")
path="D:share123"
  if (FSO.FolderExists(path) = true) then 
    Set Folder = FSO.GetFolder(path)
    For Each SubFolder In Folder.SubFolders
     folder1=SubFolder.Name
     if folder1<>"Маркетинг" and folder1<>"111" and folder1<>"222" and folder1<>"333" and folder1<>"444" and folder1<>"555" and folder1<>"666" and folder1<>"777" and folder1<>"888" then
      folder1=path+folder1
       if (FSO.FolderExists(folder1) = true) then 
        Set folder_for_delete = FSO.GetFolder(folder1)
        folder_for_delete.Delete(True)
       else MsgBox "Путь "+folder1+" не найден" 
       end if
     end if 
    Next
  end if

Вот такой скрипт, ругается на строка 11 символ 9 разрешение отклонено



0



2617 / 547 / 109

Регистрация: 21.03.2012

Сообщений: 1,051

01.07.2014, 10:11

2

Цитата
Сообщение от Skydiver_vrn
Посмотреть сообщение

… разрешение отклонено

Причина — отсутствуют необходимые полномочия. Проверяйте список управления доступом для соответствующей папки.



0



0 / 0 / 0

Регистрация: 01.07.2014

Сообщений: 14

01.07.2014, 11:54

 [ТС]

3

Dmitrii, Так запускаю скрипт вручную под доменным админом у которого есть все права на эту папку.

Добавлено через 1 час 40 минут
Dmitrii, Поигрался с правами, теперь пишет «путь не найден» Строка 11 символ 9



0



2617 / 547 / 109

Регистрация: 21.03.2012

Сообщений: 1,051

01.07.2014, 18:29

4

Цитата
Сообщение от Skydiver_vrn
Посмотреть сообщение

… под доменным админом у которого есть все права на эту папку

1. Какая версия ОС?
2. Включен ли UAC?

Цитата
Сообщение от Skydiver_vrn
Посмотреть сообщение

Поигрался с правами, теперь пишет «путь не найден»

Покажите подробный список управления доступом. Для каждой записи должны быть видны: тип, маска доступа, точка наследования, область действия.



0



Skydiver_vrn

0 / 0 / 0

Регистрация: 01.07.2014

Сообщений: 14

02.07.2014, 08:17

 [ТС]

5

Dmitrii, С доступом вроде разобрался сам, сегодня скрипт отработал ночью запускал через bat-ник

Bash
1
2
del D:Share123*.* /q /f
C:cmdclear_share.vbs

но удалились только файлы которые были вне папок, папки на месте остались, и новая ошибка «Предполагается наличие Then строка 7 символ 174»

Добавлено через 12 минут
И тут затупил сам тоже, не написал and когда ещё пункт добавил. Сегодня ночью ещё раз попробую.



0



0 / 0 / 0

Регистрация: 01.07.2014

Сообщений: 14

03.07.2014, 14:52

 [ТС]

6

Dmitrii, Снова удалились только файлы, никакой ошибки не выскочило. Помогите пожалуйста, я чайник в написании скриптов.

Добавлено через 5 часов 55 минут
Причём часть папок удалилась, а как только дошёл до первой в списке исключений остальные на месте.



0



Dmitrii

2617 / 547 / 109

Регистрация: 21.03.2012

Сообщений: 1,051

04.07.2014, 20:47

7

Попробуйте такой вариант:

Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Dim objFS, objFolder, objItem, strPath, strExclude, strLog, strTemp
 
strExclude = "Маркетинг;111;222;333;444;555;666;777;888;"
Set objFS = CreateObject("Scripting.FileSystemObject")
strPath = "D:share123"
If objFS.FolderExists(strPath) Then 
    Set objFolder = objFS.GetFolder(strPath)
    On Error Resume Next
    If objFolder.SubFolders.Count > 0 Then
        For Each objItem In objFolder.SubFolders
            If InStr(1, strExclude, objItem.Name & ";", vbTextCompare) = 0 Then
                strTemp = objItem.Path
                objItem.Delete True
                If Err.Number = 0 Then
                    strLog = strLog & strTemp & " -> успех" & vbNewLine
                Else
                    strLog = strLog & strTemp & " -> ошибка: " & Err.Description & vbNewLine
                    Err.Clear
                End If
            End if 
        Next
    Else
        strLog = "Папка " & strPath & " не содержит ни одной подпапки."
    End If
    Set objFolder = Nothing
Else
    strLog = "Не найден путь " & strPath
End if
strTemp = objFS.BuildPath(objFS.GetParentFolderName(WScript.ScriptFullName), "Results.txt")
Set objItem = objFS.CreateTextFile(strTemp, True)
If Err.Number = 0 Then
    If Len(strLog) > 0 Then
        objItem.Write strLog
    Else
        objItem.Write "Папка " & strPath & " не содержит ни одной подпапки, предназначенной для удаления."
    End If
    objItem.Close
    WScript.Echo "Готово. Журнал здесь:" & vbNewLine & strTemp
Else
    WScript.Echo "Готово. Ошибка при создании журнала:" & vbNewLine & Err.Description
    Err.Clear
End If
Set objItem = Nothing: Set objFS = Nothing
WScript.Quit 0



2



ComSpec

3455 / 1993 / 635

Регистрация: 26.02.2014

Сообщений: 1,457

04.07.2014, 22:27

8

Dmitrii, поправки:

Visual Basic
1
strExclude = ";Маркетинг;111;222;333;444;555;666;777;888;"
Visual Basic
1
If InStr(1, strExclude, ";" & objItem.Name & ";", vbTextCompare) = 0 Then

.
Иначе не удалятся папки с именами «1», «2», «3», «4», «5», «6», «7», «8», «11», «22», «33», «44», «55», «66», «77», «88», «аркетинг», «ркетинг», «кетинг», «етинг», «тинг», «инг», «нг», «г».



3



Эксперт WindowsАвтор FAQ

18042 / 7645 / 891

Регистрация: 25.12.2011

Сообщений: 11,426

Записей в блоге: 17

05.07.2014, 14:21

9

Вот такая папка тоже не удалится «111;222»
Нужно все разделители ; заменить на символ, который нельзя использовать в именовании ФС, например |



3



Dmitrii

2617 / 547 / 109

Регистрация: 21.03.2012

Сообщений: 1,051

06.07.2014, 21:37

10

Лучший ответ Сообщение было отмечено Skydiver_vrn как решение

Решение

С учётом справедливых замечаний от ComSpec и Dragokas имеем следующий вариант:

Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Dim objFS, objFolder, objItem, strPath, strExclude, strLog, strTemp
 
strExclude = "*Маркетинг*111*222*333*444*555*666*777*888*"
Set objFS = CreateObject("Scripting.FileSystemObject")
strPath = "D:share123"
If objFS.FolderExists(strPath) Then 
    Set objFolder = objFS.GetFolder(strPath)
    On Error Resume Next
    If objFolder.SubFolders.Count > 0 Then
        For Each objItem In objFolder.SubFolders
            If InStr(1, strExclude, "*" & objItem.Name & "*", vbTextCompare) = 0 Then
                strTemp = objItem.Path
                objItem.Delete True
                If Err.Number = 0 Then
                    strLog = strLog & strTemp & " -> успех" & vbNewLine
                Else
                    strLog = strLog & strTemp & " -> ошибка: " & Err.Description & vbNewLine
                    Err.Clear
                End If
            End if 
        Next
    Else
        strLog = "Папка " & strPath & " не содержит ни одной подпапки."
    End If
    Set objFolder = Nothing
Else
    strLog = "Не найден путь " & strPath
End if
strTemp = objFS.BuildPath(objFS.GetParentFolderName(WScript.ScriptFullName), "Results.txt")
Set objItem = objFS.CreateTextFile(strTemp, True)
If Err.Number = 0 Then
    If Len(strLog) > 0 Then
        objItem.Write strLog
    Else
        objItem.Write "Папка " & strPath & " не содержит ни одной подпапки, предназначенной для удаления."
    End If
    objItem.Close
    WScript.Echo "Готово. Журнал здесь:" & vbNewLine & strTemp
Else
    WScript.Echo "Готово. Ошибка при создании журнала:" & vbNewLine & Err.Description
    Err.Clear
End If
Set objItem = Nothing: Set objFS = Nothing
WScript.Quit 0



2



0 / 0 / 0

Регистрация: 01.07.2014

Сообщений: 14

15.07.2014, 11:19

 [ТС]

11

Всем огромное спасибо! Всё работает. А может стоит куда то вынести сей скрипт, он же достаточно универсальный, может ещё какойнибудь такойже как я чайник сможет применить в своей системе…



0



Эксперт WindowsАвтор FAQ

18042 / 7645 / 891

Регистрация: 25.12.2011

Сообщений: 11,426

Записей в блоге: 17

15.07.2014, 13:47

12

Skydiver_vrn, в принципе можно. Добавил.



0



  • Remove From My Forums
  • Question

  • I’m so close to get my script to work with a user, but I need your help.
    I have a Terminal Server 2003 with policy restrictions. My users can’t even see how much megabytes they have in use. So I created the following script. It runs perfectly with an administrator account:


    Dim oFS, oFolder
    Dim total
    Dim message
    set oFS = WScript.CreateObject(«Scripting.FileSystemObject»)
    set oFolder1 = oFS.GetFolder(«\servershare$»)
    set oFolder2 = oFS.GetFolder(«\servershare1$»)
    set oFolder3 = oFS.GetFolder(«\servershare2$»)
    Wscript.Sleep 300
    total = oFolder1.Size + oFolder2.Size + oFolder3.Size
    message=MsgBox («Size: » & vbTab & oFolder1.Size /10241024 & «MB» & vbTab & » Path: » & vbTab & oFolder1.Path & Chr(10) _
    & «Size: » & vbTab & oFolder2.Size /10241024 & «MB» & vbTab & » Path: » & vbTab & oFolder2.Path & Chr(10) _
    & «Size: » & vbTab & oFolder3.Size /10241024 & «MB» & vbTab & » Path: » & vbTab & oFolder3.Path & Chr(10) _
    & «Total: » & vbTab & total /10241024 & «MB»,64,»megabytes in use»)

    The problem I’m facing is that I can’t distribute it to my users because when this script runs as an user I receive this error:
    Windows Script Host
    Script: pathandname.vbs
    Line: 9
    Char: 1
    Error: Permission denied
    Code: 800A0046
    Source: Microsoft VBScript runtime error

    I’ve checked the users permission on the servershare’s and they have Full Control.
    Also on the ACL on the script the user has Full Control.

    What else can I check?
    Is there a setting in some GPO that denies users to run a .vbs?

    Please let me know when you need more information to solve this.

    Cheers,
    Yuri

Answers

  • Are you sure the users have permissions to ALL files and directories on the shares?
    If there is as much as one file or folder to which the user hasn’t got at least «list contents» permission the script will fail with the above message.

    If you check the properties of the root of the share from explorer, first as an administrator and then as a user. Does it show the same amount of files/folders and the same size?
    A difference here would indicate that the user doesn’t have permissions to everything.

    • Marked as answer by

      Tuesday, September 1, 2009 9:14 AM

The Microsoft VBScript runtime error: Permission denied 800A0046, may faced while trying to install or uninstall a program or driver on your computer. The error 800A0046 is commonly caused because you ‘ll try to install a program on your computer without having administrative privileges or because you have enabled the User Account Control (UAC) on Windows 7 or Vista based computers. 

Permission denied 800A0046

In most cases the VBScript runtime error 800A0046, is occurred whenever you try to install the «Windows Installer Clean Up» utility, in order to remove a program from the system that you cannot uninstall by using the normal way (Programs and features).

This article contains two(2) methods to fix the «Permission denied 800A0046» Windows Script Host Error, on Windows 7 or Vista.

How to bypass the Windows Script Host «Permission Denied – Code 800A0046».

Before applying the methods below to resolve the VBScript Runtime 800A0046 error, first make sure that you have logged on as Administrator on your system,

Method 1: DISABLE User Account Control (UAC).

In order to disable the UAC (User Account Control):

1. Go to Start > Control Panel.
2. Open User Accounts.
3. Click at Change User Account Control settings.

VBScript Runtime error 800A0046

4, Move the slider on the left to Never notify and click OK.
5. Restart your computer.

disable uac - user account control

6. After restart, install (or uninstall) the program that caused the 800A0046 error.

Method 2: RUN the Installer (Setup.exe) as Administrator

In order to install a program as administrator:

1. Right click at the program (installer) that you ‘re trying to install and click Run as Administrator.

run as adminsitrator

That’s all folks! Did it work for you?

Please leave a comment in the comment section below or even better: like and share this blog post in the social networks to help spread the word about this solution.

If this article was useful for you, please consider supporting us by making a donation. Even $1 can a make a huge difference for us.

  • Remove From My Forums
  • Question

  • I’m so close to get my script to work with a user, but I need your help.
    I have a Terminal Server 2003 with policy restrictions. My users can’t even see how much megabytes they have in use. So I created the following script. It runs perfectly with an administrator account:


    Dim oFS, oFolder
    Dim total
    Dim message
    set oFS = WScript.CreateObject(«Scripting.FileSystemObject»)
    set oFolder1 = oFS.GetFolder(«servershare$»)
    set oFolder2 = oFS.GetFolder(«servershare1$»)
    set oFolder3 = oFS.GetFolder(«servershare2$»)
    Wscript.Sleep 300
    total = oFolder1.Size + oFolder2.Size + oFolder3.Size
    message=MsgBox («Size: » & vbTab & oFolder1.Size /10241024 & «MB» & vbTab & » Path: » & vbTab & oFolder1.Path & Chr(10) _
    & «Size: » & vbTab & oFolder2.Size /10241024 & «MB» & vbTab & » Path: » & vbTab & oFolder2.Path & Chr(10) _
    & «Size: » & vbTab & oFolder3.Size /10241024 & «MB» & vbTab & » Path: » & vbTab & oFolder3.Path & Chr(10) _
    & «Total: » & vbTab & total /10241024 & «MB»,64,»megabytes in use»)

    The problem I’m facing is that I can’t distribute it to my users because when this script runs as an user I receive this error:
    Windows Script Host
    Script: pathandname.vbs
    Line: 9
    Char: 1
    Error: Permission denied
    Code: 800A0046
    Source: Microsoft VBScript runtime error

    I’ve checked the users permission on the servershare’s and they have Full Control.
    Also on the ACL on the script the user has Full Control.

    What else can I check?
    Is there a setting in some GPO that denies users to run a .vbs?

    Please let me know when you need more information to solve this.

    Cheers,
    Yuri

Answers

  • Are you sure the users have permissions to ALL files and directories on the shares?
    If there is as much as one file or folder to which the user hasn’t got at least «list contents» permission the script will fail with the above message.

    If you check the properties of the root of the share from explorer, first as an administrator and then as a user. Does it show the same amount of files/folders and the same size?
    A difference here would indicate that the user doesn’t have permissions to everything.

    • Marked as answer by

      Tuesday, September 1, 2009 9:14 AM

  • Remove From My Forums
  • Question

  • User1318781576 posted

    There are some threads here similar to this one, but I think this is a little different. I found this on another forum and set it up in a virtual directory under the Default Web Site in II6 on Server 2003 R2 SP2:

    http://tinypaste.com/50424

    It works for a number of days, and then will seemingly randomly generate this for everyone, even when I access the page directly from the server as admin:

    Microsoft VBScript runtime error ‘800a0046’

    Permission denied

    /wol/Default.asp, line 53

    Line 53 is the one in red in the above paste of Default.asp.

    I’m aware of this article and believe I have permissions set correctly. I think I must, or it wouldn’t work at all, right?

    I have anonymous access disallowed, so shouldn’t have to worry about the IUSR_ account, but regardless it has Read and Execute permissions on both the asp file for the site, its folder, and the exe involved (in System32). As do «Users» on my domain (they
    authenticate to access the site), Network Service (which is what runs the Default App Pool), and several others.

    The only way I can get it to work once it stops working is to recycle the Default Application Pool. Why would that be? I tried setting it to recycle the worker process automatically several times a day, but that still wasn’t enough to prevent the problem
    for more than a few days. I suppose I could try setting it for every hour, or maybe even giving it its own app pool, but this is getting out of hand. None of the other sites under the Default Web Site have this problem. Perhaps something’s wrong with the code,
    I don’t know. Thanks for any thoughts

Answers

  • User1318781576 posted

    If by «remote server» you mean IIS, that’s definitely not the case. It’s in continual operation.

    I wouldn’t know what to watch for in PM.  Something with w3wp.exe I assume?  This would also be a little difficult due to the wildly unpredictable nature of this. I’d hate to leave PM going for hours on end.

    A little earlier, I took the advice of the IIS docs and gave this site its own application pool in an effort to isolate it from the busy DefaultAppPool and increase the site’s reliability. I left the automatic recycling on the default, too, so the problem should
    show relatively quickly (though I still have no idea when) if it’s going to at all now. If this fixes it, great, I don’t really need to know which of the several other things in DefaultAppPool was conflicting with it and why.  If it doesn’t, then it may
    be easier to troubleshoot this way.

    • Marked as answer by

      Tuesday, September 28, 2021 12:00 AM

I have a script that I put together for my users a few years ago for them to log onto to the company drive shares after they had logged into the VPN. The script has worked well over the years with a few tweaks needed here and there due to IE version upgrades. As of today I can no longer get the script to function properly the Error is:

Line:   93
Char:   5
Error:  Permission denied: 'objIE.Document.parentWindow.screen'
Code:   800A0046
Source:     Microsoft VBScript runtime error

I’m not sure what has changed but after doing multiple searches on the error codes and other items I figured I’d post it here and see if any of you can help me with this problem.

dim WshNetwork
Dim arrFileLines()

'On Error Resume Next

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("Drive Shares.txt", 1)
If Not err.number = 0 then
    WScript.Echo "Drive Shares.txt was not found.  Please ensure that it is in the same directory as this script file"
    WScript.Quit
End If

NumElements = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(NumElements)
arrFileLines(NumElements) = objFile.ReadLine
NumElements = NumElements + 1
Loop
objFile.Close

strPw = GetPassword()

If strPw = "" Then
     wScript.Quit
End If

SplitPasswd = Split(StrPW,"*",2)

username = "DEFAULT" & SplitPasswd(0)
password = SplitPasswd(1)

Set WshNetwork = Wscript.CreateObject("WScript.Network")

For Count = 0 to (NumElements - 1)

SplitDriveInfo =  Split(arrFileLines(Count)," ",2)
DriveLetter = SplitDriveInfo(0)
Share = SplitDriveInfo(1)

ExitCode = WshNetwork.MapNetworkDrive(DriveLetter, Share, false, username, password)
ErrorHandler(err.number)

Next

Sub ErrorHandler(ErrorNumber)
    Select Case ErrorNumber

    Case 0 
        'OK
        Exit Sub

    Case -2147024811 
        'Already Mapped Continue
        Exit Sub

    Case -2147024843
        'No Connection
        WScript.Echo "No connection found.  Confirm you have an internet connection and that you have the VPN connected."
        WScript.Quit

    Case -2147024829
        'Share not available
        WScript.Echo "The drive share you are trying to connect to does not exist on this server."
        WScript.Quit

    Case -2147023570
        'Invalid username or password
        WScript.Echo "Invalid username or password.  Please try again."
        WScript.quit

    Case Else
        WScript.Echo "Unknown error: " & CStr(ErrorNumber)
        WScript.Quit

    End Select


End Sub



Function GetPassword()

    Dim objIE
    Set objIE = CreateObject( "InternetExplorer.Application" )
    objIE.Navigate "about:blank"
    objIE.Document.Title = "Login Credentials"
    objIE.ToolBar        = False
    objIE.Resizable      = False
    objIE.StatusBar      = False
    objIE.Width          = 320
    objIE.Height         = 320
    With objIE.document.parentWindow.screen
        objIE.Left = (.availwidth  - objIE.Width )  2
        objIE.Top  = (.availheight - objIE.Height)  2
    End With

    objIE.Document.Body.InnerHTML = "<DIV align=""center""><P>Please enter your credentials</P>" & vbCrLf _
                                  & "<DIV align=""center""><P>Username</P>" & vbCrLf _                            
                                  & "<P><INPUT TYPE=""Username"" SIZE=""20"" " _
                                  & "ID=""UserName""></P>" & vbCrLf _
                                  & "<DIV align=""center""><P>Password</P>" & vbCrLf _
                                  & "<P><INPUT TYPE=""password"" SIZE=""20"" " _
                                  & "ID=""Password""></P>" & vbCrLf _
                                  & "<P><INPUT TYPE=""hidden"" ID=""OK"" " _
                                  & "NAME=""OK"" VALUE=""0"">" _
                                  & "<INPUT TYPE=""submit"" VALUE="" OK "" " _
                                  & "OnClick=""VBScript:OK.Value=1""></P></DIV>"
    objIE.Visible = True

    Do While objIE.Document.All.OK.Value = 0
        WScript.Sleep 200
    Loop

    GetPassword = objIE.Document.All.UserName.Value & "*" & objIE.Document.All.Password.Value
    objIE.Quit
    Set objIE = Nothing


End Function

Any help with this would be greatly appreciated.

Troubleshooting Code 800A0046 – Permission Denied

Code 800A0046 is a straightforward error to solve.  The secret is to read the Windows Script Error message carefully, then check the access control list to see who has permission to use the page, or use the device.

  • Introduction to Error Code 800A0046
  • Example 1: Script to map a printer
  • Example 2: Error 800A0046 When You Install Visual Studio
  • Permissions Analyzer Free Tool

  ‡

Introduction to Error 800A0046

Code 800A0046 is runtime error that is more likely to occur with an .ASP file than a .VBS.  You could be trying to connect to SQL, IIS or Exchange.  However, my example of is taken from printer permission problem sent in by Keith S.Code Error 800A0046 Permission Denied

The Symptoms You Get With Error 800A0046

When you get a pop-up message box.  Put on your detective hat, and pay close attention to the line number.  Error 800A0046 is a runtime error, so the problem is likely to outside your script, there could be something the matter with permissions on an application server.

The Cause of Error 800A0046

In the example above, Line 6: is the source of the error.  Char 1: is not always very useful as the error could be anywhere on the line, and WSH still blames char 1.

The cause of error 800A0046 is likely to be read-only permissions on some aspect of your server.  The Source: tells us that this is a runtime error, therefore the syntax is probably o.k.

The Solution

If its Exchange, then check the MailRoot and Pickup folder permissions.  If its IIS check the permissions to run scripts.  If its SQL check the execute permissions on the services.

The solution in the printer problem below would be to change the share permissions on the HP6L printer share.

Example 1: Script to map a printer

In this example, the user does not have permission to install the HP6L printer. Tell the truth, an example script is not that useful with Error 800A0046 as you cannot see the permissions!

‘  VBScript to create a local printer mapped to a network server
‘  Guy Thomas February 2010.
Option Explicit
Dim netPrinter
Set netPrinter = CreateObject(«WScript.Network»)
netPrinter.AddWindowsPrinterConnection «ServerPrnHP6L»

Guy Recommends: Permissions Analyzer – Free Active Directory ToolFree Permissions Analyzer for Active Directory

I like thePermissions Monitor because it enables me to see quickly WHO has permissions to do WHAT.  When you launch this tool it analyzes a users effective NTFS permissions for a specific file or folder, takes into account network share access, then displays the results in a nifty desktop dashboard!

Think of all the frustration that this free utility saves when you are troubleshooting authorization problems for users access to a resource.  Give this permissions monitor a try – it’s free!

Download Permissions Analyser – Free Active Directory Tool

Example 2: Error 800A0046 When You Install Visual Studio 6.0 (Also other Microsoft Products)

When you install Visual Studio you get the following message.

Permission denied: ‘CreateObject’

/Retail/include/global_siteconfig_lib.asp, line 194

Once again it’s a permissions problem on the Windowssystem32 folder.  Another idea is to try the useful Free Permissions Analyzer.

Example 3: ASP on IIS (Kindly sent in by a reader)

The way we got error 800A0046 was running ASP on IIS under Server 2003R2. Someone wrote a debug routine that did an OpenTextFile from a FileSystemObject; I think what happened was there were multiple simultaneous attempts to open that file.

Example 4: Constantly Writing to File

Dim FSO
Dim oFS
CONST F_ATTR_RONLY = 1
Set FSO = CreateObject(«Scripting.FileSystemObject»)
Set oFS = FSO.GetFile(«d:testo2test.png»)
IF oFS.Attributes AND F_ATTR_RONLY ‘check if bit 1 is set – read only
THEN
‘do nothing
ELSE
FSO.CopyFile «d:testo1test.png», «d:testo2»
END IF

The problem was: the file is written into the sourcelocation every 10 seconds. This is done by a Closed Source Software i have no way of editing. It seems like i get the error (line 11) every time i try to READ the sourcefile while it is being written/created.
Sadly the only solution i found was to run the script with
c:windowssystem32wscript.exe «c:{path to script}» //B
preventing the errornotice.

I have found no way to check if the file is currently being modified except for try and error.

See More Windows Update Error Codes 8004 Series

• Error 800A101A8 Object Required   •Error 800A0046   •Error 800A10AD   •Error 800A000D

• Error 80048820   •Error 800A0401   •Review of SolarWinds Permissions Monitor

• Error 80040E14   • Error 800A03EA   • Error 800A0408   • Error 800A03EE

Solarwinds Free WMI Monitor

I like thePermissions Monitor because it enables me to see quickly WHO has permissions to do WHAT.  When you launch this tool it analyzes a users effective NTFS permissions for a specific file or folder, takes into account network share access, then displays the results in a nifty desktop dashboard!

Think of all the frustration that this free utility saves when you are troubleshooting authorization problems for users access to a resource.  Give this permissions monitor a try – it’s free!

Download Permissions Analyser – Free Active Directory Tool

Example 2: Error 800A0046 When You Install Visual Studio 6.0 (Also other Microsoft Products)

When you install Visual Studio you get the following message.

Permission denied: ‘CreateObject’

/Retail/include/global_siteconfig_lib.asp, line 194

Once again it’s a permissions problem on the Windowssystem32 folder.  Another idea is to try the useful Free Permissions Analyzer.

Example 3: ASP on IIS (Kindly sent in by a reader)

The way we got error 800A0046 was running ASP on IIS under Server 2003R2. Someone wrote a debug routine that did an OpenTextFile from a FileSystemObject; I think what happened was there were multiple simultaneous attempts to open that file.

Example 4: Constantly Writing to File

Dim FSO
Dim oFS
CONST F_ATTR_RONLY = 1
Set FSO = CreateObject(«Scripting.FileSystemObject»)
Set oFS = FSO.GetFile(«d:testo2test.png»)
IF oFS.Attributes AND F_ATTR_RONLY ‘check if bit 1 is set – read only
THEN
‘do nothing
ELSE
FSO.CopyFile «d:testo1test.png», «d:testo2»
END IF

The problem was: the file is written into the sourcelocation every 10 seconds. This is done by a Closed Source Software i have no way of editing. It seems like i get the error (line 11) every time i try to READ the sourcefile while it is being written/created.
Sadly the only solution i found was to run the script with
c:windowssystem32wscript.exe «c:{path to script}» //B
preventing the errornotice.

I have found no way to check if the file is currently being modified except for try and error.

See More Windows Update Error Codes 8004 Series

• Error 800A101A8 Object Required   •Error 800A0046   •Error 800A10AD   •Error 800A000D

• Error 80048820   •Error 800A0401   •Review of SolarWinds Permissions Monitor

• Error 80040E14   • Error 800A03EA   • Error 800A0408   • Error 800A03EE

Solarwinds Free WMI MonitorGuy Recommends: WMI Monitor and It’s Free!

Windows Management Instrumentation (WMI) is one of the hidden treasures of Microsoft operating systems.  Fortunately, SolarWinds have created the WMI Monitor so that you can examine these gems of performance information for free.  Take the guess work out of which WMI counters to use for applications like Microsoft Active Directory, SQL or Exchange Server.

Download your free copy of WMI Monitor


Do you need additional help?

  • For interpreting the WSH messages check Diagnose 800 errors.
  • For general advice try my 7 Troubleshooting techniques.
  • See master list of 0800 errors.
  • Codes beginning 08004…
  • Codes beginning 08005…
  • Codes beginning 08007…
  • Codes beginning 0800A…

Give something back?

Would you like to help others?  If you have a good example of this error, then please email me, I will publish it with a credit to you:

If you like this page then please share it with your friends


The Microsoft VBScript runtime error: Permission denied 800A0046, may faced while trying to install or uninstall a program or driver on your computer. The error 800A0046 is commonly caused because you ‘ll try to install a program on your computer without having administrative privileges or because you have enabled the User Account Control (UAC) on Windows 7 or Vista based computers. 

Permission denied 800A0046

In most cases the VBScript runtime error 800A0046, is occurred whenever you try to install the «Windows Installer Clean Up» utility, in order to remove a program from the system that you cannot uninstall by using the normal way (Programs and features).

This article contains two(2) methods to fix the «Permission denied 800A0046» Windows Script Host Error, on Windows 7 or Vista.

How to bypass the Windows Script Host «Permission Denied – Code 800A0046».

Before applying the methods below to resolve the VBScript Runtime 800A0046 error, first make sure that you have logged on as Administrator on your system,

Method 1: DISABLE User Account Control (UAC).

In order to disable the UAC (User Account Control):

1. Go to Start > Control Panel.
2. Open User Accounts.
3. Click at Change User Account Control settings.

VBScript Runtime error 800A0046

4, Move the slider on the left to Never notify and click OK.
5. Restart your computer.

disable uac - user account control

6. After restart, install (or uninstall) the program that caused the 800A0046 error.

Method 2: RUN the Installer (Setup.exe) as Administrator

In order to install a program as administrator:

1. Right click at the program (installer) that you ‘re trying to install and click Run as Administrator.

run as adminsitrator

That’s all folks! Did it work for you?

Please leave a comment in the comment section below or even better: like and share this blog post in the social networks to help spread the word about this solution.

If this article was useful for you, please consider supporting us by making a donation. Even $1 can a make a huge difference for us.

Возможно, вам также будет интересно:

  • Код ошибки 80092004 что это
  • Код ошибки 80092004 при обновлении windows server 2008
  • Код ошибки 80092004 при обновлении windows 7 как исправить
  • Код ошибки 80092004 net framework
  • Код ошибки 80090030 в тимс

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии