You are here: Home » Internet Performance » DesktopAnalyzer » Support » Manual




Installing DesktopAnalyzer  

First, make sure that you meet the minimum requirements for your platform, including the proper Java VM.

The download EXE is the install program for DesktopAnalyzer. After downloading, you can run DesktopAnalyzer using the default script supplied with the release.

Licensed users of DesktopAnalyzer will receive a license key that should be saved in the file key.txt. The key.txt file is used to generate signed DesktopAnalyzer EXE files

Running DesktopAnalyzer  

DesktopAnalyzer is typically used by help desk or support personnel to automate checking specified configuration parameters on end-user computer systems. Although the DesktopAnalyzer release contains a default script (script.txt), it is intended that user-specific scripts be written prior to generating signed DesktopAnalyzer EXE files.

These new, signed EXE files may then be posted to a web site or delivered to the end users to provide a single-click analysis of end-user computer systems.

DesktopAnalyzer Script File  

A DesktopAnalyzer script file identifies the series of tests to be conducted on end-user computer systems.  The script file, named script.txt, is very similar in format to any Windows INI file format and can be edited using any text editor (such as notepad.exe).  To create the signed EXE file, the following steps must be completed:

  1. Identify the [sections] or tests to be included in the script
  2. Configure output and input parameters
  3. Create validation expressions (optional)
  4. Test and sign the script file

A default script file, script.txt, is included with the release and may look similar to the following:

[DA]
DisplayName = DesktopAnalyzer
ScriptName = DesktopAnalyzer Project Phase 4
Submit = http://www.visualware.com/cgi-bin/da.cgi
email = visualware@visualware.com
OK = OK
WARN = WARN
ERR = ERR
ipconfig = yes
screenshot = yes
showdetail = yes


[UserForm]
DisplayName = User-Provided Identification
var1.name = name
var1.prompt = Your name
var1.len = 20
var1.allowblank = yes
var2.name = model
var2.prompt = Router model
var2.len = 20
var2.allowblank = no

[Processor]

[Memory]

[Drives]

[Windows]
# DisplayName = Windows Version
# version.warn = <5.0
# version.warn.msg = Think about upgrading to Windows NT
version.err = <4.10
version.err.msg = Windows 98 or later is required
msg.ok = Everything is OK. Your version is $version$.
msg.err = Please upgrade your version of Windows
msg.warn = WARNING: You may have trouble running

[User]
region.warn = JP
region.warn.msg = Region set to JP

[InternetExplorer]
version.err = <6.0
version.err.msg = Upgrade to Internet Explorer 6.x or later
httpver.err = -"1.1"
httpver.err.msg = Your HTTP Version is not 1.1

[NetworkEnvironment]
DisplayName = Network Environment

[InternetSecurityZone]
DisplayName = 'Internet' Security Zone settings
zone = Internet

[InternetSecurityZone]
DisplayName = 'Restricted' Security Zone settings
zone = Restricted

#[InternetSecurityZone]
# DisplayName = Testing URL in 'Restricted' Zone
# url = http://www.whitehouse.com
# zone.err = -"Restricted"
# zone.err.msg = $url$ should be in the 'Restricted' zone

[InternetSecurityZone]
DisplayName = Testing URL in 'Internet' Zone
url = https://secure.visualware.com
zone.err = -"Internet"
zone.err.msg = $url$ must be in the 'Internet' zone

[DNS]
DisplayName = DNS localhost
hostname = localhost

#[DNS]
# DisplayName = Testing DNS failure
# hostname = www.visualware.comxx

#[Application]
# DisplayName = Application (input error)

[Application]
DisplayName = Microsoft Office
find = winword.exe
name.warn = +"1997"
name.warn.msg = Office 1997 does not allow for seemless editing
name.err = not(+"1997" || +"1998" || +"2000" || +"2002" || +"XP" || +"2003" || +"2007")
name.err.msg = Office version not recognized
version.err = <9.0
version.err.msg = Version below 9.0

[Application]
DisplayName = Microsoft Java VM
find = jview.exe
version.err = ==5.00.3809
version.err.msg = Test: Security issues, upgrade Java VM
msg.warn = WARNING: upgrade
msg.err = ERROR: Upgrade your Java VM

[Application]
DisplayName = Windows Sockets
find = winsock.dll

[Application]
DisplayName = Windows Sockets 2
find = ws2_32.dll

