Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Login script to run only upon first login of the day

Posted on 2013-01-23
9
Medium Priority
?
609 Views
Last Modified: 2013-01-29
I need to write a VBscript that will display a message only upon a user's first login of the day. These users move around quite a bit during the day and are always logging into different computers. My initial plan was to have the script look at the user account's last login attribute and only display the message if the last login date is not the same as the current date. However, I started thinking that this might not work because the last login attribute is not replicated to all domain controllers. Also, since this is to be a login script the last login is technically going to be the most recent login so the last login date and the current date would always be the same. Is there a better way to handle this? Oh, I forgot to mention this would be deployed as a login script via GPO.
0
Comment
Question by:mcpp661
[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
  • 4
  • 3
  • 2
9 Comments
 
LVL 14

Assisted Solution

by:athomsfere
athomsfere earned 1000 total points
ID: 38810023
If you use home drives, you could place a file on the users home drives with the login date, on login it checks the Home drive, and the date. If its the current day, it exits, otherwise it proceeds as well as changes the file to contain the current date.
0
 

Author Comment

by:mcpp661
ID: 38810141
I do use home drives for most users, however the users that are to see this message from the login script have no need for a home drive.
0
 
LVL 14

Expert Comment

by:athomsfere
ID: 38810201
A share elsewhere available?
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:mcpp661
ID: 38810811
I may have to make one up.
0
 
LVL 14

Expert Comment

by:athomsfere
ID: 38811245
That seems the simplest route to me.
0
 
LVL 65

Accepted Solution

by:
RobSampson earned 1000 total points
ID: 38817393
Hi, this script is a simple demonstration of displaying a message once per day for any user, by storing a file in their temporary folder to check the date against.

Regards,

Rob.

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set objNetwork = CreateObject("WScript.Network")
strStamp = objShell.ExpandEnvironmentStrings("%TEMP%") & "\LogonScriptStamp.txt"
blnShowMessage = False
If objFSO.FileExists(strStamp) = False Then
	blnShowMessage = True
Else
	If objFSO.GetFile(strStamp).DateLastModified < Date Then blnShowMessage = True
End If
If blnShowMessage = True Then
	Set objFile = objFSO.CreateTextFile(strStamp, True)
	objFile.Close
	Set objADSysInfo = CreateObject("ADSystemInfo")
	Set objUser = GetObject("LDAP://" & objADSysInfo.Username)
	MsgBox "Hello " & objUser.DisplayName & "," & vbCrLf & "You have logged in for the first time today on " & objNetwork.ComputerName
End If

Open in new window

0
 

Author Comment

by:mcpp661
ID: 38820580
Ah.....I'm going to test it at work on Monday. Thanks Rob!
0
 

Author Closing Comment

by:mcpp661
ID: 38831291
Thanks guys. I decided to award both of you points since the first poster had the idea of using a file on the home drives (which is what I'm going to have to do since these users log into multiple stations each day) and Rob provided code.
0
 
LVL 65

Expert Comment

by:RobSampson
ID: 38832889
No problem.  You can change
strStamp = objShell.ExpandEnvironmentStrings("%TEMP%") & "\LogonScriptStamp.txt"

to
strStamp = "N:\LogonScriptStamp.txt"

or something to put the file in a different location.  That approach is obviously used where you want the message to appear once per day regardless of how many computers they log on to, whereas the local %TEMP% could be used to have it once per computer instead.

Regards,

Rob.
0

Featured Post

Setting up LaraDock for Laravel

Learn how to set up LaraDock in a Laravel project - LaraDock gives us an easy way to run a Laravel application using Docker in a single command.

Question has a verified solution.

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

ADCs have gained traction within the last decade, largely due to increased demand for legacy load balancing appliances to handle more advanced application delivery requirements and improve application performance.
A quick Powershell script I wrote to find old program installations and check versions of a specific file across the network.
Learn the basics of if, else, and elif statements in Python 2.7. Use "if" statements to test a specified condition.: The structure of an if statement is as follows: (CODE) Use "else" statements to allow the execution of an alternative, if the …
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…

721 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