Solved

permission denied involving CreateObject("Scripting.FileSystemObject")

Posted on 2006-10-28
11
501 Views
Last Modified: 2010-08-05
code:

set fs = CreateObject("Scripting.FileSystemObject")
     set folder = fs.GetFolder(path)

     for each item in folder.SubFolders
       ListFolderContents(item.Path)
     next


This code has worked for about 6months or so on a windows 2003 server.  Any recent updates (security related maybe) that have changed the way permissions work?  I get a permission denied error on the  for each item line.

iusr machine account has read and write perms.

thanks
0
Comment
Question by:razzzzer
  • 6
  • 5
11 Comments
 
LVL 25

Expert Comment

by:kevp75
Comment Utility
>>iusr machine account has read and write perms.<<

on the folder? or in IIS?

i ask only because I never got IIS only permissions to work, I always had to make sure the folder  permissions were set as well....
0
 

Author Comment

by:razzzzer
Comment Utility
on folder thru the file system
0
 
LVL 25

Expert Comment

by:kevp75
Comment Utility
you'll have to show us the rest of your code.
0
 

Author Comment

by:razzzzer
Comment Utility
set fs = CreateObject("Scripting.FileSystemObject")
set folder = fs.GetFolder(path)

for each item in folder.SubFolders
     ListFolderContents(item.Path)
next


i get an error on the for each line... odd because this worked up until recently so i can only assume a windows update changed things or perhaps a change was made in the folder but i cannot see what that would have been....
0
 
LVL 25

Expert Comment

by:kevp75
Comment Utility
the whole code please.  Also, the error that comes up would help  ;-)
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 

Author Comment

by:razzzzer
Comment Utility
well its a sub like so:
<% sub ListFolderContents(path)

     dim fs, folder, file, item, url

     set fs = CreateObject("Scripting.FileSystemObject")
     set folder = fs.GetFolder(path)

     for each item in folder.SubFolders
       ListFolderContents(item.Path)
     next

     'Display a list of files.
       theimage = galleryroot & (rsGalleryDetail.Fields.Item("fldGalleryID").Value) & "/" & (rsGalleryDetail.Fields.Item("fldGalleryPic").Value)

     for each item in folder.Files
       url = MapURL(item.path)
        
         if url <> theimage then
       %>


the error:

Microsoft VBScript runtime error '800a0046'

Permission denied

/template_gallery_detail.asp, line 219


line 219 is the for loop
0
 

Author Comment

by:razzzzer
Comment Utility
to be more precise line 219 is

for each item in folder.SubFolders

not sure because there is so much code and functions .. hope this is enough.. it just seems to me that the permissions are not correct on the folder that this code works on but .. the iusr accounts seems fine...
0
 
LVL 25

Accepted Solution

by:
kevp75 earned 125 total points
Comment Utility
and...are we sure that when you are calling the sub that you are passing a valid path?

and we sure that IUSR_machine name has full control on that folder?
0
 

Author Comment

by:razzzzer
Comment Utility
adding a response.write(path) right before the for loop returns a correct path

IUSR_machine has full control on the WHOLE web folder currently
0
 

Author Comment

by:razzzzer
Comment Utility
well even tho the check boxes were set for full permissions i went ahead and clicked on advanced permissions and check the second box "replace permission entries on all child objects with entries shown here that apply to child objects" and clicked apply and things seem to work now... i just hope i didnt open things up (made a security risk).  Big difference between a programmer and server admin ;)
0
 
LVL 25

Expert Comment

by:kevp75
Comment Utility
honestly..if this is an upload/download directory it should be the only one to have such permissions, and even then to prevent leeching, you may want to consider moving to be in the same level as the webroot and coming up with a ado.stream script to stream the files to the browser

i do it at http://www.portalfanatic.com/gallery/?pCat=27

even the thumbnails are stored at the same level as the webroot folder and are streamed to the page via a binary write.

just food for thought  :-)

glad I could help!
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Suggested Solutions

I would like to start this tip/trick by saying Thank You, to all who said that this could not be done, as it forced me to make sure that it could be accomplished. :) To start, I want to make sure everyone understands the importance of utilizing p…
I was asked about the differences between classic ASP and ASP.NET, so let me put them down here, for reference: Let's make the introductions... Classic ASP was launched by Microsoft in 1998 and dynamically generate web pages upon user interact…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now