[WebDownload]
DisplayName = HTTP Download (from Visualware)
url = http://www.visualware.com/
timeout = 30000
downloadthroughput.warn = <50000
downloadthroughput.warn.msg = download speed is less than 50kbps

[WebDownload]
DisplayName = HTTPS Download (from Visualware)
url = https://secure.visualware.com

[WebUpload]
DisplayName = HTTP Upload (to Visualware)
url = http://myspeed.visualware.com/upload.bin
uploadthroughput.warn = <50000
uploadthroughput.warn.msg = Upload speed is less than 50 kbps

[WebUpload]
DisplayName = HTTPS Upload (to Visualware)
url = https://secure.visualware.com/
uploadthroughput.warn = <50000
uploadthroughput.warn.msg = Upload speed is less than 50 kbps

[IsPortListening]
url = http://www.visualware.com

#[FileContents]
# file = c:\file.txt
# filecontents.warn = +"test"
# filecontents.warn.msg = File contains the word 'test'

[RegistryKey]
DisplayName = DWORD registry value
key = HKEY_LOCAL_MACHINE\SOFTWARE\Visualware\TrackSuite\GUIPanels\Panel0\c1
val.warn = !=16711680
val.warn.msg = Visualware Tracking Suite has been customised

#[RegistryKey]
# DisplayName = String registry value
# key = HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Visualware Tracking Suite
# val.err = not(+"tscore.exe")
# val.err.msg = Visualware Tracking Suite not correctly installed

Identifying Script File Sections  

Namely, a script file is a file with [sections], with each section containing key=value lines that make up a particular test to conduct on the end user system. The [sections] or tests that DesktopAnalyzer allows are:

[Application]
[DA]
[DNS]
[Drives]
[File Contents]
[InternetExplorer]
[InternetSecurityZone]
[IsPortListening]
[Memory]
[Network Environment]
[Processor]
[RegistryKey]
[User]
[User Form]
[WebDownload]
[WebUpload]
[Windows]

Each [section] takes input parameters and produces output parameters as detailed in the tables below. In order for a particular test to be valid, all [section] input parameters must be configured prior to signing the EXE. Input parameters are identified in the Some tests, such as (see the columns titled "Type" in the tables below) must be configured prior to signing the EXE. Some tests, such as [Processor] and [Memory] do not require any input parameters to be configured. Tests may also be configured to produce output messages and validate expressions or constraints.

[Application]

Name Type Description
find input The name of an .exe ("notepad.exe"), or .dll ("winsock.dll"), application, or  document file extension (".doc") to locate
exe output The full path name to the found exe/dll
name output The ProductName in the file version info ("null" if unavailable)
description output The FileDescriptionin the file version info ("null" if unavailable)
version output The ProductVersionin the file version info ("null" if unavailable)

[DA]

Name Type Description
ScriptName input The end-user visible name for this script
email input An email address, which enables the 'email' section of the HTML report
ipconfig input If set to "yes", enables the "ipconfig/all" section of the HTML report
showdetail input If set to "no", disables the "Show detail" checkbox [2.03]
screenshot output If set to "yes" will display a screenshot in the HTML report
version output The version of the DesktopAnalyzer engine

[DNS]

Name Type Description
hostname input The host name to perform an ip address lookup on
number output The number of ip address that the host name resolves to
iplist output The ip address list for the input hostname

[Drives]

Name Type Description
letter output per drive letter information (file system type; size; free space)

[File Contents]

This test allows you to search for a file on your machine and search for a specified character string within the file.

Name Type Description
file input the file path you want to test (e.g. c:\program files\test.txt)
filecontents output Displays the first line of the file contents . To test for a specific character string, use either ' - text_string' (to test for the absence of the string) or ' + text_string' (to test for the presence of the string)


[InternetExplorer]

This test is derived from the Application test and has all the parameters of that test. The find input parameter is automatically set to iexplore.exe. This test also outputs this Internet Explorer specific parameter:

Name Type Description
pack output service pack information
proxytype output Check for authenticated proxies on the client's network
proxysettings output Check proxy settings on the client's network


[InternetSecurityZone]

This test provides a way to query the internet settings for an Internet Security Zone.

Name Type Description
zone input "Computer" | "Intranet" | "Trusted" | "Internet" | "Restricted"
url input Automatically set the zone based upon the provided full URL (used only if zone is not present)
ActiveScripting output "enabled" | "prompt" | "disabled" | "na"
FileDownload output "enabled" | "prompt" | "disabled" | "na"
PersistentCookies output "enabled" | "prompt" | "disabled" | "na"
Popup Blocker output "enabled" | "disabled"
SessionCookies output "enabled" | "prompt" | "disabled" | "na"


