?
Solved

Deploy MDE's on servers

Posted on 2010-11-17
10
Medium Priority
?
361 Views
Last Modified: 2012-05-10
CURRENT SITUATION: Currently we have access Front ends with a combination of SQL/Access backends. When a employee needs access to an application we have a script we run that install it (Access MDE Front-end), a desktop shortcut and 2 TXT files (one with the app name and the other the app name with version number. The user can now access the application.

Weeks later and update is done. The new MDE is placed in a certain location on the server and when the user logs in it checks for the 2 TXT files and (1) if they have the app goes to step (2) checks the version number. If it's the same it does nothing; otherwise it copies the new MDE to their hard drive.

MOVING TO: We are going virtual thus users will not have a C drive. What I have come up with is s structure similar to a HOME drive. Where each user will have a folder and inside it contains the MDE. We are starting to use Citrix XenApp so I have published shortcut that will run the app where I tell it to for each user.

PROBLEM: now my problem is updating. Since we use WYSE Thin Clients the user does not actually login to the "system" till they launch an app. I can get the login script to run and replace files but if the APP is a database that needs replacement and is open it will not over write.

WHAT I WOULD LIKE TO: Is create a script that would parse through all users directories and look for an MDE Name (for example HR.MDE) if it exists copy the file to that users folder and replace it.

I figure I could scheedule to deployment batch file to run during the night say at 2 am. Since it would run through all users folders and replace the file it would only need to be run once.

MY MAIN ISSUE: What is the code to reda from a folder say called D:\UserAPPs. They go into each folder, check for that MDE and if exist replace it. It not exist or when done with that user go to the next folder till it went through all the users folders.

Wish I could 1000 ponts on this. Please Help. Any/All suggetsions will be apprciated.
0
Comment
Question by:ccowan159
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
  • 2
10 Comments
 
LVL 85
ID: 34157010
You could do this:

Build a Batch file that copies the FE from a specific location to one that is common to all users (for exampled: Home\Users]<UserName), then launch that file. I've done this on a XenApps setup and it works pretty well. Each time the user launches the app (or in your case, fires off the app) they get a new copy of the FE and that new copy is launched.
0
 

Author Comment

by:ccowan159
ID: 34157182
What I  hope to do is not have each user run it every time they login.

I hope I could put the batch (deployment file) on the server. Then when we update the app we schedule it for night time.

It would then read the USERAPP directory and look in each users folder and if the app is found replace it. If not continue on till done.

It would be easy for use to use windows scheduler to say set app 1 at 2 am, app 2 at 3 am. Of course we would set it to run only once since it would replace all files as needed.

Could you give me a sample of the batch file you use?

Any idea how I can do this
0
 
LVL 85
ID: 34158181
My batch file doesn't do anything more than copy a file from LocationA to LocationB, and then launch the new file at LocationB. It doesn't involve looping, directory searches, etc. YOu can probably do that with batch scripting, but I'm no expert i that area.

It seems to my your goal is to move a fresh copy of a database to a user's working directory. This is as simple as a Copy statement, but I'm not sure what the directory searching is needed for. Can you provide more details?
0
DFW AZURE MEETUP TONIGHT FRI 6PM

We will be discussing what Azure Stack is, how does it fit into the suit of offerings that Azure has currently, and where can it fit into your organizations technology stack. We will also be discussing limitations of the platform while covering various applicable scenarios.

 

Author Comment

by:ccowan159
ID: 34158189
Basically you are right it is a fresh copy. My main is is the looping through the directories and then check for the file. If exist replace; if not continue to the next users folder till all done
0
 
LVL 85
ID: 34158245
I'm not sure how to do this with batch scripting. You might ask the Moderators to include the Scripting Zones in this question.
0
 
LVL 17

Accepted Solution

by:
JezWalters earned 2000 total points
ID: 34162753
There are lots of different language choices for scripting what you're after but since you're already using VBA, why not use VBScript?  Make sense to me!  ;-)

If I've understood you correctly, you can achieve what you're after like this:
Option Explicit  ' Force explicit variable declaration

' Declare constants
Const USER_APPS = "D:\UserAPPs"            ' User applicatons folder
Const NEW_APP = "C:\Temp\Test\NewApp.mde"  ' New applicaton

' Declare variables
Dim fldApplication       ' Applications folder
Dim fldUser              ' User folder
Dim fsoFileSystemObject  ' File system object
Dim strUserApp           ' User application

' Process user applications folders
Set fsoFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set fldApplication = fsoFileSystemObject.GetFolder(USER_APPS)
For Each fldUser In fldApplication.SubFolders

    ' Replace application, if it exists
    strUserApp = fldUser & "\" & Mid(NEW_APP, InStrRev(NEW_APP, "\") + 1)
    If fsoFileSystemObject.FileExists(strUserApp) Then
        fsoFileSystemObject.CopyFile NEW_APP, strUserApp
    End If
    Set fldUser = Nothing
Next
Set fldApplication = Nothing
Set fsoFileSystemObject = Nothing

Open in new window

0
 
LVL 17

Expert Comment

by:JezWalters
ID: 34162766
You'll need to change the NEW_APP constant to be the path to your new MDE application, and then save the above as a text file with the extension '.vbs'.

It'd be worth adding some error handling too - let me know if you'd like some help with this!
0
 

Author Closing Comment

by:ccowan159
ID: 34187782
The VB solution is the best one. I used this code with some other code and was able to get the application to deply as needed without any users help
0

Featured Post

Stressed Out?

Watch some penguins on the livecam!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In threads here at EE, each comment has a unique Identifier (ID). It is easy to get the full path for an ID via the right-click context menu. However, we often want to post a short link within a thread rather than the full link. This article shows a…
The Windows functions GetTickCount and timeGetTime retrieve the number of milliseconds since the system was started. However, the value is stored in a DWORD, which means that it wraps around to zero every 49.7 days. This article shows how to solve t…
The viewer will learn how to dynamically set the form action using jQuery.
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …
Suggested Courses

764 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