itnordic
asked on
Start powerpoint pps on remote pc using vb script
Hi,
I need some help from you experts. The thing I am trying to to is to start a powerpoint presentation that is visible on a remote pc. I have come so far that when I run the script, the process starts on the remote pc, but I want it to be visible in fullscreen on the remote pc screen.
I have been playing around with the code so there are a bunch of lines that most likely aren't necessary. I'm not very good at coding so if you can help me out it would be very much appreciated
I need some help from you experts. The thing I am trying to to is to start a powerpoint presentation that is visible on a remote pc. I have come so far that when I run the script, the process starts on the remote pc, but I want it to be visible in fullscreen on the remote pc screen.
I have been playing around with the code so there are a bunch of lines that most likely aren't necessary. I'm not very good at coding so if you can help me out it would be very much appreciated
Dim objFSO, objFileCopy, objGuyFile
Dim strFilePath, strDestination
strComputer = "sexpw193"
strUser = "remotepc\username"
strPassword = "password"
strProcessKill = "'POWERPNT.EXE'"
strFilePath = "d:\H\PowerPoint\presentation.pps"
strDestination ="\\remotepc\PPT$\"
'Kill powerpoint show
Set wbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set wbemServices = wbemLocator.ConnectServer(strComputer, "root\cimv2", strUser, strPassword)
Set wbemObjectSet = wbemServices.ExecQuery("Select * from Win32_Process where Name = " & strProcessKill)
For Each wbemObject In wbemObjectSet
wbemObject.Terminate
Next
'code to copy ppt to dest
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFileCopy = objFSO.GetFile(strFilePath)
objFileCopy.Copy (strDestination)
'Restart show
'Set objProcess = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
'strCommand = "wscript " & Chr(34) & "D:\PPT\pp.vbs" & Chr(34)
'objProcess.Create strCommand,null,null,intProcessID
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
Error = objWMIService.Create("d:\PPT\pp.vbs", null, null,intProcessID)
If Error = 0 Then
MsgBox (strProcess & " was started with a process ID of " & intProcessID & ".")
Else
MsgBox (strProcess & " could not be started due to error " & _
errReturn & ".")
End If
REM Dim objWMIService, objProcess
REM Dim strShell, objProgram, strVBS
REM strVBS = "wscript.exe d:\PPT\pp.vbs"
REM ' Connect to WMI
REM set objWMIService = getobject("winmgmts://"_
REM & strComputer & "/root/cimv2")
REM ' Obtain the Win32_Process class of object.
REM Set objProcess = objWMIService.Get("Win32_Process")
REM Set objProgram = objProcess.Methods_( _
REM "Create").InParameters.SpawnInstance_
REM objProgram.CommandLine = strVBS
REM 'Execute the program now at the command line.
REM Set strShell = objWMIService.ExecMethod( _
REM "Win32_Process", "Create", objProgram)
REM WScript.echo "Created: " & strVBS & " on " & strComputer
Wscript.Quit
ASKER
Hiya, and thanks for your reply.
Too bad I couldn't use my first idea :-) The thing is that I really want to start a slide show on my remote pc, and it uses powerpoint to show it.
I tried getting around the problem using PSEXEC, but since it want to start the slide slow I used autoit to create an exe that, when I run it locally, starts the slide show. But when I try to start it remotely it isn't visible. Process is started when I check the task manager.
Is there no way to script my way around this?
Too bad I couldn't use my first idea :-) The thing is that I really want to start a slide show on my remote pc, and it uses powerpoint to show it.
I tried getting around the problem using PSEXEC, but since it want to start the slide slow I used autoit to create an exe that, when I run it locally, starts the slide show. But when I try to start it remotely it isn't visible. Process is started when I check the task manager.
Is there no way to script my way around this?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Works like a charm now.
I found the problem. When I created the exe with autoit I put in the wrong sourcefolder for the vb script and that was why the file couldn't be found when I started the script.
I found the problem. When I created the exe with autoit I put in the wrong sourcefolder for the vb script and that was why the file couldn't be found when I started the script.
Unfortunately you can't use objProcess.Create method to launch remote processes Interactively according to Microsoft, and this is their quote :
"For security reasons the Win32_Process.Create method cannot be used to start an interactive process remotely."
Full explanation of this method you can find here:
http://msdn.microsoft.com/en-us/library/aa389388(VS.85).aspx
I would suggest you use PSExec.exe tool from Mark Russinovich, who now works for Microsoft. This tool WILL allow you to launch any process interactively on any remote PC as long as you have rights on that remote PC. This tool is extremely versatile and is one of those "MUST HAVE" Admin tools in my oppinion.
You can find PSExec.exe tool here:
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
Hope this helps you solve your problem.