[IsPortListening]

This test provides a way to query a remote port on a computer to see if there is a process listening on the port.

Name Type Description
url input The host and port to test as a URL: "protocol://host:port"
ms output Number of milliseconds it took to establish a connection to the port

[Memory]

Name Type Description
utilization output Memory utilization (virtual memory)
total output Total (physical) memory in K
available output Available (physical) memory in K

[NetworkEnvironment]

This test provides Internet Connectivity Diagnostics such as Local IP, External IP, Gateway, DNS and Web Access.

Name Type Description
DisplayName output Network Name
internalips output Displays your internal IP's
externalips output Displays your external IP's
dnsips output Displays your DNS IP's
gatewayip output Displays your Gateway IP
internalhostname output Displays your Internal Host Name
externalhostname output Displays your External Host Name
gatewaymodel output Displays your Gateway model
gatewaydesc output Displays a description of your gateway

[Processor]

Name Type Description
architecture output Should always be "Intel"
vendor output Vendor string as reported by the CPU itself (eg: GenuineIntel)
type output Windows value (may be inaccurate)
number output Number of CPU's
level output Processor level as reported by Windows
revision output Processor revision info as reported by Windows
power output The power rating of the CPU, by performing a simple benchmark
mhz output Calculated CPU speed in Mhz

[Registry Key]

Name Type Description
key input The registry key you wish to test (search) for
val output The value of the registry key

[User]

Name Type Description
name output The user name of the user signed onto Windows
region output The world region of the computer
language output The language configured on the computer
timezone output The timezone configured on the computer
administrator output "yes" | "no" | "na"

[User Form]

Name Type Description

dialogtitle

input specifies the text in the title bar of the dialog
dialogprompt input specifies the text in the first line of the dialog
In each of the below, the 'X' in varX is a number. The dialog supports requesting up to 64 different inputs from the end user. The first is described by var1, the second by var2, etc.
varX.name input the variable name which appears in the DesktopAnalyzer list.
varX.prompt input the text to place next to the input box, describing what the user should type there.
varX.len input the size (in characters) of the input box
varX.allowblank input 'yes' or 'no', whether to allow the user to leave that field blank


[WebDownload]

Name Type Description
url input A full URL (http or https) to a web resource (html/gif/jpg/etc)
zone output The Internet Security zone of the URL: "Computer" | "Intranet" | "Trusted" | "Internet" | "Restricted" | "Unknown"
bytes output Number of bytes read from the URL
ms output Number of milliseconds it took to read the resource
throughput output Calculated throughput in K

[WebUpload]

Name Type Description

url

input

URL of a (preferably small) file on the HTTP server

uploadthroughput

output

Upload speed in bits per second

bytesuploaded

output

Number of bytes uploaded

mstime

output

Number of seconds taken to upload the above


[Windows]

Name Type Description
name output OS name
version output OS "major.minor" version
detail output Gives a full description of the Windows version, including Vista / XP edition name
build output OS build number
pack output OS service pack "major.minor" version (0.0 if none installed)
verpack output Combination of version and pack in a single version number
nt output Is NT (NT/2000/XP): "yes" | "no"
windir output The Windows directory path name
winsysdir output The Windows system directory path name

Configuring Output and Input Parameters  

Every output parameter from an individual script test can have a constraint expression written for it, and have a custom error message defined. Expressions and messages are defined as new variables within a script section as follows:

param
.warn = expression
param.err = expression
param.warn.msg = message
param.err.msg = message


If both a ".warn" and a ".err" expression are defined for a particular param, the 'most severe' error status (that evaluates to 'true') is used as the status for a particular param.

All tests allow for the following input parameters to be set:

Name Type Description
DisplayName input The end-user visible name for a test/section. If not specified, the section name is used.
msg.ok input The message to display if the entire test status is 'OK'
msg.warn input The message to display if the entire test status is 'warning'
msg.err input The message to display if the entire test status is 'error'

Any output or input message defined within a test allows for very simple variable substitution by enclosing a param name within dollar signs ($param name$). For example:

zone.err.msg = $url$ must be in the 'Internet' zone

An example demonstrating both output and input parameter options and message variable substitution is shown below:

