Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

health check

Posted on 2009-12-28
5
Medium Priority
?
2,498 Views
Last Modified: 2012-07-04
Dear All,

I want to make a full health check for the following:
1.      Windows 2003 Active Directory.
2.      Exchange 2003.
3.      DHCP
4.      SUS.

They are in  huge network which contain 70 distributed sites.
I need your help to know what are the tool I have to use for each one of them. And any other advices.

Thanks
0
Comment
Question by:Arabsoft-ACS
5 Comments
 

Expert Comment

by:sap000
ID: 26136223
for health check you can use microsoft pinpoint.



0
 
LVL 17

Accepted Solution

by:
Premkumar Yogeswaran earned 600 total points
ID: 26136317
0
 
LVL 24

Assisted Solution

by:Awinish
Awinish earned 1000 total points
ID: 26136929
0
 
LVL 24

Assisted Solution

by:Awinish
Awinish earned 1000 total points
ID: 26136966
The Script i attached in the post you can give a try to that also.
For Exchange nothing is better than Exchange best practice analyser.
http://technet.microsoft.com/hi-in/exchange/bb288488(en-us).aspx 
For DHCP:
There is tool called DHCPloc.
http://technet.microsoft.com/en-us/library/cc759117(WS.10).aspx 
 Note: The event viewer is best to find the the issue.
For DNs:
DNSCMD,DNSLINT,NSLOOKUP
For WSUS:
You have to use wsusutil,which is inbuilt uitlity to check wsus.
If you want something better,need to spend & tool is SCOM.
0
 
LVL 47

Assisted Solution

by:Donald Stewart
Donald Stewart earned 400 total points
ID: 26138516
Here's a great combination tool(HTA) that I like

DCDiag (Domain Controller Diagnostic Tool) and NetDiag GUI Tool


Save as ad_diag.hta

<HTML ID="MyPage">
   <HEAD>
      <TITLE>Active Directory Diagnostics</TITLE>
      <HTA:APPLICATION ID="AD_DC"
           BORDER="thick"
           BORDERSTYLE="raised"
           MAXIMIZEBUTTON="yes"
           MINIMIZEBUTTON="yes"
           SCROLL="yes"
           CAPTION="yes"
           SHOWINTASKBAR="yes"
           SINGLEINSTANCE="yes"
           SYSMENU="yes">

<SCRIPT LANGUAGE="VBScript">

</SCRIPT>
<!------------------------------------------------------------------------------------------->
<!-- Use this software at you own risk, if it works for you great if it doesn't bummer.
<!-- There are no guaranties of it working
<!--
<!-- This software is provided free of charge, feel free to distribute to others as long as
<!-- you don't modify it in any way.  You may modify for your own use only.
<!--
<!-- If you find it of value or know of a way to improve it, send me the code mod or request
<!-- and I'll see what I can do.
<!--
<!-- 
<!--	Author      - Paul Bergson
<!--    E-Mail      - pbbergs@msn.com
<!--    Date Posted - November 2005
<!--    Description - Set of tools that provide a front gui for dcdiag, netdiag 
<!--                  The tools are for basic functions the command lines are more robust
<!--                  Defaults are recommended values for dcdiag
<!--
<!--    Install procedure - Should be placed in c:\program files\support tools              
<!--
<!--    Usage - Double-Click ad_diag.hta and select options
<!--
<!--            If text files don't pop up check for dcdiag.log and netdiag.log set the locations
<!--              dcdiag = wrkLoc         variables location
<!--              netdiag = netLoc        variables location
<!--
<!--    Version Control
<!--       000 - Beta  November 24, 2005
<!--
<!--
<!------------------------------------------------------------------------------------------->


<!----------------------------------------->
<!-- Validate Input                      -->
<!----------------------------------------->
<script language = "vbscript" type = "text/VBScript">


Dim txtQuote
Dim fso, ts
Dim txtCalc
Dim txtCommand
Dim WshShell
Dim x
Dim dcTest
Dim netTest
Dim netVB

Const exLoc = "c:\progra~1\suppor~1\"					' Executables Location
Const wrkLoc = "c:\progra~1\suppor~1\"                  ' DcDiag log file location
Const netLoc = "c:\progra~1\suppor~1\"                  ' NetDiag log file location

