Solved

copy all contents of a folder to user's desktop VBS Logon Script

Posted on 2009-07-01
5
232 Views
Last Modified: 2012-06-27
Hello, I am looking to copy some links and such to the desktop of my user's computers using a VB logon script.  any ideas?
0
Comment
Question by:OSXaddict
  • 3
  • 2
5 Comments
 
LVL 3

Expert Comment

by:astroviper
ID: 24760088
Just change strSource to the folder that contains everything you want to end up on the desktop.

strSource = "E:\test"
 

Const FOF_CREATEPROGRESSDLG = &H0&

Set oShell = CreateObject("WScript.Shell")

ParentFolder = oShell.SpecialFolders("Desktop")

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.NameSpace(ParentFolder) 

objFolder.CopyHere strSource & "\*", FOF_CREATEPROGRESSDLG

Open in new window

0
 

Author Comment

by:OSXaddict
ID: 24760490
Thank you! Will this replace the item if it is already on the desktop?
0
 
LVL 3

Expert Comment

by:astroviper
ID: 24760516
See: http://msdn.microsoft.com/en-us/library/bb787866%28VS.85%29.aspx

I just tested it and it works the same as a Windows gui copy. It asks if you want to replace.
0
 

Author Comment

by:OSXaddict
ID: 24763998
is there any way that I can make it force to replace?
0
 
LVL 3

Accepted Solution

by:
astroviper earned 500 total points
ID: 24764383
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_21512937.html

This seems to work.


Set oShell = CreateObject("WScript.Shell")

ParentFolder = oShell.SpecialFolders("Desktop")

Set oFSO = CreateObject("Scripting.FileSystemObject")

Set oSourceFolder = oFSO.GetFolder("C:\Users\Mike\Downloads\remote admin tools windows 7")

Set oTargetFolder = oFSO.GetFolder(ParentFolder)
 

RecursiveCopy oSourceFolder, oTargetFolder, True
 

Sub RecursiveCopy(ByRef oSource, ByRef oTarget, ByVal bOverWrite)
 

    Dim oFolder, oFile, szPath
 

    For Each oFile In oSource.Files

        szPath = Replace(oTarget.Path & "\" & oFile.Name, "\\", "\")

        If (oFSO.FileExists(szPath) And bOverWrite) Then

            If oFile.DateLastModified > oFSO.GetFile(szPath).DateLastModified Then oFile.Copy szPath, bOverWrite

        ElseIf (oFSO.FileExists(szPath) And Not(bOverWrite)) Then

            'DO NOTHING BECAUSE WE ARE NOT OVERWRITING

        ElseIf Not(oFSO.FileExists(szPath)) Then

            oFile.Copy szPath, bOverWrite

        End If

    Next
 

    For Each oFolder In oSource.Subfolders

        szPath = Replace(oTarget.Path & "\" & oFolder.Name, "\\", "\")
 

        If Not(oFSO.FolderExists(szPath) And bOverWrite) Then

            Set oNewTarget = oFSO.CreateFolder(szPath)

        Else

            Set oNewTarget = oSO.GetFolder(szPath)

        End If
 

        RecursiveCopy oFolder, oTarget, bOverWrite

    Next
 

End Sub

Open in new window

0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Script to copy or move mouse-selected collection of files plus targets referenced by shortcuts (.lnk) The purpose of this article is to help illuminate the real challenges and options available (where they may exist) for utilizing simple scriptin…
Well hello again!  Glad to see you've made it this far without giving up.  In this, the fourth installment of my popular series, I'm going to cover functions and subroutines, what they are, and why they are useful.  Just in case you stumbled onto th…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

707 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

19 Experts available now in Live!

Get 1:1 Help Now