Solved

Using windows logoff process with XP task scheduler logs off run as user instead of current user

Posted on 2009-07-09
8
774 Views
Last Modified: 2012-05-07
I have created a batch file which simply calls on the windows logoff.exe process located in c:\windows\system32\logoff.exe

I then created a scheduled task to call on this batch file. By default, windows scheduler pulls the currently logged on user which is fine for that profile and the batch file executes perfectly. The user is logged out and all is well.

However, this is a business environment and many users log into this PC. For security purposes we want this machine to run the logoff process if the PC has been idle for 30 minutes. All conditions such as these can be specified very easily in the windows scheduler.

Problem: The problem lies in that if a user logs in and becomes idle thereby triggering the process, the "run as" user which is a local administrator on the PC runs the process and because the process is logoff that virtual secondary logon session is terminated instead of the current user logged into the PC. I have tried running as the system account and that did not work either.

Workaround: Entering "shutdown -r" in the batch file  to reboot the PC does not log off the  user running the process thereby allowing it to work as designed. It logs of the user who is logged into the pc as I would like.

I apologize if this is wordy but if anyone has any thoughts it would be much appreciated.
0
Comment
Question by:drappl
  • 4
  • 4
8 Comments
 
LVL 7

Expert Comment

by:sfarazmand
Comment Utility
Have you tried the shutdown -l which is the log off?
0
 
LVL 1

Author Comment

by:drappl
Comment Utility
Yes I tried that. It merely calls a different process but gives it the logoff option however it functions the same as logoff.exe.
0
 
LVL 7

Expert Comment

by:sfarazmand
Comment Utility
0
 
LVL 1

Author Comment

by:drappl
Comment Utility
After looking at the above links I have noticed they are mostly talking about writing VB Scripts which I've never done. In addition, winexit.scr is mentioned and if configured would probably work fine to log users off after 30 minutes of inactivity. The other condition which I forgot to mention was I only want this to be triggered between the hours of 8:00pm - 6:00am. I do not believe winexit has this functionality. This was the reason I was pursuing the windows scheduler route.
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 7

Expert Comment

by:sfarazmand
Comment Utility
save the code as .vbs file. Then use your scheduler to run the file. That should work.
Also, using the screensaver is easier. What is the issue if it logs off after hours? No one is there, no issues, right?

' *********************************************************************** 

' * 

' * LogoffIn30 - Logs off the current user in 30 minutes 

' * John Holliday - 12/29/2005 - 1.0 

' * ChangeAuthorName - DateOfChange - IteratedVersionNumber 

' * 

' *********************************************************************** 

' 

Option Explicit 
 

Public gobjWshShell 

  

Sub ScriptInit() 

Set gobjWshShell = CreateObject("WScript.Shell") 

End Sub 
 

Function Sleep(lintNumOfSeconds, lblnUseMilliseconds) 

' Put False as the second argument to use standard seconds. 

' Put True to use milliseconds. 

If lblnUseMilliseconds = False Then 

 lintNumOfSeconds = lintNumOfSeconds * 1000 

End If 

WScript.Sleep lintNumOfSeconds 

End Function 
 

Sub ShutDown(lintShutdownType) 

Dim strComputer 

Dim OpSys 

Dim OpSysSet 

strComputer = "." 

If lintShutDownType = "" then 

 lintShutDownType = 4 

End If 

Set OpSysSet = GetObject("winmgmts:{(Debug,Shutdown)}//" & strComputer & "/root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true") 

For Each OpSys in OpSysSet 

 OpSys.win32Shutdown(lintShutdownType) 

Next 

' The numbers in the Decimal column are for the lintShutDownType variable. 

' Action  Decimal  Binary 

' Logoff   0  0000 

' Reboot   2  0010 

' Force Logoff  4  0100 

' Force Reboot  6  0110 

' Powerdown   8  1000 

' Force Powerdown 12  1100 

End Sub 
 

Sub RunFor30() 

 On Error Resume Next 

Dim lblnIsDone 

Dim lintNumMinutes 

lintNumMinutes = 0 

   Do 

  lblnIsDone = False 

       Sleep 60, False 

       lintNumMinutes = lintNumMinutes + 1 

 Select Case lintNumMinutes 

  Case 25 

   gobjWshShell.Popup "Warning!" & vbCrLf & vbCrLf & "This workstaion will be logged off in 5 minutes!" & vbCrLf & "Please save your data and close any open applications." & vbCrLf & "This box will close in 15 seconds.", 15, "Logoff Warning", vbExclamation + vbOKOnly + vbSystemModal 

  Case 30 

   lblnIsDone = True 

   ShutDown 4        

  Case Else 

   ' Do nothing 

 End Select 

   Loop Until lblnIsDone = True 

End Sub 
 

' Processing starts here 
 

ScriptInit 

RunFor30 

WScript.Quit 
 

' *************** 

Open in new window

0
 
LVL 1

Accepted Solution

by:
drappl earned 0 total points
Comment Utility
I decided to go with the "shutdown -l" command. We re-thought our circumstances and realized that a reboot in the middle of the night if our conditions are met is not a bad thing.

Thanks for your help!
0
 
LVL 7

Assisted Solution

by:sfarazmand
sfarazmand earned 250 total points
Comment Utility
no prob. glad you got it figured out.
0
 
LVL 1

Author Comment

by:drappl
Comment Utility
Thanks for your help.
0

Featured Post

Wish Marketing would stop bothering you?

Is your marketing department constantly asking for new email signature updates? Are they requesting a different design for every department? Do they need yet another banner added? Don’t let it get you down! There is an easy way to manage all of these requests...

Join & Write a Comment

Issue: Unstable cursor in Windows XP and Windows runs extremely slow in that any click will bring up the Hour glass (sometimes for several seconds before giving you what you want) . Troubleshooting Process and the FINAL FIX: This issue see…
Possible fixes for Windows 7 and Windows Server 2008 updating problem. Solutions mentioned are from Microsoft themselves. I started a case with them from our Microsoft Silver Partner option to open a case and get direct support from Microsoft. If s…
Windows 8 comes with a dramatically different user interface known as Metro. Notably missing from the new interface is a Start button and Start Menu. Many users do not like it, much preferring the interface of earlier versions — Windows 7, Windows X…
This Micro Tutorial will give you a basic overview of Windows DVD Burner through its features and interface. This will be demonstrated using Windows 7 operating system.

772 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

11 Experts available now in Live!

Get 1:1 Help Now