Improve company productivity with a Business Account.Sign Up

x
?
Solved

Login Script

Posted on 2011-02-14
1
Medium Priority
?
430 Views
Last Modified: 2012-05-11
I know it is in here some were but I can not find it.  I need help to develop a login script for users in groups and sub groups.  

I am using nested groups and need a better way to find out what groups a user belongs to that way I came up with seems too complicated.

If I try to use
Const DEP = "cn=01-0#-00"
to map a departmental drive or printer I do not get any response.  "cn=01-0#-00" only contains groups not any users.  

The actual groups that users are in look like this
Const FAC-A = "cn=01-0#-01-0A"
or
Const STA-A = "cn=01-0#-02-0A"
or
Const STU-A = "cn=01-0#-09-0A"
if I map a drive or printer to one of these I get great results but then I repeated code for department or devision shared resources.

here is my structure:
All staff members for a give department are put into these groups:
Const STA-A = "cn=01-0#-02-0A"
Const STA-B = "cn=01-0#-02-0B"
Const STA-C = "cn=01-0#-02-0C"
Const STA-D = "cn=01-0#-02-0D"
Const STA-E = "cn=01-0#-02-0E"
Const STA-F = "cn=01-0#-02-0F"

All of the staff groups for a give division are put into this group:
Const STA = "cn=01-0#-02-00"
This group "cn=01-0#-02-00" is also a member of the divisions all users group.

Is there a way to determine the groups a user belongs to when the login and then from that information map drives and assign printers?

DC-Windows 2008r2
Workstations are XP and Win7
will be applied as part of a GPO

I hope I gave enough info for someone to be able to help.  Been at this for a few hours now and my eyes are giving out.

 
'========================================================================
' AUTHOR:  Mike Land 
' COMPANY: Cypress college
' COMMENT: Master Login script
'=========================================================================

Dim Network
Dim ADSysInfo
Dim CurrentUser
Dim Groups
Dim Strgroups

'Department
Const DEP = "cn=01-0#-00"

'All FAC- Groups
Const FAC = "cn=01-0#-01-00"
Const FAC-A = "cn=01-0#-01-0A"
Const FAC-B = "cn=01-0#-01-0B"
Const FAC-C = "cn=01-0#-01-0C"
Const FAC-D = "cn=01-0#-01-0D"
Const FAC-E = "cn=01-0#-01-0E"
Const FAC-F = "cn=01-0#-01-0F"

'All Staff Groups
Const STA = "cn=01-0#-02-00"
Const STA-A = "cn=01-0#-02-0A"
Const STA-B = "cn=01-0#-02-0B"
Const STA-C = "cn=01-0#-02-0C"
Const STA-D = "cn=01-0#-02-0D"
Const STA-E = "cn=01-0#-02-0E"
Const STA-F = "cn=01-0#-02-0F"

'All Students Groups
Const STU = "cn=01-0#-09-00"
Const STU-A = "cn=01-0#-09-0A"
Const STU-B = "cn=01-0#-09-0B"
Const STU-C = "cn=01-0#-09-0C"
Const STU-D = "cn=01-0#-09-0D"
Const STU-E = "cn=01-0#-09-0E"
Const STU-F = "cn=01-0#-09-0F"

'wScript.echo "1"

Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
strGroups = LCase(Join(CurrentUser.MemberOf))

'Department Home Drive Mappings
Set wshNetwork = CreateObject("WScript.Network")
  wshNetwork.MapNetworkDrive "H:", "\\ccfs-01a\0#-HOMEDRIVE\" & wshNetwork.UserName, blnPersistent

'Departmental Printer and Drive Mappings
If InStr(strGroups, FAC) Or InStr(strGroups, STA) Then
	wshNetwork.MapNetworkDrive "I:", "\\ccfs-01a\0#-Drive"
	wshNetwork.MapNetworkDrive "J:", "\\ccfs-01a\J-Drive"
	wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C06-100-2D2-P01"
End If

'Faculity specific login peramaters
If InStr(strGroups, FAC-A) Or InStr(strGroups, FAC-B) Or InStr(strGroups, FAC-C) Or InStr(strGroups, FAC-D) Or InStr(strGroups, FAC-E) Or InStr(strGroups, FAC-F) Then
	wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"

	If InStr(strGroups, FAC-A) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"
	End If
	
	If InStr(strGroups, FAC-B) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
	
	If InStr(strGroups, FAC-C) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
	
	If InStr(strGroups, FAC-D) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
	
	If InStr(strGroups, FAC-E) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
	
	If InStr(strGroups, FAC-F) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
End If

'Staff specific Peramiters
If InStr(strGroups, STA-A) Or InStr(strGroups, STA-B) Or InStr(strGroups, STA-C) Or InStr(strGroups, STA-D) Or InStr(strGroups, STA-E) Then
	wshNetWork.SetDefaultPrinter "\\CCPS-01a\C06-100-2D2-P01"
		
	If InStr(strGroups, STA-A) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
		
	If InStr(strGroups, STA-B) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
		
	If InStr(strGroups, STA-C) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
		
	If InStr(strGroups, STA-D) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
			
	If InStr(strGroups, STA-F) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If

End If

'Student specific paramiters
If InStr(strGroups, STU-A) Or InStr(strGroups, STU-B) Or InStr(strGroups, STU-C) Or InStr(strGroups, STU-D) Or InStr(strGroups, STU-E) Or InStr(strGroups, STU-F) Then
	'wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"
		
	If InStr(strGroups, STU-A) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
	If InStr(strGroups, STU-B) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
	If InStr(strGroups, STU-C) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
	If InStr(strGroups, STU-D) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
	If InStr(strGroups, STU-E) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
	If InStr(strGroups, STU-F) Then
		wshNetwork.AddWindowsPrinterConnection "\\CCPS-01a\C##-###-###-P##"	
	End If
End If

Open in new window

0
Comment
Question by:Michael_Land
1 Comment
 
LVL 65

Accepted Solution

by:
RobSampson earned 2000 total points
ID: 34893844
Hi, here's a script that will list the groups recursively:
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_24243636.html

which I think is what you need for this?

Regards,

Rob.
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

I’m willing to make a bet that your organization stores sensitive data in your Windows File Servers; files and folders that you really don’t want making it into the wrong hands.
One thing I've always found frustrating is no matter how many times one asks the end users to not save things on their local machines, they do it anyway.  Forget that we don't back up the desktops - only the servers.  Well, let's sneak their data on…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

608 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