/build/static/layout/Breadcrumb_cap_w.png

How do you kill screensaver process?

Hi everyone,
OK, my problem is this.....

I have got an msi that is installing a new company wide screensaver, basically overwriting files etc.

But, where my problem lies is where I want to incorporate a bit of logic via VBscript that kills the screensaver if it's running. This then will allow me to replace certain screensaver files that are otherwise "locked" unless I kill the screensaver.

I have included the script used to kill the process (*.scr) in my msi and I have it running as a Deferred Execution - System Context Custom Action. However, it doesn't seem to kill the process when i install the msi.

If I run the msi manually when I have the preview box for the screensaver open it seems to kill the process and the screensaver in the preview box but when the screensaver is running as normal (not in preview), the screensaver isn't stopped and the process isn't killed.

My question is, does anyone know in what context the screensaver (.scr) process runs in when it's running full screen, main mode.

It runs in User Context when previewing it in the preview pain.

Thanks,
Rgds,
Mark

0 Comments   [ + ] Show comments

Answers (1)

Posted by: mark_holland21 16 years ago
Fourth Degree Green Belt
0
I've discovered how to do it vis script.


We need SeDebugPrivilege to kill a screensaver executing under a different security context - i.e when running as normal as opposed to when you preview it. The following section of code sorted it out coupled with the rest of my script to kill a process.

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

' we need SeDebugPrivilege to kill screensaver executing under a different security context
objWMIService.Security_.ImpersonationLevel = 3
objWMIService.Security_.privileges.addasstring "SeDebugPrivilege", True

Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name Like '%.scr'")

For Each objProcess in colProcessList
objProcess.Terminate()
Next
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