?
Solved

Need VBS logon script to map drives and printers by user group

Posted on 2004-05-02
10
Medium Priority
?
45,525 Views
Last Modified: 2012-05-04
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\setup.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
0
Comment
Question by:tm9
[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
10 Comments
 
LVL 40

Expert Comment

by:Fatal_Exception
ID: 10973367
I really don't have time to research the script, but I will suggest that the command you will need to implement here is the ifmember command, used in scripts to query the group memberships...  I don't expect any points to be awarded for this, but it may help...  :)

Ifmember.exe

http://www.microsoft.com/windows2000/techinfo/reskit/tools/new/ifmember-o.asp
0
 
LVL 7

Expert Comment

by:rhrowson
ID: 10976451
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
0
 
LVL 20

Expert Comment

by:What90
ID: 10976603
Here's some others VB scripts and how they piece them together


Read though the link and try these:

http://www.experts-exchange.com/Operating_Systems/Windows_Server_2003/Q_20922065.html
http://www.experts-exchange.com/Hardware/Printers/Q_20623076.html
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:tm9
ID: 10977261

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

_______________________logon.vbs__________________________
on error resume next
Dim WshNetwork
Set WshNetwork = CreateObject("WScript.Network")

If IsMember(WshNetwork.username, "Domain Admin") Then
wshnetwork.MapNetworkDrive "m:", "\\Server\Office Documents"
wshnetwork.MapNetworkDrive "n:", "\\Server\Admin Tools"
wshnetwork.MapNetworkDrive "o:", "\\Server\Ghost Images"
wshnetwork.MapNetworkDrive "p:", "\\Server\Job Pictures"

If IsMember(WshNetwork.username, "Domain Users") Then
wshnetwork.MapNetworkDrive "m:", "\\Server\Office Documents"
wshnetwork.MapNetworkDrive "p:", "\\Server\Job Pictures"
wshnetwork.MapNetworkDrive "r:", "\\Server\Drawings"
End If

If IsMember(WshNetwork.username, "Domain Admin") Then
PrinterPath = "\\server\chris"
PrinterPath2 = "\\server\lazerjet"
WshNetwork.AddWindowsPrinterConnection PrinterPath
WshNetwork.SetDefaultPrinter PrinterPath2
End If

Shell ("\\SERVER\Clients\Setup\setup.exe /s SERVER")

________________________________________________________

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.
0
 

Author Comment

by:tm9
ID: 10999688
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.

'------------------------logon.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.Network")
' Forces script to skip errors (rem below line to see errors)
on error resume next

Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
' Set all drives to be removed here.
WshNetwork.RemoveNetworkDrive "m:"
WshNetwork.RemoveNetworkDrive "n:"
WshNetwork.RemoveNetworkDrive "o:"
WshNetwork.RemoveNetworkDrive "p:"
WshNetwork.RemoveNetworkDrive "q:"
WshNetwork.RemoveNetworkDrive "r:"
WshNetwork.RemoveNetworkDrive "s:"
WshNetwork.RemoveNetworkDrive "t:"
WshNetwork.RemoveNetworkDrive "u:"
WshNetwork.RemoveNetworkDrive "v:"
WshNetwork.RemoveNetworkDrive "w:"
WshNetwork.RemoveNetworkDrive "x:"
WshNetwork.RemoveNetworkDrive "y:"
WshNetwork.RemoveNetworkDrive "z:"

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

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.Network")
net.AddWindowsPrinterConnection "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConnection "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConnection "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConnection "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConnection "\\server\design east", "Design East"
net.AddWindowsPrinterConnection "\\server\design east", "Design West"
net.AddWindowsPrinterConnection "\\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.Network")
net.AddWindowsPrinterConnection "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConnection "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConnection "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConnection "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConnection "\\server\design east", "Design East"
net.AddWindowsPrinterConnection "\\server\design east", "Design West"
net.AddWindowsPrinterConnection "\\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.Network")
net.AddWindowsPrinterConnection "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConnection "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConnection "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConnection "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConnection "\\server\design east", "Design East"
net.AddWindowsPrinterConnection "\\server\design east", "Design West"
net.AddWindowsPrinterConnection "\\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.Network")
net.AddWindowsPrinterConnection "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConnection "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConnection "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConnection "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConnection "\\server\design east", "Design East"
net.AddWindowsPrinterConnection "\\server\design east", "Design West"
net.AddWindowsPrinterConnection "\\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.Network")
net.AddWindowsPrinterConnection "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConnection "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConnection "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConnection "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConnection "\\server\design east", "Design East"
net.AddWindowsPrinterConnection "\\server\design east", "Design West"
net.AddWindowsPrinterConnection "\\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

'---------------------------------end logon.vbs---------------------------
0
 
LVL 53

Expert Comment

by:Dhaest
ID: 11002730
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
0
 
LVL 53

Expert Comment

by:Dhaest
ID: 11005358
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.Network")
' Forces script to skip errors (rem below line to see errors)
on error resume next

Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
' Set all drives to be removed here.
WshNetwork.RemoveNetworkDrive "m:"
WshNetwork.RemoveNetworkDrive "n:"
WshNetwork.RemoveNetworkDrive "o:"
WshNetwork.RemoveNetworkDrive "p:"
WshNetwork.RemoveNetworkDrive "q:"
WshNetwork.RemoveNetworkDrive "r:"
WshNetwork.RemoveNetworkDrive "s:"
WshNetwork.RemoveNetworkDrive "t:"
WshNetwork.RemoveNetworkDrive "u:"
WshNetwork.RemoveNetworkDrive "v:"
WshNetwork.RemoveNetworkDrive "w:"
WshNetwork.RemoveNetworkDrive "x:"
WshNetwork.RemoveNetworkDrive "y:"
WshNetwork.RemoveNetworkDrive "z:"

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

' 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.Network")
net.AddWindowsPrinterConnection "\\olysbs\chris", "Chris's Printer"
net.AddWindowsPrinterConnection "\\olysbs\frank", "Frank's Printer"
net.AddWindowsPrinterConnection "\\olysbs\shop", "Shop Printer"
net.AddWindowsPrinterConnection "\\olysbs\11x17", "11x17 Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice1", "Main Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\invoice2", "BU Invoice Printer"
net.AddWindowsPrinterConnection "\\olysbs\office", "Main Office Printer"
net.AddWindowsPrinterConnection "\\server\design east", "Design East"
net.AddWindowsPrinterConnection "\\server\design east", "Design West"
net.AddWindowsPrinterConnection "\\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_West_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
0
 

Author Comment

by:tm9
ID: 11016821
Please close this question.
Points have been awarded in the VBS section
0
 

Accepted Solution

by:
modulo earned 0 total points
ID: 11186987
PAQed, with points refunded (500)

modulo
Community Support Moderator
0

Featured Post

Enroll in August's Course of the Month

August's CompTIA IT Fundamentals course includes 19 hours of basic computer principle modules and prepares you for the certification exam. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

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

Many of us need to configure DHCP server(s) in their environment. We can do that simply via DHCP console on server or using MMC snap-in on each computer with Administrative Tools installed in a network. But what if we have to configure many DHCP ser…
Setting up a Microsoft WSUS update system is free relatively speaking if you have hard disk space and processor capacity.   However, WSUS can be a blessing and a curse. For example, there is nothing worse than approving updates and they just have…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
Suggested Courses

770 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