Re: add computer account to AD security group during logon
- From: "Richard Mueller [MVP]" <rlmueller-nospam@xxxxxxxxxxxxxxxxxxxx>
- Date: Mon, 3 Sep 2007 12:29:10 -0500
"Peter van der Laarse" <PetervanderLaarse@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote
in message news:5F7AC567-A704-4A30-8E4E-44ABC78C26F7@xxxxxxxxxxxxxxxx
Hello,
Due to a application that reads a AD security group to count his licence,
I'd like to achief the following goal to know how many users and computer
actually login to our domain on a daily base..
If a user logs-on to his workstation he and the computer account on wich
the
user logs on must be added to a separate AD security group. If the same
user
logs-off he and the computeraccount must be removed from those groups.
Group
names are eg. "GrLoggedOnUsers" and "GrLoggedOnWorkstations".
Is there a way to do this by using a logonscript and logoffscript with a
command like DSmod?
I also want to log this actions. Can I use Dsquery or DSget for that in
the
same script?
Maybe there are other way to do this.
mvg, Peter
This adds a lot of replication traffic. Your group memberships are modified
(and replicated) at every logon and logoff. I would suggest a logon and a
logoff script that log information to a text file. I have an example
VBScript logon script that logs username, computer name, date/time, and IP
address to a log file linked here:
http://www.rlmueller.net/Logon5.htm
You can remove the parts dealing with the IP address. The log file should be
in a shared location where everyone has write access. You could use a
similar logoff script, but have the script echo "Logoff" instead of "Logon"
to the text file. The script is designed so it can be read into a
spread*** for analysis. The "fields" are delimited by semicolons.
Any method that adds and removes users and computers from groups should
first check if the user is already a member. If a computer crashes the
logoff script won't run, so when the user attempts to logon the Add step
will fail. I don't recommend this, but VBScript programs for logon and
logoff could be similar to (assuming all clients are W2k or above):
====== Logon script ==========
Option Explicit
Dim objSysInfo, objUser, objComputer, strUserDN, strComputerDN
Dim objUserGroup, objComputerGroup
' Retrieve DN if user and local computer.
Set objSysInfo = CreateObject("ADSystemInfo")
strUserDN = objSysInfo.UserName
strComputerDN = objSysInfo.ComputerName
' Bind to user and computer objects.
Set objUser = GetObject("LDAP://" & strUserDN)
Set objComputer = GetObject("LDAP://" & strComputerDN)
' Bind to groups. You must specify the full Distinguished Names.
Set objUserGroup =
GetObject("LDAP://cn=GrLoggedOnUsers,ou=West,dc=MyDomain,dc=com")
Set objComputerGroup =
GetObject("LDAP://cn=GrLoggedOnWorkstations,ou=West,dc=MyDomain,dc=com")
' Add user and computer to groups, if not already members.
If (objUserGroup.IsMember(objUser.AdsPath) = False) Then
objUserGroup.Add(objUser.AdsPath)
End If
If (objComputerGroup.IsMember(objComputer.AdsPath) = False) Then
objComputerGroup.Add(objComputer.AdsPath)
End If
=========== Logoff script ===========
Option Explicit
Dim objSysInfo, objUser, objComputer, strUserDN, strComputerDN
Dim objUserGroup, objComputerGroup
' Retrieve DN if user and local computer.
Set objSysInfo = CreateObject("ADSystemInfo")
strUserDN = objSysInfo.UserName
strComputerDN = objSysInfo.ComputerName
' Bind to user and computer objects.
Set objUser = GetObject("LDAP://" & strUserDN)
Set objComputer = GetObject("LDAP://" & strComputerDN)
' Bind to groups. You must specify the full Distinguished Names.
Set objUserGroup =
GetObject("LDAP://cn=GrLoggedOnUsers,ou=West,dc=MyDomain,dc=com")
Set objComputerGroup =
GetObject("LDAP://cn=GrLoggedOnWorkstations,ou=West,dc=MyDomain,dc=com")
' Remove user and computer from groups, if members.
If (objUserGroup.IsMember(objUser.AdsPath) = True) Then
objUserGroup.Remove(objUser.AdsPath)
End If
If (objComputerGroup.IsMember(objComputer.AdsPath) = True) Then
objComputerGroup.Remove(objComputer.AdsPath)
End If
--
Richard Mueller
Microsoft MVP Scripting and ADSI
Hilltop Lab - http://www.rlmueller.net
--
.
- Follow-Ups:
- Re: add computer account to AD security group during logon
- From: Peter van der Laarse
- Re: add computer account to AD security group during logon
- Prev by Date: Re: Recover OU
- Next by Date: Profiles on different Workstations
- Previous by thread: Re: View Distinguished Name from object Properties in ADUC
- Next by thread: Re: add computer account to AD security group during logon
- Index(es):