Sub window_onload()
    MyPage.style.pixelHeight = 600
    MyPage.style.pixelWidth = 800
End Sub

<!----------------------------------------->
<!-- Reset DcDiag default values         -->
<!----------------------------------------->
Sub subDCStart

	If cb_dcdiag.checked then
		Set objFSO = CreateObject("Scripting.FileSystemObject")
    	txtCommand = exLoc & "dcdiag.exe"
		If not objFSO.FileExists(txtCommand) Then
			msgbox("Dcdiag not installed")
			cb_dcdiag.checked = ""
		End If
	End If	
	
	If cb_dcdiag.checked then	
		cb_dcdiag_v.checked = "On"
		cb_dcdiag_fix.checked = ""
		cb_dcdiag_e.checked = "On"
		cb_dcdiag_c.checked = "On"
		cb_dcdiag_q.checked = ""
		subDCInd(1)
		srv_dcdiag.value = "LOCAL"
	Else
		cb_dcdiag_v.checked = ""
		cb_dcdiag_fix.checked = ""
		cb_dcdiag_e.checked = ""
		cb_dcdiag_c.checked = ""
		cb_dcdiag_q.checked = ""
		subDCInd(1)
		srv_dcdiag.value = ""
	End if

End Sub

<!----------------------------------------->
<!-- Reset netdiag default values        -->
<!----------------------------------------->
Sub subNetStart

	If cb_netdiag.checked then
		Set objFSO = CreateObject("Scripting.FileSystemObject")
    	txtCommand = exLoc & "netdiag.exe"
		If not objFSO.FileExists(txtCommand) Then
			msgbox("NetDiag not installed")
			cb_netdiag.checked = ""
		End If
	End If	

	If cb_netdiag.checked then	
		cb_netdiag_fix.checked = ""
		cb_netdiag_q.checked = ""
		subNetInd(1)
		subNetVB(1)
	Else
		cb_netdiag_fix.checked = ""
		cb_netdiag_q.checked = ""
		subNetInd(1)
		subNetVB(1)
	End if
	
		
End Sub

<!----------------------------------------->
<!-- DCDiag Optional test settings       -->
<!----------------------------------------->
Sub subDCInd(n)

	if n = 1 then
          dcTest = "none"
          sel_dcdiag_test.style.display = "none"
          dcDesc.style.display = "none"
		  cb_dcdiag_c.checked = "On"
	end if
    if n = 2 then
	      dcTest = "test"
	      sel_dcdiag_test.style.display = "inline" 
          dcDesc.style.display = "inline"	      
		  cb_dcdiag_c.checked = ""          
	      sel_dcdiag_test.value = "Advertising"	      
	      subDCDropBox
	end if 
    if n = 3 then 
	      dcTest = "skip" 
	      sel_dcdiag_test.style.display = "inline"
          dcDesc.style.display = "inline"	      
          sel_dcdiag_test.value = "Advertising"	      
	      subDCDropBox
   	end if 

End Sub

<!----------------------------------------->
<!-- NetDiag Optional test settings      -->
<!----------------------------------------->
Sub subNetInd(n)

	if n = 1 then
          netTest = "none"
          sel_netdiag_test.style.display = "none"
          netDesc.style.display = "none"
          sel_netdiag_test.value = ""	      
	end if
    if n = 2 then
	      netTest = "test"
	      sel_netdiag_test.style.display = "inline" 
          netDesc.style.display = "inline"	      
	      sel_netdiag_test.value = "Autonet"	      
	      subNetDropBox
	end if 
    if n = 3 then 
	      netTest = "skip" 
	      sel_netdiag_test.style.display = "inline"
          netDesc.style.display = "inline"	      
          sel_netdiag_test.value = "Autonet"	      
	      subNetDropBox
   	end if 

End Sub

<!----------------------------------------->
<!-- NetDiag log settings                -->
<!----------------------------------------->
Sub subNetVB(n)

	if n = 1 then
          netVB = "standard"
	end if
    if n = 2 then
	      netVB = "verbose"
	end if 
    if n = 3 then 
	      netVB = "moreverbose" 
   	end if 

End Sub


