How to get all clients to register with WSUS server

We have a recently deployed WSUS server (2003) on a 2000 network (win2k clients, win2k servers, 2000 AD).  There are roughly 250-300 client PCs at this site, and ~15 servers.  There are about 6 major businesses within the network (different business units), each with their own OU in the AD.

My problem is that after configuring GPOs to roll out WSUS and get the clients to register with the WSUS server, only a relatively small number have registered.  All 4 of the engineers computers are on OK, and smatterings of other client PCs in the various businesses.  

My question is, is there are way to force the clients to connect to the WSUS server?  Anyone have any ideas on what I should be looking at to troubleshoot this?
AdvancePacificAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

AdvancePacificAuthor Commented:
Sorry, I should have given the number of clients successfully listed in the WSUS manager - we currently have 48 clients out of 250-300 which are listed.  There is at least one system from each of the different groups, so I know the group policy created to set this up is working, the problem appears to be the clients.

One other thing to consider is that a large number of the clients are probably hideously out of date as far as patches go, not sure if that makes a difference.  All should be SP4 though.
Bob LambersonSoftware EngineerCommented:
Have you carefully checked group permissions? Any OU that is to be affected by GPO has to have read and apply group policy permissions.



Bob
theruckCommented:
try to run (windows 2000)secedit /refreshoplicy machine_policy /enforce and secedit /refreshoplicy user_policy /enforce or gpupdate /force (windows xp) on one of the not configured client pcs to find out if the group policy was applied already
CompTIA Network+

Prepare for the CompTIA Network+ exam by learning how to troubleshoot, configure, and manage both wired and wireless networks.

nodiscoCommented:
AdvancePacific

I had the same problem with 3 WSUS servers in our organisation.  I ended up dropping the retry time in the Group policy to 4 hours to get the PCS all registered.  I also changed the time that people connect for updates to 10:00am as most machines are active at this time.  They did all register but it did take a while - You could also post your WSUS GPO settings.

Have a look at http://www.wsus.info/forums/index.php?
for detail of many WSUS issues.  Do you have the beta WSUS or the recently released full supported version?

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
AdvancePacificAuthor Commented:
Thanks for the help guys.  To answer a couple of questions:
BobLamberson - I don't believe its GPO related.  Each business unit has it's PCs in their own container, I've set each up exactly the same, and there are at least some PCs from each OU now registered with the server.  Yes, I have been over it a couple of times too :)

theruck - I'll give the refresh policy a go again.  I did try it on a couple of clients, but not in any systematic manner (just ran around a tried a couple).  

nodisco - I assume you mean the Automatic Updates detection frequency key in the GPO?  We've got that set to 2 hours, have had it like that since we rolled it out (for that reason, we wanted to get all the PCs registered and updating quickly).  We've got the connect time set to 11am, which is the best time for this site (most users are on at this time).
You said that "it did take a while" - can you define "a while"? :)  I suspect this has taken longer, it's over a week now from memory.
We're running the release version, not the beta.

Trying to remember (I might have to search for it), but there is a way of checking in the registry whether the GPO settings have gone in?  I'll have a look, but if anyone knows offhand what key it is, that would be great.

Thanks for the help so far guys.
AdvancePacificAuthor Commented:
Answered my own question re: registry settings.  From http://www.windowsitpro.com/Article/ArticleID/45942/45942.html?Ad=1

Someone else may find this useful.

"At my company, we've been successfully using Microsoft Software Update Services (SUS) for patch management for sometime now. We're also currently testing the beta version of Windows Server Update Services (WSUS). Although we love SUS, there were some hard-to-troubleshoot problems early on. Sometimes, not all the clients were updated, and I wasn't sure why or how to find out why. After some research, I figured out that it's all about knowing where to look.

If your clients are having trouble downloading and installing updates from your SUS or WSUS server, you should check a familiar place—the registry. Go to the problematic client PC and follow these steps:

Select Run on the Start menu.
In the Run dialog box, type regedit, then click OK.

