Manual Index
1. 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.
2. 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.
3. 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:
- Identify the [sections] or tests to be included in the script
- Configure output and input parameters
- Create validation expressions (optional)
- Test and sign the script file
A default script file, script.txt, is included with the release and may look similar to the following:
[Application]
DisplayName = Windows Sockets
find = winsock.dll
[DA]
DisplayName = DesktopAnalyzer
ScriptName = Testing Script Name
Submit = http://www.visualware.com/cgi-bin/da.cgi
email = test@company.com
OK = OK
WARN = WARN
ERR = ERR
ipconfig = yes
screenshot = yes
showdetail = yes
[DNS]
DisplayName = Testing DNS Lookup
hostname = www.visualware.com
[Drives]
[InternetExplorer]
version.err = <6.0
version.err.msg = Upgrade to Internet Explorer 6.x or later
4. 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]
[Processor]
[RegistryKey]
[User]
[WebPage]
[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][DA]
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) [DNS]
Name Type Description ScriptName input The end-user visible name for this script 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 [Drives]
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
Name Type Description letter output per drive letter information (file system type; size; free space) [InternetExplorer]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) 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:[InternetSecurityZone]
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 This test provides a way to query the internet settings for an Internet Security Zone.[IsPortListening]
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" This test provides a way to query a remote port on a computer to see if there is a process listening on the port.[Memory]
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 [Processor]
Name Type Description utilization output Memory utilization (virtual memory) total output Total (physical) memory in K available output Available (physical) memory in K [Registry Key]
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 [User]
Name Type Description key input The registry key you wish to test (search) for val output The value of the registry key [WebPage]
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" [Windows]
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
Name Type Description name output OS name version output OS "major.minor" version 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
5. 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 = messageIf 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:
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:
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' zone.err.msg = $url$ must be in the 'Internet' zoneAn 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
6. 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.3805The operators in the expression language are:
name.warn = +"1997"
name.err = not(+"1997" || +"1998" || +"2000" || +"2002" || +"XP")The functions that can be used 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 An example of the use of expressions is shown below:
Function Description not(bIn) false if bIn==true; true if bIn==false [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
7. 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:
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:
- The first script.txt that has been signed to the EXE
- A script.txt that is in the same folder as the EXE
- The default script.txt
vsign2 desktopanalyzer.exe script.txt key.txtThe 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.
8. 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.
9. End User Reporting 
The 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.




