I have found and modified a couple of VBS scripts that will copy and then run files remotely. I have attempted to 'Task Schedule' one of the scripts but it fails every time. I found the VBS2exe.com site and converted them to exe's but they still dont run through the Scheduler.

I have read that XP blocks 'unsafe' executables and that an ActiveX code may be needed to allow this to be run.

Can someone please help this newbe?

Here is one of my scripts I want to schedule for setting up a default printer:

----------------
Set WSHNetwork = CreateObject("WScript.Network")
WSHNetwork.SetDefaultPrinter "Printer1"
----------------

I know I could put the .exe or .VBS in the start menu to run in the background once the user logs in but do'nt want to do that.
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
If it's setting a default printer, it should be executed within the context of the logged on user. The best/easiest way to accomplish that is using a login script.
Answered 06/24/2008 by: ds0934
Orange Senior Belt

Please log in to comment
0
I have this script that I use to login and transfer files through the network but I can not seem to merge the bottom script to the top one.

'===========================
file1 = "C:\hostname.txt"
file2 = "C:\Deploylog.txt"

TimeNow = Time
DateNow = Date
DateTimeNow = Trim(Date & " " & Time)

Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FileExists(file1) Then
Set txtStream = fso.OpenTextFile(file1) ' Open text file.
Set txtStreamOut = fso.CreateTextFile(file2) ' Open output file.
txtStreamOut.WriteLine("Beginning of Log file at " & DateTimeNow & ".")
txtStreamOut.WriteLine("Started connection to Host(s).")

Do While Not (txtStream.atEndOfStream)

'Read a hostname
'---------------
Text = txtStream.ReadLine
Hostname = Trim(Text)

' Attempt to map a drive
' ----------------------
Dim net
Set net = CreateObject("WScript.Network")
net.MapNetworkDrive "H:", "\\" & Hostname & "\c$","True"

If Err.Number <> 0 Then
WScript.Echo "Error# " & Err.Number & " - " & Err.Description
Err.Clear()

Else ' ---> Start copying files process.
txtStreamOut.WriteLine("Managed to map to " & Hostname)

'Attempt to copy files
'---------------------
txtStreamOut.WriteLine("Attempting to copy files...")
fso.CopyFolder "C:\netcopy", "H:\", "True" 'from specified location to destination.
txtStreamOut.WriteLine("Copying Completed.")

'/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
'This is where I attempted to merge the bottom script (I deleted my attempt).
'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

'Attempt to unmap drive
' ----------------------
txtStreamOut.WriteLine("Attempting to unmap Drive H: from the administrative share: \\" & Hostname & "\c$" & "...")

net.RemoveNetworkDrive "H:", "True", "True"
If Err.Number <> 0 Then
txtStreamOut.WriteLine("Err# " & Err.Number & " - " & Err.Description)
Err.Clear()

Else
txtStreamOut.WriteLine("Successful upmap from " & Hostname & ".")
End if
End if

txtStreamOut.WriteLine("Ended connection(s) to host(s).")

Loop
End If

WScript.Echo "End of Deploy.vbs Script."

TimeNow = Time
DateNow = Date
DateTimeNow = Trim(Date & " " & Time)

txtStreamOut.WriteLine("End of Log file at " & DateTimeNow)

'<End of script.>


'///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
'Second Script.
'//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

'<Start of Script>

' Succesfull in setting scheduled task locally
' Failed to connect remotely.
strComputer = "." 'Connects to specified computer.
strCommand = "dflt_PHON.EXE" 'Opens specified file from OS root.

Const INTERVAL = "n"
Const MINUTES = 1

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objScheduledJob = objWMIService.Get("Win32_ScheduledJob")
Set objSWbemDateTime = CreateObject("WbemScripting.SWbemDateTime")

objSWbemDateTime.SetVarDate(DateAdd(INTERVAL, MINUTES, Now()))
errReturn = objScheduledJob.Create(strCommand, objSWbemDateTime.Value, False, 0, 0, True, intJobID)


If errReturn = 0 Then
Wscript.Echo "notepad.exe was started with a process ID: " & intJobID
Else
Wscript.Echo "notepad.exe could not be started due to error: " & errReturn
End If
'<End of script.>
'===========================
Answered 06/24/2008 by: Eddieduce@yahoo.com
Senior Yellow Belt

Please log in to comment
0
I was able to figure out the way to put the script in the start folder for user accounts to change the default printer.

I am now attempting to change the printer without placing the script in the start folder.

I added the code:

Set WSHNetwork = CreateObject("WScript.Network")
WSHNetwork.SetDefaultPrinter "Print1"

The problem I am having is that, even though I am already connected to the remote machine and my script changes file attributes and copies files, when it gets to this part it changes the local default printer.

What am I doing wrong?
Answered 07/17/2008 by: Eddieduce@yahoo.com
Senior Yellow Belt

Please log in to comment
0
check out prn????.vbs in your system folder (winxp). Lots of code to manage printers. All of the heavly lifting has already been done by the geniuses at msft :-)
Answered 07/17/2008 by: aogilmor
Ninth Degree Black Belt

Please log in to comment
Answer this question or Comment on this question for clarity