<!----------------------------------------->
<!-- DCDiag Optional Test Descs          -->
<!----------------------------------------->
Sub subDCDropBox
	Select Case sel_dcdiag_test.value
		Case "Advertising"
			dcDesc.value = "Checks whether each DC is advertising itself, and whether it is advertising itself as having the capabilities of a DC."
		Case "CheckSDRefDom"
			dcDesc.value = "This test checks that all application directory partitions have appropriate security descriptor reference domains."
		Case "CheckSecurityError"
			dcDesc.value = "Locates security errors (or those possibly security related) and performs the initial diagnosis of the problem."
		Case "Connectivity"
			dcDesc.value = "Tests whether DCs are DNS registered, pingeable, and have LDAP/RPC connectivity."
		Case "CrossRefValidation"
			dcDesc.value = "This test looks for cross-refs that are in some way invalid."
		Case "CutoffServers"
			dcDesc.value = "Check for servers that won't receive replications because its partners are down."
		Case "DNS"
			dcDesc.value = "This test checks the health of DNS settings for the whole enterprise."
		Case "frssysvol"
			dcDesc.value = "This test checks that the file replication system (FRS) SYSVOL is ready."
		Case "FsmoCheck"
			dcDesc.value = "Checks that global role-holders are known, can be located, and are responding."
		Case "Intersite"
			dcDesc.value = "Checks for failures that would prevent or temporarily hold up intersite replication."
		Case "kccevent"
			dcDesc.value = "This test checks that the Knowledge Consistency Checker is completing without errors."
		Case "KnowsofRoleHolders"
			dcDesc.value = "Check whether the DC thinks it knows the role holders, and prints these roles out in verbose mode."
		Case "MachineAccount"
			dcDesc.value = "Check to see if the Machine Account has the proper information."
		Case "NCSecDesc"
			dcDesc.value = "Checks that the security descriptosrs on the naming context heads have appropriate permissions for replication."
		Case "NetLogons"
			dcDesc.value = "Checks that the appropriate logon priviledges allow replication to proceed."
		Case "ObjectsReplicated"
			dcDesc.value = "Check that Machine Account and DSA objects have replicated."
		Case "OutboundSecureChannels"
			dcDesc.value = "See if we have secure channels from all of the DC's in the domain."
		Case "RegisterInDNS"
			dcDesc.value = "Tests whether this domain controller can register the Domain Controller Locator DNS records. These records must be present in DNS in order for other computers to locate this domain controller for the <Active_Directory_Domain_DNS_Name> domain. Reports whether any modifications to the existing DNS infrastructure are required. Required argument: /DnsDomain:<Active_Directory_Domain_DNS_Name>"
			dcDesc.value = dcDesc.value & vbCrlf & "Not currently available via gui"
		Case "Replications"
			dcDesc.value = "Checks for timely replication between domain controllers."
		Case "RidManager"
			dcDesc.value = "Check to see if RID master is accessable and to see if it contains the proper information."
		Case "Services"
			dcDesc.value = "Check to see if appropriate DC services are running."
		Case "systemlog"
			dcDesc.value = "This test checks that the system is running without errors."
		Case "Topology"
			dcDesc.value = "Checks that the generated topology is fully connected for all DCs."
		Case "VerifyEnterpriseReferences"
			dcDesc.value = "This test verifys that certain system references are intact for the FRS and Replication infrastructure across all objects in the enterprise on each DC."
		Case "VerifyReferences"
			dcDesc.value = "This test verifys that certain system references are intact for the FRS and Replication infrastructure."
		Case "VerifyReplicas"
			dcDesc.value = "This test verifys that all application directory partitions are fully instantiated on all replica servers."
	End Select
End Sub

