tm9
asked on
Need VBS logon script to map drives and printers by user group
Hello,
First I am not a formal IT manager or network administrator, but in our company I am the most computer literate so I have been given the task of setting up our network.
I have read almost every post to this site regarding logon scripts, I have been able to implement several and at one time thought I had compiled enough snippets of code found here and other places to do exactly what I needed, well in short it didn’t work like it was suppose to. It worked but not by user groups.
Here is a little info about or environment.
We are on a domain let’s call it domain.local
Our Server is SBS 2003 Premium (I will be adding a second 2003 Standard Server soon)
We have 15 Client PC's all either XP or 2000 with current service packs.
20 or so users, all users with roaming profiles.
All users are given local Administrative rights due to some software requirements. This is done on each client PC in the local policy.
Im sure there is a way around this possibley to start the program with runas\user but I will tackle that later unless it is absolutly relevant
to this request.
6 Security Groups I have created and distributed to users to use the log on script I am trying to create.
Administrators
Managers
Accounting
Design
Design East (for mapping printers only)
Design West (for mapping printers only)
Before I go any further I am wanting this in VB, I don’t want to use Kixart or Bat files unless this just can’t be done in VB script but i am pretty sure it can.
What I am wanting is a logon script to do the following
__________________________ __________ __________ _________
1. Clear the below drive letters if already mapped
2. Map drives per group
a. The first group could be all domain users
Map Drive F to \\server\public
Map Drive G to \\server\Office Documents
b. The second group Administrators
Map Drive H to \\Server\admin tools
Map Drive I to \\Server\all shares
c. The third group Managers
Map Drive J to \\Server\Managers
Map Drive L to \\Server\Customers
d. The fourth group Accounting
Map Drive K to \\Server\Accounting
Map Drive L to \\Server\Customers
e. The fifth group Design
Map Drive M to \\Server\Drawings
Map Drive N to \\Server\Forms
3. I would also like it to map to the logged in users folder.
Map Drive Z to \\server\users\%username
4. Map Printers by group
a. Group Accounting
Connect Printer1 \\server\acounting
Connect Printer2 \\ server\invoice printer
Connect Printer3 \\ server\check printer
Set printer 1 as default
b. Group Design East
Connect Printer1 \\server\Design East
Connect Printer2 \\ server\Plotter
Set printer 1 as default
c. Group Design West
Connect Printer1 \\server\Design West
Connect Printer2 \\ server\Plotter
Set printer 1 as default
By defaults SBS sets up all users to use
SBS_LOGIN_SCRIPT.bat
it contains the following.
\\SERVER\Clients\Setup\set up.exe /s SERVER
Can this VB script be referenced by this batch file or can this line be added to the new VB script and then I change users to use the new logon.vbs file instead of SBS_LOGIN_SCRIPT.bat
__________________________ __________ __________ __________ ___
Please give specific instructions in simplistic terms
I would prefer you just write the code for copy/edit/paste, i've already spent way to much time on it.
Thank you
First I am not a formal IT manager or network administrator, but in our company I am the most computer literate so I have been given the task of setting up our network.
I have read almost every post to this site regarding logon scripts, I have been able to implement several and at one time thought I had compiled enough snippets of code found here and other places to do exactly what I needed, well in short it didn’t work like it was suppose to. It worked but not by user groups.
Here is a little info about or environment.
We are on a domain let’s call it domain.local
Our Server is SBS 2003 Premium (I will be adding a second 2003 Standard Server soon)
We have 15 Client PC's all either XP or 2000 with current service packs.
20 or so users, all users with roaming profiles.
All users are given local Administrative rights due to some software requirements. This is done on each client PC in the local policy.
Im sure there is a way around this possibley to start the program with runas\user but I will tackle that later unless it is absolutly relevant
to this request.
6 Security Groups I have created and distributed to users to use the log on script I am trying to create.
Administrators
Managers
Accounting
Design
Design East (for mapping printers only)
Design West (for mapping printers only)
Before I go any further I am wanting this in VB, I don’t want to use Kixart or Bat files unless this just can’t be done in VB script but i am pretty sure it can.
What I am wanting is a logon script to do the following
__________________________
1. Clear the below drive letters if already mapped
2. Map drives per group
a. The first group could be all domain users
Map Drive F to \\server\public
Map Drive G to \\server\Office Documents
b. The second group Administrators
Map Drive H to \\Server\admin tools
Map Drive I to \\Server\all shares
c. The third group Managers
Map Drive J to \\Server\Managers
Map Drive L to \\Server\Customers
d. The fourth group Accounting
Map Drive K to \\Server\Accounting
Map Drive L to \\Server\Customers
e. The fifth group Design
Map Drive M to \\Server\Drawings
Map Drive N to \\Server\Forms
3. I would also like it to map to the logged in users folder.
Map Drive Z to \\server\users\%username
4. Map Printers by group
a. Group Accounting
Connect Printer1 \\server\acounting
Connect Printer2 \\ server\invoice printer
Connect Printer3 \\ server\check printer
Set printer 1 as default
b. Group Design East
Connect Printer1 \\server\Design East
Connect Printer2 \\ server\Plotter
Set printer 1 as default
c. Group Design West
Connect Printer1 \\server\Design West
Connect Printer2 \\ server\Plotter
Set printer 1 as default
By defaults SBS sets up all users to use
SBS_LOGIN_SCRIPT.bat
it contains the following.
\\SERVER\Clients\Setup\set
Can this VB script be referenced by this batch file or can this line be added to the new VB script and then I change users to use the new logon.vbs file instead of SBS_LOGIN_SCRIPT.bat
__________________________
Please give specific instructions in simplistic terms
I would prefer you just write the code for copy/edit/paste, i've already spent way to much time on it.
Thank you
Kix has the facilities you ewant and has been desighned for this sort of thing. Thew command syntax is a damned site easier than a lot of things I have used. For help, do a Google search for Kix scripts
Here's some others VB scripts and how they piece them together
Read though the link and try these:
https://www.experts-exchange.com/questions/20922065/Group-Policy-Logon-script.html
https://www.experts-exchange.com/questions/20623076/Network-Install-Utility.html
Read though the link and try these:
https://www.experts-exchange.com/questions/20922065/Group-Policy-Logon-script.html
https://www.experts-exchange.com/questions/20623076/Network-Install-Utility.html
ASKER
I was aware of both, like I said earlier I have read every post on this site
regarding log on scripts. Ive also googled it to death.
I think it must be something simple, or maybe I am just a little to dense to get it.
Anyways below is what I have so far, It all works except for not by group
all users, regardless of what group they belong to get All drives mapped.
That doesent mean they have permissions but they are mapped.
My script logon.vbs is here \\Server\netlogon
Also in that folder are these 2 files
con2prt.exe
IFMEMBER.EXE
_______________________log
on error resume next
Dim WshNetwork
Set WshNetwork = CreateObject("WScript.Netw
If IsMember(WshNetwork.userna
wshnetwork.MapNetworkDrive
wshnetwork.MapNetworkDrive
wshnetwork.MapNetworkDrive
wshnetwork.MapNetworkDrive
If IsMember(WshNetwork.userna
wshnetwork.MapNetworkDrive
wshnetwork.MapNetworkDrive
wshnetwork.MapNetworkDrive
End If
If IsMember(WshNetwork.userna
PrinterPath = "\\server\chris"
PrinterPath2 = "\\server\lazerjet"
WshNetwork.AddWindowsPrint
WshNetwork.SetDefaultPrint
End If
Shell ("\\SERVER\Clients\Setup\s
__________________________
The drives map to all users regardless of group membership.
Printers all map regardless of membership.
I dont know if the Shell line is valid or not.
If I could get this example to work by group I could edit it to add
my 6 groups mentioned in origional post.
Thanks again.
ASKER
Ok, I have scapped the above scripts and have the below working,
I would like this script to check each users membership in the groups and map drives or printers for multiple memberships.
At present if you belong to the Admin group it stops there.
I will award the points to anyone that can solve that.
Much kudos to Guy Thomas http://computerperformance.co.uk/
where i found most of the code below.
'------------------------l ogon.vbs-- ---------- ---------- ----------
Option Explicit
Dim objNetwork, objUser, CurrentUser
Dim strGroup
Const Admin_Group = "cn=oly_users_admin"
Const Managers_Group = "cn=oly_users_manager"
Const Accounting_Group = "oly_users_accounting"
Const Estimate_Group = "cn=oly_users_estimate"
Const Design_East_Group = "cn=oly_design_east"
Const Design_West_Group = "cn=oly_design_west"
Const All_Users_Group = "cn=oly_users_all"
Set objNetwork = CreateObject("WScript.Netw ork")
' Forces script to skip errors (rem below line to see errors)
on error resume next
Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScr ipt.Networ k")
' Set all drives to be removed here.
WshNetwork.RemoveNetworkDr ive "m:"
WshNetwork.RemoveNetworkDr ive "n:"
WshNetwork.RemoveNetworkDr ive "o:"
WshNetwork.RemoveNetworkDr ive "p:"
WshNetwork.RemoveNetworkDr ive "q:"
WshNetwork.RemoveNetworkDr ive "r:"
WshNetwork.RemoveNetworkDr ive "s:"
WshNetwork.RemoveNetworkDr ive "t:"
WshNetwork.RemoveNetworkDr ive "u:"
WshNetwork.RemoveNetworkDr ive "v:"
WshNetwork.RemoveNetworkDr ive "w:"
WshNetwork.RemoveNetworkDr ive "x:"
WshNetwork.RemoveNetworkDr ive "y:"
WshNetwork.RemoveNetworkDr ive "z:"
Set objUser = CreateObject("ADSystemInfo ")
Set CurrentUser = GetObject("LDAP://" & objUser.UserName)
strGroup = LCase(Join(CurrentUser.Mem berOf))
If InStr(strGroup, Admin_Group) Then
WScript.Echo "You are logged into the Admin Group "
objNetwork.MapNetworkDrive "m:", "\\olysbs\slg shared "
objNetwork.MapNetworkDrive "n:", "\\server\drawings"
objNetwork.MapNetworkDrive "o:", "\\olysbs\job costing"
objNetwork.MapNetworkDrive "p:", "\\olysbs\slg"
objNetwork.MapNetworkDrive "q:", "\\server\catalouges"
objNetwork.MapNetworkDrive "r:", "\\server\job photos"
objNetwork.MapNetworkDrive "s:", "\\server\slic"
objNetwork.MapNetworkDrive "t:", "\\olysbs\office documents"
objNetwork.MapNetworkDrive "u:", "\\olysbs\hr"
objNetwork.MapNetworkDrive "v:", "\\olysbs\manager"
objNetwork.MapNetworkDrive "w:", "\\olysbs\accounting"
objNetwork.MapNetworkDrive "x:", "\\server\sprink slick"
objNetwork.MapNetworkDrive "y:", "\\server\public"
objNetwork.MapNetworkDrive "z:", "\\olysbs\Users\" _
& objNetwork.UserName
Dim net
Set net = CreateObject("WScript.Netw ork")
net.AddWindowsPrinterConne ction "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConne ction "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConne ction "\\server\design east", "Design East"
net.AddWindowsPrinterConne ction "\\server\design east", "Design West"
net.AddWindowsPrinterConne ction "\\server\lee", "Lee's Printer"
'Removed the below line because if I log into another users workstation it set this as default printer for them if one is not set
'net.SetDefaultPrinter "\\olysbs\chris"
ElseIf InStr(strGroup, Managers_Group) Then
WScript.Echo " You are logged into the Managers Group "
objNetwork.MapNetworkDrive "m:", "\\olysbs\slg shared "
objNetwork.MapNetworkDrive "o:", "\\olysbs\job costing"
objNetwork.MapNetworkDrive "q:", "\\server\catalouges"
objNetwork.MapNetworkDrive "r:", "\\server\job photos"
objNetwork.MapNetworkDrive "t:", "\\olysbs\office documents"
objNetwork.MapNetworkDrive "v:", "\\olysbs\manager"
objNetwork.MapNetworkDrive "y:", "\\server\public"
objNetwork.MapNetworkDrive "z:", "\\olysbs\Users\" _
& objNetwork.UserName
Set net = CreateObject("WScript.Netw ork")
net.AddWindowsPrinterConne ction "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConne ction "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConne ction "\\server\design east", "Design East"
net.AddWindowsPrinterConne ction "\\server\design east", "Design West"
net.AddWindowsPrinterConne ction "\\server\lee", "Lee's Printer"
ElseIf InStr(strGroup, Estimate_Group) Then
WScript.Echo " You are logged into the Estimators Group "
objNetwork.MapNetworkDrive "m:", "\\olysbs\slg shared "
objNetwork.MapNetworkDrive "n:", "\\server\drawings"
objNetwork.MapNetworkDrive "o:", "\\olysbs\job costing"
objNetwork.MapNetworkDrive "q:", "\\server\catalouges"
objNetwork.MapNetworkDrive "r:", "\\server\job photos"
objNetwork.MapNetworkDrive "t:", "\\olysbs\office documents"
objNetwork.MapNetworkDrive "y:", "\\server\public"
objNetwork.MapNetworkDrive "z:", "\\olysbs\Users\" _
& objNetwork.UserName
Set net = CreateObject("WScript.Netw ork")
net.AddWindowsPrinterConne ction "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConne ction "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConne ction "\\server\design east", "Design East"
net.AddWindowsPrinterConne ction "\\server\design east", "Design West"
net.AddWindowsPrinterConne ction "\\server\lee", "Lee's Printer"
ElseIf InStr(strGroup, Design_East_Group) Then
WScript.Echo "You are logged into the Design East Group " & strGroup
objNetwork.MapNetworkDrive "n:", "\\server\drawings"
objNetwork.MapNetworkDrive "q:", "\\server\catalouges"
objNetwork.MapNetworkDrive "r:", "\\server\job photos"
objNetwork.MapNetworkDrive "t:", "\\olysbs\office documents"
objNetwork.MapNetworkDrive "x:", "\\server\sprink slick"
objNetwork.MapNetworkDrive "y:", "\\server\public"
objNetwork.MapNetworkDrive "z:", "\\olysbs\Users\" _
& objNetwork.UserName
Set net = CreateObject("WScript.Netw ork")
net.AddWindowsPrinterConne ction "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConne ction "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConne ction "\\server\design east", "Design East"
net.AddWindowsPrinterConne ction "\\server\design east", "Design West"
net.AddWindowsPrinterConne ction "\\server\lee", "Lee's Printer"
net.SetDefaultPrinter "\\olysbs\design east"
ElseIf InStr(strGroup, Design_West_Group) Then
WScript.Echo "You are logged into the Design West Group " & strGroup
objNetwork.MapNetworkDrive "n:", "\\server\drawings"
objNetwork.MapNetworkDrive "q:", "\\server\catalouges"
objNetwork.MapNetworkDrive "r:", "\\server\job photos"
objNetwork.MapNetworkDrive "t:", "\\olysbs\office documents"
objNetwork.MapNetworkDrive "x:", "\\server\sprink slick"
objNetwork.MapNetworkDrive "y:", "\\server\public"
objNetwork.MapNetworkDrive "z:", "\\olysbs\Users\" _
& objNetwork.UserName
Set net = CreateObject("WScript.Netw ork")
net.AddWindowsPrinterConne ction "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConne ction "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConne ction "\\server\design east", "Design East"
net.AddWindowsPrinterConne ction "\\server\design east", "Design West"
net.AddWindowsPrinterConne ction "\\server\lee", "Lee's Printer"
net.SetDefaultPrinter "\\olysbs\design west"
'Remove rem for shares to all users
'ElseIf InStr(strGroup, All_Users_Group) Then
'WScript.Echo "All Users Group " & strGroup
' objNetwork.MapNetworkDrive "h:", "\\Another Server\Users\" _
' & objNetwork.UserName
End If
Wscript.Echo "Drives & Printers have been mapped for your group "
WScript.Quit
' End of Script.
'Below is only for refference for writing script
'Company Drives
'A Saved for Local
'B Saved for Local
'C Saved for Local
'D Saved for Local
'E Saved for Local
'F Saved for Local
'G Saved for Local
'H Open
'I Open
'J Open
'k Open
'L Open
'M \\olysbs\slg shared
'N \\server\drawings
'O \\olysbs\job costing
'P \\olysbs\slg
'Q \\server\catalouges
'R \\server\job photos
'S \\server\slic
'T \\olysbs\office documents
'U \\olysbs\hr
'V \\olysbs\manager
'W \\olysbs\accounting
'X \\server\sprink slick
'Y \\server\public
'Z \\olysbs\users\%username
'Company Printers
'\\olysbs\chris
'\\olysbs\frank
'\\olysbs\shop
'\\olysbs\main
'\\olysbs\11x17
'\\server\design east
'\\server\design west
'\\server\plotter
'\\server\lee
'------------------------- --------en d logon.vbs----------------- ----------
I would like this script to check each users membership in the groups and map drives or printers for multiple memberships.
At present if you belong to the Admin group it stops there.
I will award the points to anyone that can solve that.
Much kudos to Guy Thomas http://computerperformance.co.uk/
where i found most of the code below.
'------------------------l
Option Explicit
Dim objNetwork, objUser, CurrentUser
Dim strGroup
Const Admin_Group = "cn=oly_users_admin"
Const Managers_Group = "cn=oly_users_manager"
Const Accounting_Group = "oly_users_accounting"
Const Estimate_Group = "cn=oly_users_estimate"
Const Design_East_Group = "cn=oly_design_east"
Const Design_West_Group = "cn=oly_design_west"
Const All_Users_Group = "cn=oly_users_all"
Set objNetwork = CreateObject("WScript.Netw
' Forces script to skip errors (rem below line to see errors)
on error resume next
Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScr
' Set all drives to be removed here.
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
Set objUser = CreateObject("ADSystemInfo
Set CurrentUser = GetObject("LDAP://" & objUser.UserName)
strGroup = LCase(Join(CurrentUser.Mem
If InStr(strGroup, Admin_Group) Then
WScript.Echo "You are logged into the Admin Group "
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
& objNetwork.UserName
Dim net
Set net = CreateObject("WScript.Netw
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
'Removed the below line because if I log into another users workstation it set this as default printer for them if one is not set
'net.SetDefaultPrinter "\\olysbs\chris"
ElseIf InStr(strGroup, Managers_Group) Then
WScript.Echo " You are logged into the Managers Group "
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
& objNetwork.UserName
Set net = CreateObject("WScript.Netw
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
ElseIf InStr(strGroup, Estimate_Group) Then
WScript.Echo " You are logged into the Estimators Group "
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
& objNetwork.UserName
Set net = CreateObject("WScript.Netw
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
ElseIf InStr(strGroup, Design_East_Group) Then
WScript.Echo "You are logged into the Design East Group " & strGroup
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
& objNetwork.UserName
Set net = CreateObject("WScript.Netw
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.SetDefaultPrinter "\\olysbs\design east"
ElseIf InStr(strGroup, Design_West_Group) Then
WScript.Echo "You are logged into the Design West Group " & strGroup
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
& objNetwork.UserName
Set net = CreateObject("WScript.Netw
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.SetDefaultPrinter "\\olysbs\design west"
'Remove rem for shares to all users
'ElseIf InStr(strGroup, All_Users_Group) Then
'WScript.Echo "All Users Group " & strGroup
' objNetwork.MapNetworkDrive
' & objNetwork.UserName
End If
Wscript.Echo "Drives & Printers have been mapped for your group "
WScript.Quit
' End of Script.
'Below is only for refference for writing script
'Company Drives
'A Saved for Local
'B Saved for Local
'C Saved for Local
'D Saved for Local
'E Saved for Local
'F Saved for Local
'G Saved for Local
'H Open
'I Open
'J Open
'k Open
'L Open
'M \\olysbs\slg shared
'N \\server\drawings
'O \\olysbs\job costing
'P \\olysbs\slg
'Q \\server\catalouges
'R \\server\job photos
'S \\server\slic
'T \\olysbs\office documents
'U \\olysbs\hr
'V \\olysbs\manager
'W \\olysbs\accounting
'X \\server\sprink slick
'Y \\server\public
'Z \\olysbs\users\%username
'Company Printers
'\\olysbs\chris
'\\olysbs\frank
'\\olysbs\shop
'\\olysbs\main
'\\olysbs\11x17
'\\server\design east
'\\server\design west
'\\server\plotter
'\\server\lee
'-------------------------
It seems like a problem in your if structure..
Now you have something like this:
if Const Admin_Group ...
elsif Const Managers_Group ...
elseIf Const Accounting_Group ...
...
end if.
It will always run for 1 group only. If you want to make sure it works for every group then you'll have to change your if-structure to :
if Const Admin_Group ...
end if
if Const Managers_Group ...
end if
Now you have something like this:
if Const Admin_Group ...
elsif Const Managers_Group ...
elseIf Const Accounting_Group ...
...
end if.
It will always run for 1 group only. If you want to make sure it works for every group then you'll have to change your if-structure to :
if Const Admin_Group ...
end if
if Const Managers_Group ...
end if
There's a lot of overhead in your code....
Option Explicit
Dim objNetwork, objUser, CurrentUser
Dim strGroup
Const Admin_Group = "cn=oly_users_admin"
Const Managers_Group = "cn=oly_users_manager"
Const Accounting_Group = "oly_users_accounting"
Const Estimate_Group = "cn=oly_users_estimate"
Const Design_East_Group = "cn=oly_design_east"
Const Design_West_Group = "cn=oly_design_west"
Const All_Users_Group = "cn=oly_users_all"
Set objNetwork = CreateObject("WScript.Netw ork")
' Forces script to skip errors (rem below line to see errors)
on error resume next
Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScr ipt.Networ k")
' Set all drives to be removed here.
WshNetwork.RemoveNetworkDr ive "m:"
WshNetwork.RemoveNetworkDr ive "n:"
WshNetwork.RemoveNetworkDr ive "o:"
WshNetwork.RemoveNetworkDr ive "p:"
WshNetwork.RemoveNetworkDr ive "q:"
WshNetwork.RemoveNetworkDr ive "r:"
WshNetwork.RemoveNetworkDr ive "s:"
WshNetwork.RemoveNetworkDr ive "t:"
WshNetwork.RemoveNetworkDr ive "u:"
WshNetwork.RemoveNetworkDr ive "v:"
WshNetwork.RemoveNetworkDr ive "w:"
WshNetwork.RemoveNetworkDr ive "x:"
WshNetwork.RemoveNetworkDr ive "y:"
WshNetwork.RemoveNetworkDr ive "z:"
Set objUser = CreateObject("ADSystemInfo ")
Set CurrentUser = GetObject("LDAP://" & objUser.UserName)
strGroup = LCase(Join(CurrentUser.Mem berOf))
' SETTING ALL NETWORKDRIVES THAT ARE AVAILABLE FOR EVERY USER
objNetwork.MapNetworkDrive "q:", "\\server\catalouges"
objNetwork.MapNetworkDrive "r:", "\\server\job photos"
objNetwork.MapNetworkDrive "t:", "\\olysbs\office documents"
objNetwork.MapNetworkDrive "y:", "\\server\public"
objNetwork.MapNetworkDrive "z:", "\\olysbs\Users\" & objNetwork.UserName
' SETTING THE PRINTERS, APPARANTLY FOR EVERYONE THE SAME !
Set net = CreateObject("WScript.Netw ork")
net.AddWindowsPrinterConne ction "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConne ction "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConne ction "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConne ction "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConne ction "\\server\design east", "Design East"
net.AddWindowsPrinterConne ction "\\server\design east", "Design West"
net.AddWindowsPrinterConne ction "\\server\lee", "Lee's Printer"
' EXTRA DRIVES FOR SPECIFIC GROUP
if InStr(strGroup, Admin_Group) or instr(strGrooup, Managars_Group) or instr(strGrooup, Estimate_Group) then
objNetwork.MapNetworkDrive "m:", "\\olysbs\slg shared "
objNetwork.MapNetworkDrive "o:", "\\olysbs\job costing"
end if
if InStr(strGroup, Admin_Group) or instr(strGrooup, Managars_Group) then
objNetwork.MapNetworkDrive "v:", "\\olysbs\manager"
end if
if instr(strGroup, Managars_Group) or instr(strGroup, Design_East_Group) or =instr(strGroup,Design_Wes t_Group) then
objNetwork.MapNetworkDrive "x:", "\\server\sprink slick"
end if
if instr(strGrooup, Managars_Group)
objNetwork.MapNetworkDrive "n:", "\\server\drawings"
end if
if InStr(strGroup, Admin_Group) then
objNetwork.MapNetworkDrive "p:", "\\olysbs\slg"
objNetwork.MapNetworkDrive "s:", "\\server\slic"
objNetwork.MapNetworkDrive "u:", "\\olysbs\hr"
objNetwork.MapNetworkDrive "w:", "\\olysbs\accounting"
end if
Option Explicit
Dim objNetwork, objUser, CurrentUser
Dim strGroup
Const Admin_Group = "cn=oly_users_admin"
Const Managers_Group = "cn=oly_users_manager"
Const Accounting_Group = "oly_users_accounting"
Const Estimate_Group = "cn=oly_users_estimate"
Const Design_East_Group = "cn=oly_design_east"
Const Design_West_Group = "cn=oly_design_west"
Const All_Users_Group = "cn=oly_users_all"
Set objNetwork = CreateObject("WScript.Netw
' Forces script to skip errors (rem below line to see errors)
on error resume next
Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScr
' Set all drives to be removed here.
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
WshNetwork.RemoveNetworkDr
Set objUser = CreateObject("ADSystemInfo
Set CurrentUser = GetObject("LDAP://" & objUser.UserName)
strGroup = LCase(Join(CurrentUser.Mem
' SETTING ALL NETWORKDRIVES THAT ARE AVAILABLE FOR EVERY USER
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
' SETTING THE PRINTERS, APPARANTLY FOR EVERYONE THE SAME !
Set net = CreateObject("WScript.Netw
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
net.AddWindowsPrinterConne
' EXTRA DRIVES FOR SPECIFIC GROUP
if InStr(strGroup, Admin_Group) or instr(strGrooup, Managars_Group) or instr(strGrooup, Estimate_Group) then
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
end if
if InStr(strGroup, Admin_Group) or instr(strGrooup, Managars_Group) then
objNetwork.MapNetworkDrive
end if
if instr(strGroup, Managars_Group) or instr(strGroup, Design_East_Group) or =instr(strGroup,Design_Wes
objNetwork.MapNetworkDrive
end if
if instr(strGrooup, Managars_Group)
objNetwork.MapNetworkDrive
end if
if InStr(strGroup, Admin_Group) then
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
objNetwork.MapNetworkDrive
end if
ASKER
Please close this question.
Points have been awarded in the VBS section
Points have been awarded in the VBS section
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Ifmember.exe
http://www.microsoft.com/windows2000/techinfo/reskit/tools/new/ifmember-o.asp