[Windows]
DisplayName = Windows Version
version.warn = <5.0
version.warn.msg = Think about upgrading to Windows NT
version.err = <4.10
version.err.msg = Windows 98 or later is required
msg.ok = Everything is OK. Your version is $version$.
msg.err = Please upgrade your version of Windows
msg.warn = WARNING: You may have trouble running some applications

Creating Validation Expressions  

Expressions within Desktop Analyzer are not a full expression language, but rather a constraint expression language. If the expression evaluates to "true", then the "warn" (for a '.warn' param) or "err" (for a '.err' param) condition is set.

Expressions are evaluated from left to right, but parenthesis can be used to regroup evaluation order. Expressions always operate on the implied param, which is not specified in each expression. This results in expressions which look like:

version.err = <5.00.3805
name.warn = +"1997"
name.err = not(+"1997" || +"1998" || +"2000" || +"2002" || +"XP")
The operators in the expression language are:

Operator Description Types
< less than number, version
<= less than or equals number, version
> greater than number, version
>= greater than or equals number, version
== equals number, version
!= does not equal number, version
+ includes string
- does not include string

The functions that can be used in the expression language are:

Function Description
not(bIn) false if bIn==true; true if bIn==false

An example of the use of expressions is shown below: [Application]
DisplayName = Test for Microsoft Office
find = winword.exe
name.warn = +"1997"
name.warn.msg = Office 1997 does not allow for seemless editing
name.err = not(+"1997" || +"1998" || +"2000" || +"2002" || +"XP")
version.err = <9.0

[Application]
DisplayName = Test for Microsoft Java VM
find = jview.exe
version.err = ==5.00.3809
version.err.msg = Security issues with current version, upgrade Java VM
msg.warn = WARNING: Upgrade your Java VM
msg.err = ERROR: Upgrade your Java VM

Signing and Testing Scripts  

Licensed users of DesktopAnalyzer will receive a license key from Visualware that should be saved to the file key.txt. This file, in addition to the script.txt file created in the steps above, are used to sign a new executable EXE file.

When DesktopAnalyzer.exe is run, it requires a valid license key and a script file to be signed to the executable. This process allows the user to manufacture predefined and configured DesktopAnalyzer executables for deployment or posting to a support website. The DesktopAnalyzer program will search for a valid script file as follows:

  1. The first script.txt that has been signed to the EXE
  2. A script.txt that is in the same folder as the EXE
  3. The default script.txt
This allows you to quickly and easily test and debug scripts before having to sign a script to an EXE. Once you are happy with a script, sign the script to the EXE by running sign.bat file located in the DesktopAnalyzer program directory, or using the following command line:

vsign2 desktopanalyzer.exe script.txt key.txt


The output of the above syntax is a unique EXE file called signed.exe.  This file can/should then be renamed prior to posting to a Website or distributing to the end user community.  


DesktopAnalyzer Agent Deployment  

The output file (signed.exe) created in Section 7 above is typically deployed to the end user community via email or posted to a Website for on-demand usage.  It is recommended that this file be renamed prior to deployment as multiple EXE files can be created to perform specific configuration testing.

For web deployment, simply create a link on your web page that points to the Agent executable. An example page on how to configure web-based access to the executable is provided with the DesktopAnalyzer Release. To view the example, click on Start --> All Programs --> DesktopAnalyzer --> DesktopAnalyzer, and a sample page similar to the one below will be displayed.

End User Reporting  

he validation tests performed by DesktopAnalyzer may encompass general configuration issues such as hardware and software components as well as external service availability and performance such as connectivity issues as specified in the script.txt file used to sign the EXE.  

When the end user opens the EXE file, DesktopAnalyzer launches a window on the end user desktop like the one shown below and completes its validation.  At a glance, DesktopAnalyzer provides a visual indication as to whether the end user's desktop environment meets the requirements configured in the script file.  

If the showdetail input parameter is configured, the end user will be able to select the "Show detail" check box.  When checked, the DesktopAnalyzer output expands to provide specifics about the results of each [selection] test as shown in the figure below. 

Clicking on the HTML Report... button produces an HTML report that can then be saved or emailed (if the email input parameter is configured) to the helpdesk or support contact supplied in the report.  A detailed IP Configuration report is included at the bottom of the HTML report if specified using the ipconfig input parameter.

Also a screenshot of the desktop environment when DesktopAnalyzer was run is taken and is shown at the end of the HTML report.

 

  Copyright © 1997-2007 Visualware Inc. · All Rights Reserved