<!----------------------------------------->
<!-- NetDiag Optional Test Descs         -->
<!----------------------------------------->
Sub subNetDropBox
	Select Case sel_netdiag_test.value
		Case "Autonet"
			netDesc.value = "Autonet address Test"
		Case "Bindings"
			netDesc.value = "Bindings Test"
		Case "Browser"
			netDesc.value = "Redir and Browser Test"
		Case "DcList"
			netDesc.value = "DC list Test"
		Case "DefGw"
			netDesc.value = "Default gateway Test"
		Case "DNS"
			netDesc.value = "DNS Test"
		Case "DsGetDc"
			netDesc.value = "DC discovery Test"
		Case "IpConfig"
			netDesc.value = "IP config Test"
		Case "IpLoopBk"
			netDesc.value = "IP loopback ping Test"
		Case "IPSec"
			netDesc.value = "IP Security Test"
		Case "IPX"
			netDesc.value = "IPX Test"
		Case "Kerberos"
			netDesc.value = "Kerberos Test"
		Case "Ldap"
			netDesc.value = "LDAP Test"
		Case "Member"
			netDesc.value = "Domain membership Test"
		Case "Modem"
			netDesc.value = "Modem diagnostics Test"
		Case "NbtNm"
			netDesc.value = "NetBT name Test"
		Case "Ndis"
			netDesc.value = "Netcard queries Test"
		Case "NetBTTransports"
			netDesc.value = "NetBT transports Test"
		Case "Netstat"
			netDesc.value = "Netstat information Test"
		Case "Netware"
			netDesc.value = "Netware Test"
		Case "Route"
			netDesc.value = "Routing table Test"
		Case "Trust"
			netDesc.value = "Trust relationship Test"
		Case "WAN"
			netDesc.value = "WAN configuration Test"
		Case "WINS"
			netDesc.value = "WINS service Test"
		Case "Winsock"
			netDesc.value = "Winsock Test"
	End Select
End Sub


Sub btnReturn_onClick()

		txtQuote = ChrW(34)
		txtCalc = ""

		If cb_dcdiag.checked then
			txtCommand = exLoc & "dcdiag.exe"
	
				If lcase(srv_dcdiag.value) <>  "local" Then
					txtCommand = txtCommand & " /s:" & srv_dcdiag.value 
				End If
	
				If cb_dcdiag_e.checked then
					txtCommand = txtCommand & " /e"
				End If	

				If cb_dcdiag_c.checked then
					txtCommand = txtCommand & " /c"
				End If	

				If cb_dcdiag_q.checked then
					txtCommand = txtCommand & " /q"
				End If	

				If cb_dcdiag_v.checked then
					txtCommand = txtCommand & " /v"
				End If	

				If cb_dcdiag_fix.checked then
					txtCommand = txtCommand & " /fix"
				End If	
	
				If dcTest = "test" then
					txtCommand = txtCommand & " /test:" & sel_dcdiag_test.value
				End If
		
				If dcTest = "skip" then
					txtCommand = txtCommand & " /skip:" & sel_dcdiag_test.value
				End If
	
				txtCommand = txtCommand & " /f:" & wrkLoc & "dcdiag.log"
		
  				Set wshShell = CreateObject("WScript.Shell")
  				Set objFSO = CreateObject("Scripting.FileSystemObject")
  				txtClear = wrkLoc & "dcdiag.log"
  	
  				'Clear out old log file
  				on error resume next
				objFSO.DeleteFile(txtClear)
				on error goto 0
	
  				wshShell.Run txtCommand, 2, True
  				txtCommand = wrkLoc & "dcdiag.log"
  				wshShell.Run txtCommand
  				Set wshShell = Nothing
			End If
  		
		If cb_netdiag.checked then
			txtCommand = exLoc & "netdiag.exe"
	
			If cb_netdiag_q.checked then
				txtCommand = txtCommand & " /q"
			End If	

			If netVB = "verbose" then
				txtCommand = txtCommand & " /v"
			End If
			
			If	netVB = "moreverbose" then
				txtCommand = txtCommand & " /debug"
			End If

			If cb_netdiag_fix.checked then			
				txtCommand = txtCommand & " /fix"
			End If	
	
			If netTest = "test" then
				txtCommand = txtCommand & " /test:" & sel_netdiag_test.value
			End If
		
			If netTest = "skip" then
				txtCommand = txtCommand & " /skip:" & sel_netdiag_test.value
			End If

			Set wshShell = CreateObject("WScript.Shell")
			Set objFSO = CreateObject("Scripting.FileSystemObject")
			txtClear = netLoc & "netdiag.log"
  	
			'Clear out old log file
			on error resume next
			objFSO.DeleteFile(txtClear)
			on error goto 0
				
			txtCommand = txtCommand & " /l"
			Set wshShell = CreateObject("WScript.Shell")
  			wshShell.Run txtCommand, 2, True

  			txtCommand = netLoc & "netdiag.log"
  			wshShell.Run txtCommand
  			Set wshShell = Nothing
		End If
  
  
	window.close()

End Sub