In the registry, navigate to the HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\WUServer subkey. Make sure the WUServer subkey points to your SUS or WSUS server and not Microsoft Windows Update.
Navigate to the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update subkey. Find the AUState entry and note its value. The AUState value can help you determine the problem. Here are the possible values and what they mean:
0—initial 24-hour timeout (Automatic Updates doesn't run until 24 hours after it first detects an Internet connection.)
1—waiting for the user to run Automatic Updates
2—detection pending
3—download pending (Automatic Updates is waiting for the user to accept the predownloaded prompt.)
4—download in progress
5—install pending
6—install complete
7—disabled
8—reboot pending (Updates that require a reboot were installed, but the reboot was declined. Automatic Updates won't do anything until this value is cleared and a reboot occurs.) "
Dmitri FarafontovLinux Systems AdminCommented:
The GPO's are evaluated as following

Computer Local
Site
Domain
OU

Each of the successive ones will overite the previous setting if there is a conflict. In addtion Computer Settings will always override the User Settings on the GPO template. What you can do is configure "No Override" option on the OU Level. It will preserve GPO from being overridden by other ones.
AdvancePacificAuthor Commented:
DeltaFire - Already done - all the GPOs are set to No Override

Every PC I've checked has received the settings in the registry for the WSUS server.  There is one additional PC which has registered itself with the server overnight, so our strike rate isn't real good so far.

My thinking is leaning towards the WUAU versions on the PC.  For instance, on my PC the version of wuauclt.exe is 5.8.0.2469, yet on the clients I have checked, it is version 5.8.0.2339.  However, some clients with version 5.8.0.2339 have connected successfully, and other ones haven't (which are in the same OU, same group policy, same settings received in registry, and have the same version of wuauclt.exe).  I'm wondering if there is an installer to install to update the Automatic Updates service on the clients, to make sure they're up and running OK.

This is doing my head in.  I've increased the points to 500, because I think whoever can come up with a fix for this will deserve it! :)
AdvancePacificAuthor Commented:
I'm still looking into this myself.  I've had a look through the Windows Update.log file, and it includes the following:
2005-07-06 04:30:48  18:30:48   Success   IUENGINE       Starting
2005-07-06 04:30:48  18:30:48   Success   IUENGINE       Determining machine configuration
2005-07-06 04:30:49  18:30:49   Error     IUENGINE       Querying software update catalog from http://10.100.3.130:80/autoupdate/getmanifest.asp (Error 0x80190193)
2005-07-06 04:30:49  18:30:49   Success   IUENGINE       Shutting down
2005-07-06 09:30:49  23:30:49   Success   IUENGINE       Starting
2005-07-06 09:30:49  23:30:49   Success   IUENGINE       Determining machine configuration
2005-07-06 09:30:49  23:30:49   Error     IUENGINE       Querying software update catalog from http://10.100.3.130:80/autoupdate/getmanifest.asp (Error 0x80190193)
2005-07-06 09:30:49  23:30:49   Success   IUENGINE       Shutting down

This is (I assume) where the client is trying to update itself.  The IP is correct for the server, but I've done a search on the server and cannot find a file called getmanifest.asp.  Is this something I need create? and if so, how??  There also doesn't appear to be a folder called autoupdate as part of the website for WSUS either.
AdvancePacificAuthor Commented:
Also, here's some of the log of WindowsUpdate.log (no space) on a client PC I'm testing:

2005-07-01      08:29:50+1000       860      360      Service Main starts
2005-07-01      08:29:51+1000       860      360      WU client with version 5.8.0.2339 successfully initialized
2005-07-01      08:29:51+1000       860      360      Service status is now SERVICE_RUNNING
2005-07-01      08:30:36+1000       860      360      start delayed initialization of WU client
2005-07-01      08:30:37+1000       860      360      BatchFlushAge = 480.
2005-07-01      08:30:37+1000       860      360      BatchFlushAgeSus = 0.
2005-07-01      08:30:37+1000       860      360      SamplingValue2 = 197, sampling required = No
2005-07-01      08:30:37+1000       860      360      Detection success event regulation is disabled
2005-07-01      08:30:45+1000       860      360      Client Call Recorder finished delayed initialization
2005-07-01      08:30:45+1000       860      360      Setting next AU detection timeout to 2005-06-30 22:30:45
2005-07-01      08:30:45+1000       860      360      Launching Legacy AU client
2005-07-01      17:03:11+1000       860      358      Service received SERVICE_CONTROL_SHUTDOWN control
2005-07-01      17:03:12+1000       860      360      Exiting Service Main
2005-07-01      17:03:16+1000       860      360      WUAUENG ServiceMain exits. Exit code is 0x240001
2005-07-04      08:29:59+1000       852      358      Service Main starts
2005-07-04      08:30:00+1000       852      358      WU client with version 5.8.0.2339 successfully initialized
2005-07-04      08:30:00+1000       852      358      Service status is now SERVICE_RUNNING
2005-07-04      08:30:45+1000       852      358      start delayed initialization of WU client
2005-07-04      08:30:45+1000       852      358      BatchFlushAge = 825.
2005-07-04      08:30:45+1000       852      358      BatchFlushAgeSus = 0.
2005-07-04      08:30:45+1000       852      358      SamplingValue2 = 197, sampling required = No
2005-07-04      08:30:45+1000       852      358      Detection success event regulation is disabled
2005-07-04      08:30:46+1000       852      358      Client Call Recorder finished delayed initialization
2005-07-04      08:30:46+1000       852      358      Setting next AU detection timeout to 2005-07-03 22:30:46
2005-07-04      08:30:46+1000       852      358      Launching Legacy AU client
2005-07-05      14:34:28+1000       852      350      Service received SERVICE_CONTROL_STOP control
2005-07-05      14:34:28+1000       852      358      Exiting Service Main
2005-07-05      14:34:29+1000       852      358      WUAUENG ServiceMain exits. Exit code is 0x240001
2005-07-05      14:34:30+1000      1316      51c      Service Main starts
2005-07-05      14:34:30+1000      1316      51c      WU client with version 5.8.0.2339 successfully initialized
2005-07-05      14:34:30+1000      1316      51c      Service status is now SERVICE_RUNNING
2005-07-05      14:35:04+1000      1316      698      BatchFlushAge = 205.
2005-07-05      14:35:04+1000      1316      698      BatchFlushAgeSus = 0.
2005-07-05      14:35:04+1000      1316      698      SamplingValue2 = 197, sampling required = No
2005-07-05      14:35:04+1000      1316      698      Detection success event regulation is disabled
2005-07-05      14:35:06+1000      1316      698      Client Call Recorder finished delayed initialization
2005-07-05      14:35:06+1000      1316      698      Setting next AU detection timeout to 2005-07-05 04:35:06
2005-07-05      14:35:06+1000      1316      698      Launching Legacy AU client
2005-07-05      14:35:15+1000      1316      51c      start delayed initialization of WU client
2005-07-05      14:36:35+1000      1316      550      Service received SERVICE_CONTROL_SHUTDOWN control
2005-07-05      14:36:36+1000      1316      51c      Exiting Service Main
2005-07-05      14:36:39+1000      1316      51c      WUAUENG ServiceMain exits. Exit code is 0x240001
2005-07-05      14:38:28+1000       896      384      Service Main starts
2005-07-05      14:38:29+1000       896      384      WU client with version 5.8.0.2339 successfully initialized
2005-07-05      14:38:29+1000       896      384      Service status is now SERVICE_RUNNING
2005-07-05      14:39:14+1000       896      384      start delayed initialization of WU client
2005-07-05      14:39:14+1000       896      384      BatchFlushAge = 520.
2005-07-05      14:39:14+1000       896      384      BatchFlushAgeSus = 0.
2005-07-05      14:39:14+1000       896      384      SamplingValue2 = 197, sampling required = No
2005-07-05      14:39:14+1000       896      384      Detection success event regulation is disabled
2005-07-05      14:39:17+1000       896      384      Client Call Recorder finished delayed initialization
2005-07-05      14:39:17+1000       896      384      Setting next AU detection timeout to 2005-07-05 04:39:17
2005-07-05      14:39:17+1000       896      384      Launching Legacy AU client
2005-07-05      15:03:42+1000       896      370      Service received SERVICE_CONTROL_STOP control
2005-07-05      15:03:42+1000       896      384      Exiting Service Main
2005-07-05      15:03:42+1000       896      384      WUAUENG ServiceMain exits. Exit code is 0x240001
2005-07-05      15:03:43      1220      3c4      Misc      ===========  Logging initialized (build: 5.8.0.2469, tz: +1000)  ===========
2005-07-05      15:03:43      1220      3c4      Misc        = Process: C:\WINNT\system32\svchost.exe
2005-07-05      15:03:43      1220      3c4      Misc        = Module: C:\WINNT\system32\wuaueng.dll
2005-07-05      15:03:43      1220      3c4      Service      *************
2005-07-05      15:03:43      1220      3c4      Service      ** START **  Service: Service startup
2005-07-05      15:03:43      1220      3c4      Service      *********
2005-07-05      15:03:43      1220      3c4      Agent        * WU client version 5.8.0.2469
2005-07-05      15:03:43      1220      3c4      Agent        * WARNING: Failed to obtain SusClientId
2005-07-05      15:03:43      1220      3c4      Agent        * Base directory: C:\WINNT\SoftwareDistribution
2005-07-05      15:03:43      1220      3c4      Agent        * Access type: No proxy
2005-07-05      15:03:43      1220      3c4      Agent        * Network state: Connected
2005-07-05      15:03:49      1220      590      Agent      ***********  Agent: Initializing Windows Update Agent  ***********
2005-07-05      15:03:49      1220      590      Agent      ***********  Agent: Initializing global settings cache  ***********
2005-07-05      15:03:49      1220      590      Agent        * WSUS server: http://10.100.3.130:80
2005-07-05      15:03:49      1220      590      Agent        * WSUS status server: http://10.100.3.130:80
2005-07-05      15:03:49      1220      590      Agent        * Target group: Filebuild Computers
2005-07-05      15:03:49      1220      590      Agent        * Windows Update access disabled: No
2005-07-05      15:03:50      1220      590      DnldMgr      Download manager restoring 0 downloads
2005-07-05      15:03:50      1220      590      AU      ###########  AU: Initializing Automatic Updates  ###########
2005-07-05      15:03:50      1220      590      AU      AU setting next detection timeout to 2005-07-05 05:03:50
2005-07-05      15:03:50      1220      590      AU        # WSUS server: http://10.100.3.130:80
2005-07-05      15:03:50      1220      590      AU        # Detection frequency: 2
2005-07-05      15:03:50      1220      590      AU        # Target group: Filebuild Computers
2005-07-05      15:03:50      1220      590      AU        # Approval type: Scheduled (Policy)
2005-07-05      15:03:50      1220      590      AU        # Scheduled install day/time: Every day at 11:00
2005-07-05      15:03:50      1220      590      AU        # Auto-install minor updates: Yes (Policy)
2005-07-05      15:03:50      1220      590      AU        # Will interact with non-admins (Non-admins are elevated)
2005-07-05      15:03:50      1220      590      AU        # Launching old AU client
2005-07-05      15:08:58      1220      3c4      Service      *********
2005-07-05      15:08:58      1220      3c4      Service      **  END  **  Service: Service exit [Exit code = 0x240001]
2005-07-05      15:08:58      1220      3c4      Service      *************
2005-07-05      15:10:32       888      37c      Misc      ===========  Logging initialized (build: 5.8.0.2469, tz: +1000)  ===========
2005-07-05      15:10:32       888      37c      Misc        = Process: C:\WINNT\system32\svchost.exe
2005-07-05      15:10:32       888      37c      Misc        = Module: C:\WINNT\system32\wuaueng.dll
2005-07-05      15:10:32       888      37c      Service      *************
2005-07-05      15:10:32       888      37c      Service      ** START **  Service: Service startup
2005-07-05      15:10:32       888      37c      Service      *********
2005-07-05      15:10:33       888      37c      Agent        * WU client version 5.8.0.2469
2005-07-05      15:10:33       888      37c      Agent        * WARNING: Failed to obtain SusClientId
2005-07-05      15:10:33       888      37c      Agent        * Base directory: C:\WINNT\SoftwareDistribution
2005-07-05      15:10:34       888      37c      Agent        * Access type: No proxy
2005-07-05      15:10:35       888      37c      Agent        * Network state: Connected
2005-07-05      15:11:20       888      37c      Agent      ***********  Agent: Initializing Windows Update Agent  ***********
2005-07-05      15:11:20       888      37c      Agent      ***********  Agent: Initializing global settings cache  ***********
2005-07-05      15:11:20       888      37c      Agent        * WSUS server: http://10.100.3.130:80
2005-07-05      15:11:20       888      37c      Agent        * WSUS status server: http://10.100.3.130:80
2005-07-05      15:11:20       888      37c      Agent        * Target group: Filebuild Computers
2005-07-05      15:11:20       888      37c      Agent        * Windows Update access disabled: No
2005-07-05      15:11:22       888      37c      DnldMgr      Download manager restoring 0 downloads
2005-07-05      15:11:22       888      37c      AU      ###########  AU: Initializing Automatic Updates  ###########
2005-07-05      15:11:22       888      37c      AU      AU setting next detection timeout to 2005-07-05 05:11:22
2005-07-05      15:11:22       888      37c      AU        # WSUS server: http://10.100.3.130:80
2005-07-05      15:11:22       888      37c      AU        # Detection frequency: 2
2005-07-05      15:11:22       888      37c      AU        # Target group: Filebuild Computers
2005-07-05      15:11:22       888      37c      AU        # Approval type: Scheduled (Policy)
2005-07-05      15:11:22       888      37c      AU        # Scheduled install day/time: Every day at 11:00
2005-07-05      15:11:22       888      37c      AU        # Auto-install minor updates: Yes (Policy)
2005-07-05      15:11:22       888      37c      AU        # Will interact with non-admins (Non-admins are elevated)
2005-07-05      15:11:22       888      37c      AU        # Launching old AU client
2005-07-05      15:31:08       888      37c      Service      *********
2005-07-05      15:31:08       888      37c      Service      **  END  **  Service: Service exit [Exit code = 0x240001]
2005-07-05      15:31:08       888      37c      Service      *************
2005-07-05      15:32:41       888      37c      Misc      ===========  Logging initialized (build: 5.8.0.2469, tz: +1000)  ===========
2005-07-05      15:32:41       888      37c      Misc        = Process: C:\WINNT\system32\svchost.exe
2005-07-05      15:32:41       888      37c      Misc        = Module: C:\WINNT\system32\wuaueng.dll
2005-07-05      15:32:41       888      37c      Service      *************
2005-07-05      15:32:41       888      37c      Service      ** START **  Service: Service startup
2005-07-05      15:32:41       888      37c      Service      *********
2005-07-05      15:32:42       888      37c      Agent        * WU client version 5.8.0.2469
2005-07-05      15:32:42       888      37c      Agent        * WARNING: Failed to obtain SusClientId
2005-07-05      15:32:42       888      37c      Agent        * Base directory: C:\WINNT\SoftwareDistribution
2005-07-05      15:32:43       888      37c      Agent        * Access type: No proxy
2005-07-05      15:32:43       888      37c      Agent        * Network state: Connected
2005-07-05      15:33:29       888      37c      Agent      ***********  Agent: Initializing Windows Update Agent  ***********
2005-07-05      15:33:29       888      37c      Agent      ***********  Agent: Initializing global settings cache  ***********
2005-07-05      15:33:29       888      37c      Agent        * WSUS server: http://10.100.3.130:80
2005-07-05      15:33:29       888      37c      Agent        * WSUS status server: http://10.100.3.130:80
2005-07-05      15:33:29       888      37c      Agent        * Target group: Filebuild Computers
2005-07-05      15:33:29       888      37c      Agent        * Windows Update access disabled: No
2005-07-05      15:33:31       888      37c      DnldMgr      Download manager restoring 0 downloads
2005-07-05      15:33:31       888      37c      AU      ###########  AU: Initializing Automatic Updates  ###########
2005-07-05      15:33:31       888      37c      AU      AU setting next detection timeout to 2005-07-05 05:33:31
2005-07-05      15:33:31       888      37c      AU        # WSUS server: http://10.100.3.130:80
2005-07-05      15:33:31       888      37c      AU        # Detection frequency: 2
2005-07-05      15:33:31       888      37c      AU        # Target group: Filebuild Computers
2005-07-05      15:33:31       888      37c      AU        # Approval type: Scheduled (Policy)
2005-07-05      15:33:31       888      37c      AU        # Scheduled install day/time: Every day at 11:00
2005-07-05      15:33:31       888      37c      AU        # Auto-install minor updates: Yes (Policy)
2005-07-05      15:33:31       888      37c      AU        # Will interact with non-admins (Non-admins are elevated)
2005-07-05      15:33:31       888      37c      AU        # Launching old AU client
AdvancePacificAuthor Commented:
I've run the WSUS client diagnostic tool from http://www.microsoft.com/windowsserversystem/updateservices/downloads/default.mspx.  Here's the output from one of the clients that is not showing on the server, everything is A-OK as far as it's concerned, but IT'S STILL NOT BLOODY WORKING!  Grrr.....

WSUS Client Diagnostics Tool

Checking Machine State
      Checking for admin rights to run tool . . . . . . . . . PASS
      Automatic Updates Service is running. . . . . . . . . . PASS
      Background Intelligent Transfer Service is running. . . PASS
      Wuaueng.dll version 5.8.0.2469. . . . . . . . . . . . . PASS
            This version is WSUS 2.0

Checking AU Settings
      AU Option is 4: Scheduled Install . . . . . . . . . . . PASS
            Option is from Policy settings

Checking Proxy Configuration
      Checking for winhttp local machine Proxy settings . . . PASS
            Winhttp local machine access type
                  <Direct Connection>
            Winhttp local machine Proxy. . . . . . . . . .  PASS
            Winhttp local machine ProxyBypass. . . . . . .  PASS
      Checking User IE Proxy settings . . . . . . . . . . . . PASS
            User IE Proxy
            DFSISA1:8080
            User IE ProxyByPass
            ;<local>
            User IE AutoConfig URL Proxy . . . . . . . . .  PASS
            User IE AutoDetect
            AutoDetect not in use

Checking Connection to WSUS/SUS Server
            WUServer = http://10.100.3.130:80
            WUStatusServer = http://10.100.3.130:80
      UseWuServer is enabled. . . . . . . . . . . . . . . . . PASS
      Connection to server. . . . . . . . . . . . . . . . . . PASS
      SelfUpdate folder is present. . . . . . . . . . . . . . PASS
AdvancePacificAuthor Commented:
Found a fix (not much of a fix, but it worked, and I'm not sure why!)

As part of testing, I disabled the GPO on one of the groups.  Within minutes, every PC in that OU had joined WSUS, and their accounts had gone into Unassigned Computers.  

I disabled the GPO for all the other ones, and sure enough, they were falling over each-other to join (It only took about an hour for approx 200 additional PCs to register with the WSUS server).  I've then had to manually put them in the groups of course... :/

If I had my time over again, I would have run Windows update on all the PCs (from the MS website), so they were all up-to-date, and then rolled out WSUS.  But this worked, in the end.  Not much hair/fingernails/patience left on my part though....

Thanks for the help guys.
laneburrisCommented:
Here is the fix that worked for me ...

rem Fixes problem with client machines not showing up on the server due to imaging method

reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v AccountDomainSid /f
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v PingID /f
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientId /f
cls
@echo Triggering detection after resetting WSUS client identity
net stop wuauserv
net start wuauserv
wuauclt /resetauthorization /detectnow

Found this at http://www.wsus.info/forums/index.php?showtopic=6131&hl=

Hope this helps others!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows Server 2003

From novice to tech pro — start learning today.