</script>

   </HEAD>

   <BODY bgcolor="lightgrey">
   <h1>
   Active Directory Diagnostic's
   </h1>
        <table border = "0">
         <tbody>
			<tr>
         		<td colspan = "2">
         			<input TYPE="checkbox" Name="cb_dcdiag" value="ON" onclick = subDCStart>DC Diagnostics 
         		</td>
         	</tr>
         	<tr> 	
         	</tr>	
         	<tr>	
         		<td colspan = "2">
         			<b>DC: </b><input type= "text" name = "srv_dcdiag" size = 15>
         		</td>
         	</tr>
         	<tr>
         		<td width = "20%">
         			<b>Options:</b>
         		</td>
         		<td width = "20%">
         			<input TYPE="checkbox" Name="cb_dcdiag_v" value="ON">Verbose
         		</td>
         		<td width = "20%">
         			<input TYPE="checkbox" Name="cb_dcdiag_fix" value="ON">Fix Minor Errors
         		</td>
         		<td width = "20%">
         			<input TYPE="checkbox" Name="cb_dcdiag_e" value="ON">Enterprise Scan
         		</td>
         		<td width = "20%">
         			<input TYPE="checkbox" Name="cb_dcdiag_c" value="ON">Comprehensive
         		</td>
			</tr>
         	<tr>
         		<td width = "20%">
         			<b> </b>
         		</td>
         		<td width = "20%">
         			<input TYPE="checkbox" Name="cb_dcdiag_q" value="ON">Errors only
         		</td>
         		<td width = "20%">
         		</td>
         		<td width = "20%">
         		</td>
         		<td width = "20%">
         		</td>
			</tr>
			<tr>
					<td width = "20%">
							<input name = "rd_dcdiag_test" type = "radio" OnClick = subDCInd(1) checked = "yes" />No Special Test
					</td>
					<td width = "20%">
							<input name = "rd_dcdiag_test" type = "radio" OnClick = subDCInd(2) />Test
					</td>
					<td width = "20%">
							<input name = "rd_dcdiag_test" type = "radio"  OnClick = subDCInd(3) />Skip
					</td>
					<td colspan = "2">	
						<select name = "sel_dcdiag_test" onchange = subDCDropBox style="display:none"   >
							<option value = "Advertising">Advertising</option>
							<option value = "CheckSDRefDom">CheckSDRefDom</option>
							<option value = "CheckSecurityError">CheckSecurityError</option>
							<option value = "Connectivity">Connectivity</option>
							<option value = "CrossRefValidation">CrossRefValidation</option>
							<option value = "CutoffServers">CutoffServers</option>
							<option value = "DNS">DNS</option>
							<option value = "frssysvol">frssysvol</option>
							<option value = "FsmoCheck">FsmoCheck</option>
							<option value = "Intersite">Intersite</option>
							<option value = "kccevent">kcccevent</option>
							<option value = "KnowsofRoleHolders">KnowsOfRoleHolders</option>
							<option value = "MachineAccount">MachineAccount</option>
							<option value = "NCSecDesc">NCSecDesc</option>
							<option value = "NetLogons">NetLogons</option>
							<option value = "ObjectsReplicated">ObjectsReplicated</option>
							<option value = "OutboundSecureChannels">OutboundSecureChannels</option>
							<option value = "RegisterInDNS">RegisterInDNS</option>
							<option value = "Replications">Replications</option>
							<option value = "RidManager">RidManager</option>
							<option value = "Services">Services</option>
							<option value = "systemlog">systemlog</option>
							<option value = "Topology">Topology</option>
							<option value = "VerifyEnterpriseReferences">VerifyEnterpriseReferences</option>
							<option value = "VerifyReferences">VerifyReferences</option>
							<option value = "VerifyReplicas">VerifyReplicas</option>
						</select>
					</td>
			</tr>
         	<tr> 
         		<td colspan = "5">
         			<textarea name = "dcDesc" rows = "4" cols = "80" style="display:none"></textarea>
         		</td>	
         	</tr>	
            <tr>
         		<td colspan = 5>
         			<hr />
         		</td>
         	</tr>
         	<tr>
         		<td colspan = 2>	
         			<input TYPE="checkbox" Name="cb_netdiag" onclick = subNetStart value="ON">Network Diagnostics 
         		</td>
         	</tr>
         	<tr>
         		<td width = "20%">
         			<b>Options:</b>
         		</td>
         		<td width = "20%">
         			<input TYPE="checkbox" Name="cb_netdiag_fix" value="ON">Fix Minor Errors
         		</td>
         		<td width = "20%">
         			<input TYPE="checkbox" Name="cb_netdiag_q" value="ON">Errors only
         		</td>
			</tr>
			<tr>
				<td width = "20%"><b>Error Reporting:</b>
				</td>
				<td width = "20%">
					<input name = "rd_netdiag_vb" type = "radio" OnClick = subNetVB(1) checked = "yes" />Standard
				</td>
				<td width = "20%">
					<input name = "rd_netdiag_vb" type = "radio" OnClick = subNetVB(2) />Verbose
				</td>
				<td width = "20%">
					<input name = "rd_netdiag_vb" type = "radio" OnClick = subNetVB(3) />More Verbose
				</td>
			</tr>
			<tr>
					<td width = "20%">
							<input name = "rd_netdiag_test" type = "radio"  OnClick = subNetInd(1) checked = "yes" />No Special Test
					</td>
					<td width = "20%"><label>
							<input name = "rd_netdiag_test" type = "radio" OnClick = subNetInd(2) />Test
					</td>
					<td width = "20%">
							<input name = "rd_netdiag_test" type = "radio"  OnClick = subNetInd(3) />Skip
					</td>
					<td colspan = "2">	
						<select name = "sel_netdiag_test" onchange = subNetDropBox style="display:none"  >
							<option value = "Autonet">Autonet</option>
							<option value = "Bindings">Bindings</option>
							<option value = "Browser">Browser</option>
							<option value = "DcList">DCList</option>
							<option value = "DefGw">DefGw</option>
							<option value = "DNS">DNS</option>
							<option value = "DsGetDc">DsGetDc</option>
							<option value = "IpConfig">IPConfig</option>
							<option value = "IpLoopBk">IPLoopBk</option>
							<option value = "IPSec">IPSec</option>
							<option value = "IPX">IPX</option>
							<option value = "Kerberos">Kerberos</option>
							<option value = "LDAP">LDAP</option>
							<option value = "Member">Member</option>
							<option value = "Modem">Modem</option>
							<option value = "NbtNm">NbtNm</option>
							<option value = "Ndis">Ndis</option>
							<option value = "NetBTTransports">NetBTTransports</option>
							<option value = "Netstat">Netstat</option>
							<option value = "Netware">Netware</option>
							<option value = "Route">Route</option>
							<option value = "Trust">Trust</option>
							<option value = "WAN">WAN</option>
							<option value = "WINS">WINS</option>
							<option value = "Winsock">Winsock</option>
						</select>
					</td>
			</tr>
	       	<tr> 
         		<td colspan = "4">
         			<textarea name = "NetDesc" rows = "1" cols = "80" style="display:none"></textarea>
         		</td>	
         	<tr>
         		<td colspan = 5>
         			<hr />
         		</td>
         	</tr>
          </tbody>
        </table>
        <br>
        <br>
        <table>
        <tbody>
               <tr>
                   <th colalign = "center"><input type = "button" name = "btnReturn" value = "Startup Diagnostics" />
                   <th colalign = "center"><BUTTON onclick="window.close()">Cancel</BUTTON></th>
               </tr>
        </tbody>
        </table>

   </BODY>
</HTML>

Open in new window

0

Featured Post

Creating Active Directory Users from a Text File

If your organization has a need to mass-create AD user accounts, watch this video to see how its done without the need for scripting or other unnecessary complexities.

Question has a verified solution.

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

With so many activities to perform, Exchange administrators are always busy in organizations. If everything, including Exchange Servers, Outlook clients, and Office 365 accounts work without any issues, they can sit and relax. But unfortunately, it…
There can be many situations demanding the conversion of Outlook OST files to PST format and as such, there is no shortage of automated tools to perform this conversion. However, what makes Stellar OST to PST converter stand above the rest? Let us e…
how to add IIS SMTP to handle application/Scanner relays into office 365.
There are cases when e.g. an IT administrator wants to have full access and view into selected mailboxes on Exchange server, directly from his own email account in Outlook or Outlook Web Access. This proves useful when for example administrator want…
Suggested Courses

810 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