Innovative File Transfer and Management
_


 
 

You've Got Files! User Manual v3.204

Niwot Networks, Inc, 721 9th Ave., Longmont, CO 80501. (303) 772-8664

You've Got Files! Features Supported

Alphabetic list of ygfconf.txt entries.

Running The Program
    Monitoring Local Directories
    Monitoring Network Directories
    Monitoring FTP servers
    Monitoring SFTP Servers
    Monitoring FTPS Servers
    Schedule Starting and Stopping The Program
    Monitoring Windows Computers On Your Network
    Starting/Stopping You've Got Files!

Configuring The Program

Example Configuration

The You've Got Files! configuration GUI

Troubleshooting You've Got Files!

Notes On Using An Exchange Server to Send Email

Uninstalling You've Got Files!

Program Log Files
    The Run Log
    Errors Found In The Run Log
    The Send Log
    The FTP Log
    Undeliverable Mail

NiwotFtpGet

Interface to WhoDunIt

Change Notes

The You've Got Files! License Agreement


You've Got Files! Features Supported

You've Got Files! has 5 levels of feature support:

Feature   BASIC      DEMO   PROFESSIONAL  CORPORATE  ENTERPRISE 
Maximum Quantity of Directory
Structures Monitored
2 5 100 Unlimited Unlimited
Custom Scan Scheduling of Local,
Network, FTP, SFTP, and FTPS Servers
Authenticate using AUTH or
POP3 before SMTP
Email Multiple Addresses, use a file to list
addresses, support Multiple SMTP Servers
LaunchApplication
 
Configurable Subject and HTML
fomatting of Email Messages
 
Old File Detect,Custom Notify
Insufficient Space Detect
   
Disable Last Line "You've Got Files!
http://www.niwotnetworks.com"
     
Embed Images in
notification email
     
FastNotify
       
Multiple Instances
       


Troubleshooting You've Got Files!

The biggest help in troubleshooting is by looking at the log files generated.
Program Log Files
These files are located in the installation directory and include:
    The Run Log runlog.txt
    The Send Log sendlog.txt
    The FTP Log ftplog.txt

Monitoring Network-Mounted drives requires UNC paths and that the ygf service be logged on with a username/password with access to those paths. See:
Monitoring A Network-Mounted drive

Other files generated during operation include:
scans\scandir*.txt and scans\oldrdir*.txt These UTF-8 text files are directory listings of the monitored directories. You may look at these with notepad to verify what is being monitored. The modification times on these files reflect when the directory listing was performed.
msg*.txt These files are emails that are not yet successfully sent.

Additional log information may be obtained with a Debug statement inserted at the top of the ygfconf.txt file:
Debug=1 logs SMTP and generates showconf.txt file to see parsing of ygfconf.txt file
Debug=2 logs FTP/SFTP/FTPS
Debug=3 logs both
Debug=4,8,64 do not use
Debug=16 generates a notification.txt file containing reasons a notification was generated.
Debug=128 some stunnel-specific information in runlog.txt and a stunnel.conf file containing debug=7 and logging to stunnel.log.

If you'd like Niwot Networks to assist, please email a description of the problem and attach a zip of ygfconf.txt, runlog.txt, and ftplog.txt files from the installation directory to:
contactus@niwotnetworks.com

• Spurious emails from monitored ftp sites

As You've Got Files! is running, it keeps a record of the contents of your directories in order to know when new/changed files have arrived or deletions have occurred.
The program no longer generates spurious emails when a Ygf*Dir= value is changed,
but there are some other changes that can generate spurious emails:
A time change occurs on a monitored FTP site which does not report file times in UTC time.
A monitored FTP site changes the format in which it reports file times.

If you are monitoring an FTP site you may want to
First: Stop the You've Got Files! Service before the time change.
Second: Within your installation directory, delete the scans\scandir*.txt and scans\oldrdir*.txt files associated with the FTP site.
Third: Start the You've Got Files! Service after the time change.


Notes On Using An Exchange Server to Send Email

Setting up EXCHANGE 2003 to allow You've Got Files! to send email:

(1)From System Manager: Expand to the Default SMTP Virtual Server

(2) Right Click the Default SMTP Virtual Server and select Properties:

(3)Select The Access Tab and click Relay:

(4)Click Add and enter the IP address of the machine on which You've Got Files!is running:

In this example 192.168.0.2

(5)Please Note that if the machine on which You've Got Files! is running is separated from the Exchange server by a proxy (one example would be a NAT(Network Address Translation) proxy) then Add the address of the Proxy as seen by the Exchange Server.



Configuring The Program

You've Got Files! determines where to scan for files and who to send email to based on how you configure the program. This information is kept in a configuration file. As You've Got Files! runs, it checks the configuration file every 15 minutes to see if you have made any changes.

The configuration of You've Got Files! is done by adding/modifying the entries in the configuration file ygfconf.txt. This may be done by editing the configuration file with Notepad (do not use a word processor like Word, this can cause problems). The configuration file is found in the directory where you installed You've Got Files!

Entries in the configuration file are defined as key/value pairs, like so:

Key=Value

All keys follow the convention of each word having the first letter capitalized, and the remaining letters in lower case. The value may be anything, a number or a text string, etc. Following is an example of a valid key/value pair:

SmtpServerName=mail.widgetworld.com

Lines in ygfconf.txt which begin with the '#' character are comment lines (hence they are ignored), like so:

# This is a comment line.


    Multiple Email Addresses
    Example Configuration
    Multiple From Email Addresses/Servers
    "AUTH" authentication
    POP3 before SMTP "P3B4SMTP" authentication
    Wait Before Sending Next Email
    Optional Subject For Email Message
    Email Message Header And Footer Files
    Private Label For Email Messages
    Send Email on File Deletion
    Don't Scan until back online minutes
    Don't Send Email on File Change
    Don't Send Email on File Add
    Wildcard Directories
    No Subfolders
    Alias For the Directory Specification
    AliasExclude For Web Servers with "htmldocs" directory
    Alias "file://" For Files
    IncludeFilesNamed/ExcludeFilesNamed
    IncludeFoldersNamed/ExcludeFoldersNamed
    Launching An Application
    Monitoring A Network-Mounted drive
    Monitoring An FTP Server
    Monitoring An FTP Server Using Specific Or Wildcard Directories
    Monitoring An SFTP Server
    Monitoring An FTPS Server
    Monitoring Multiple Directories
    Ignoring Zero Length Files
    Startup Delay

• ScanIntervalInMinutes
This entry determines how frequently You've Got Files! will scan the monitored locations for new/changed files. This value may be set to as low as 1 minute, or you may want an upper limit of 1440 minutes (the number of minutes in one day).
The time difference between directory listings for a location in the "scans" directory will be the greater of one half the specified value or the time it takes to generate all the listings for all the monitored locations. With the Enterprise license scans on local and UNC locations are done when something changes.
The default value in ygfconf.txt is set to 1 minute to allow more rapid notification during initial testing. For production, most customers set this to a larger value.

ScanIntervalInMinutes=1
This global may be overridden for specific directories with the Ygf*ScanIntervalInMinutes feature.

• ScanSchedule
This entry determines when You've Got Files! will scan the monitored location. The default is blank (scan always).

This global may be overridden for specific directories with the Ygf*ScanSchedule feature.

ScanSchedule=HH:MM mmm [dayspec]|[dayspec]...|[dayspec]

HH:MM is 24 hour time to start the scan
mmm is the number of minutes (less than 1439 ) to enable this scanning
dayspec is Sunday,Monday,Tuesday,Wednesday,Thursday,Friday, Saturday, or the numeric day of the month
multiple dayspecs can be specified with vertical bar(|) between the dayspecs
if no dayspec(s) is(are) specified then do the scan every day

EXAMPLES
#Global enable scanning only on weekdays ScanSchedule=00:01 1438 Monday|Tuesday|Wednesday|Thursday|Friday
#Enable scanning Directory number 37 Sundays starting at 2:01 AM for 45 minutes
Ygf37ScanSchedule=02:01 45 Sunday
#Enable scanning Directory number 25 in the early morning on the first and fifteenth of the month
Ygf25ScanSchedule=00:01 480 1|15

• SmtpPort
The default SMTP Port 25 is used if this entry is not specified. Use SmtpPort= to specify an alternate SMTP port. You may also use Ygf*SmtpPort= to override the default for a specific directory.

If you define SmtpPort=465, then Stunnel will be used to provide a Secure Sockets Layer around the SMTP communication (this is known as "SMTPS", which is SMTP protocol over TLS). If you use SmtpPort=465, you must also define MailUserName= and MailPassword=
For example if your gmail account is niwotbob and your password is george then:
SmtpPort=465
FromEmailAddress=niwotbob@gmail.com
MailUserName=niwotbob
MailPassword=george
SmtpServerName=smtp.gmail.com

• SmtpServerName
This entry defines the name of the SMTP server which will be responsible for sending email. A value for this entry is defined during the installation of You've Got Files!  A typical entry might be something like:

SmtpServerName=mail.widgetworld.com

This default SMTP server may be over-ridden on a directory-by-directory basis by entering Ygf*SmtpServerName=mail.differentserver.com

• SerialNumber
This entry defines the serial number that you must have in order for You've Got Files! to run. This serial number must be obtained from Niwot Networks Inc. The default value in ygfconf.txt will allow for a 30 day demo of the program:

SerialNumber=NIWOTDEMO

After the 30 day demo period, You've Got Files! will no longer run unless a valid serial number from Niwot Networks Inc. is obtained and entered into ygfconf.txt.

• FromEmailAddress
This entry defines the From: email address that will be used on all email. A value for this entry is defined during the installation of You've Got Files!  It is advised that you use a real email address for this entry, as some SMTP servers may return "unknown user account" if the email address is not an actual account on the system. A typical entry might be something like:

FromEmailAddress=bobsmith@widgetworld.com

This default FromEmailAddress may be over-ridden on a directory-by-directory basis by entering Ygf*FromEmailAddress=different@fromemailaddress.com

• Ygf*Dir and Ygf*Email
These two entries work hand-in-hand. The Dir entry defines the directory that will be scanned for new/changed files, and the Email entry defines the email address(es) that will be notified of any new/changed files. Values for these entries are defined during the installation of You've Got Files!  Typical entries for these two values might be something like:

Ygf1Dir=C:\incoming
Ygf1Email=bobsmith@widgetworld.com

Monitoring a LOCAL directory might look like: Ygf1Dir=C:\incoming

Monitoring a network mounted directory might look like: Ygf*Dir=//servername/sharename/monitoredfoldername
The niwotdir module is used to retrieve the directory listing for local as well as network mounted directories. The directory information in Unicode format is retrieved and stored in the UTF-8 formatted scans\scandir*.txt file.

Monitoring an FTP directory might look like: Ygf*Dir=ftp://username@ftp.widgetworld.com
If the FTP server is UTF-8 compliant, the directory information in Unicode format is retrieved and stored in the UTF-8 formatted scans\candir*.txt file.

Monitoring an SFTP directory Ygf*Dir=sftp://username@secure.widgetworld.com

Monitoring an FTPS directory By default, ftps is explicit and uses port 990
Ygf*Dir=ftps://username@ftpssl.widgetworld.com
For implicit ftps, specify Ygf*FtpPort=21

Note: for more advanced functionality, the Ygf*Dir entry may be combined with Launching An Application. Click here for an explanation of this functionality.

• Multiple Email Addresses

It is possible to specify more than one email address in the Email definition, by separating the email addresses with commas. An optional space after each comma may be added for clarity. The destination email list must not exceed 511 characters total length. A filename of a file with one email address per line may be specified instead of the comma-separated list of email addresses.

Ygf*Email=bobsmith@widgetworld.com, bsmith@home.net, bobscellphone@abc.com

• Multiple From Email Addresses/Servers

It is possible to specify a unique "From" email address and SMTP server/port to use for each directory entry.
You may override the default SmtpServerName= with Ygf*SmtpServerName=different.mailserver.com
You may override the default SmtpPort= with Ygf*SmtpPort=differentPort
You may override the default FromEmailAddress= with Ygf*FromEmailAddress=different@fromemailaddress.com

• Optional Subject For Email Message

With Demo, Professional, Corporate, and Enterprise licenses, you may specify your own Subject field for your email message. For example, if the following description was entered in the configuration file:

Ygf*Subject=John Wilson has new files!

Then any email messages sent would have a Subject field like this:

From: johnwilson@widgetworld.com
To: johnwilson@widgetworld.com
Subject: John Wilson has new files!
Date: Fri, 8 Feb 2002 16:22:08 -0700

You may also make use of the following substitution strings:

$count   $count will be replaced by the count of new files.
$file   $file will be replaced by the name of the first new file.
$path   $path will be replaced by the path(Windows) or subpath(FTP sites)

A Subject field making use of the sustitution strings might look like:

Ygf*Subject=$count New File(s) for John Wilson: $file

Which could generate the following message:

From: johnwilson@widgetworld.com
To: johnwilson@widgetworld.com
Subject: 1 New File(s) for John Wilson: Updates.doc
Date: Fri, 8 Feb 2002 16:22:08 -0700

Note that the Subject field will be found in all configuration file directory entries. It may be left blank if you do not wish to have a description added to the Subject field:

Ygf*Subject=

• HTML Formatted Email Message

With Demo, Professional, Corporate, and Enterprise licenses, you may specify HTML formatting for your email message using
Ygf*HtmlFormatEmail=1

This causes the generated email message to be Content-Type: text/html; charset=ISO-8859-1
For example:
Ygf2EmailHeaderFile=<html><b>
Ygf2EmailFooterFile=</b></html>
Ygf2HtmlFormatEmail=1
Would cause the Added/Changed/Deleted messsages generated from a change in Directory 2 to be bolded when read in an HTML-enabled client.

Please see the Header and Footer File section
The first characters in HeaderFile or the file referenced by HeaderFile should be <html>
The last characters in FooterFile or the file referenced by FooterFile should be </html>

Embedded image support is available in You've Got Files! Enterprise.

• "AUTH" authentication

If your default SMTP server requires "AUTH" authentication, specify MailUserName= and MailPassword= in your ygfconf.txt file. DO NOT specify a POP3 server name, as that will be interpreted as P3B4SMTP authentication.

If you are using multiple SMTP servers to send, then specify the Ygf*MailUserName= and Ygf*MailPassword= on a directory-by-directory basis. If the default uses P3B4SMTP then also put in a Ygf*Pop3ServerName= with nothing specified to use "AUTH" with the specific non-default server.


• POP3 before SMTP "P3B4SMTP" authentication

If your default SMTP server requires POP3 before SMTP authentication, specify Pop3ServerName= MailUserName= and MailPassword= in your ygfconf.txt file.

If you are using multiple SMTP servers to send, then specify the Ygf*Pop3ServerName= Ygf*MailUserName= and Ygf*MailPassword= on a directory-by-directory basis.

• Private Label For Email Messages

In the Corporate and Enterprise versions of You've Got Files!, the "You've Got Files! http://www.niwotnetworks.com" last line is removed from email messages.

• Carbon Copy For Email Messages

All versions allow you to also send "Carbon copy" emails to a comma-separated list of email addresses. A filename of a file with one email address per line may be specified instead of the comma-separated list of email addresses.

• Blind Carbon Copy For Email Messages

The Corporate and Enterprise versions allow you to also send "Blind carbon copy" emails to a comma-separated list of email addresses. A filename of a file with one email address per line may be specified instead of the comma-separated list of email addresses.

• Wait Before Sending Next Email

You've Got Files! can check different directories at different frequencies with the configuration entry "Wait Before Sending Next Email". This can be very helpful if certain directories experience high volume or have slow network connections. Without this configuration entry, many emails might be generated due to the traffic throughout the workday. This configuration entry is defined in minutes and will look as follows:

Ygf*WaitBeforeSendingNextEmailInMinutes=60

Note that the Global ScanIntervalInMinutes configuration entry may be overridden on a per-directory basis.


Ygf*WaitBeforeSendingNextEmailInMinutes=1

• Customized Notification

You've Got Files! Demo, Corporate, and Enterprise versions can replace the standard notification with this specification.
Within the spec these tokens are replaced with the string appropriate to the notification
$datetime is replaced with the date time string.
$file is replaced with the path to the file.
$fname is replaced with the file name.
$length is replaced with the file length in bytes.
$ntype is replaced with one of "Added Folder:", "Added:", "Changed:", "Deleted Folder:", "Deleted:", "Old file:",
"Monitored directory is empty", "NoNewFile, Newest is:", or "Old first-level folder:"
$localdatetime is replaced by the local date time string.
Example:
Ygf*CustomNotify= $ntype $file $datetime $length bytes
This example results in a notification very similar to the notification with no CustomNotify specified.

• Detecting files with aged modification dates in the monitored directory

You've Got Files! Demo, Corporate, and Enterprise versions can specify a "OldFileDetectInMinutes" time which is useful when you want a notification that a file time in a monitored file is older than your specifed allowed time.
With a OldFileDetectInMinutes=2880 you will receive a notification when a file's file modification time is 2 days old. This is particularly useful to launch a batch file to archive and/or delete the Old file(s) detected.

Please Note: OldFileDetectInMinutes does not check if the file is entirely there before triggering a notification. This was brought to our attention by a customer that tried a setting of 30 minutes when the gigabyte size files they were monitoring might take hours to transfer. Please use a large enough OldFileDetectInMinutes value to be sure the file transfer has completed.
Ygf*OldFileDetectInMinutes=2880
Selecting this feature causes DontNotifyOnChange and DontNotifyOnAdd to default to 1.
This feature is intended to be used with LaunchApplication to archive or delete the old files.
NiwotFTPTool works in conjunction with OldFileDetectInMinutes to download and delete old files from monitored FTP sites.

• Detecting first level folders within the monitored directory whose files are all old

You've Got Files! Demo, Corporate and Enterprise versions can specify a "OldFirstLevelFolderDetectInMinutes=" time which may be useful when you want a notification that a first level folder contains nothing but old files.
For example, this feature may be used to detect old project folders within a monitored "all projects" folder.

Please Note: OldFirstLevelFolderDetectInMinutes does not check if all the files in the FirstLevelFolder are entirely there before triggering a notification.
Ygf*OldFirstLevelFolderDetectInMinutes=2880

This feature may be used with LaunchApplication ($file is the name of the old first level directory) to archive or delete an old local or UNC-accessible folder.
Contact Niwot networks for a sample batch file for UNC or Local paths.

• Detecting files that have grown stale in the monitored directory

You've Got Files! Corporate and Enterprise versions can specify a "Staleness" time which is useful when you want a notification that a file has been in the monitored directory for more than your specifed allowed time.
With a StalenessDetectInMinutes=60 you will receive a notification when a new file has remained in the monitored directory for at least 60 minutes.
This is accomplished by monitoring the specified directory at the interval you specified, so while the minimum time is the time you specify, the maximum is twice that value (or longer on a heavily loaded system).

Ygf*StalenessDetectInMinutes=60

• Send Email When Monitored Location has Insufficient Free Space

You've Got Files! Demo, Corporate, and Enerprise can send email notification if the monitored local or UNC location has less free megabytes than you specify. You may want to combine Ygf*FreeSpaceDetectInMegabytes= with a Ygf*WaitBeforeSendingNextEmailInMinutes=120 and/or Ygf*ScanSchedule= to reduce the number of emails sent when the drive is running low on space. Setting this parameter disables Ygf*FastNotify(applies to Enterprise). This configuration entry is enabled with a number greater than 0:

Ygf*FreeSpaceDetectInMegabytes= integer number of megabytes below which a notification email will be sent.

• Send Email When Monitored Location is Inaccessible

You've Got Files! can send email notification if the location you are monitoring can not be scanned. You specify the number of consecutive failing attempts to trigger a notification. You may want to start with a count of 2 or more(if you are accessing a site over the Internet) to reduce spurious notifications. You may want to combine Ygf*NotifyOnCantAccessCount=3 with a Ygf*WaitBeforeSendingNextEmailInMinutes=120 and/or Ygf*ScanSchedule= to reduce the number of emails sent when the location is unavailable. Setting this parameter disables Ygf*FastNotify(applies to Enterprise). This configuration entry is enabled with a number greater than 0:

Ygf*NotifyOnCantAccessCount=number of consecutive fails to trigger a notification

• Send Email On File Deletion

You've Got Files! can send email notification of files which are deleted with the "NotifyOnDelete" configuration entry. Normally You've Got Files! does not notify of file deletions, so this selection must be added specifically on a directory by directory basis. This configuration entry is enabled with a "1" and will look as follows:

Ygf*NotifyOnDelete=1

• Send Email On Folder Addition

You've Got Files! can send email notification of new folders with the "NotifyOnFolderAdd" configuration entry. Normally You've Got Files! does not notify of folder addition, so this selection must be added specifically on a directory by directory basis. This configuration entry is enabled with a "1" and will look as follows:

Ygf*NotifyOnFolderAdd=1


• Send Email On Folder Deletion

You've Got Files! can send email notification of deleted folders with the "NotifyOnFolderDelete" configuration entry. Normally You've Got Files! does not notify of folder deletion, so this selection must be added specifically on a directory by directory basis. This configuration entry is enabled with a "1" and will look as follows:

Ygf*NotifyOnFolderDelete=1


• Send Email On Empty Folder

You've Got Files! can send email notification of empty folders with the "NotifyOnEmptyFolder" configuration entry. Normally You've Got Files! does not notify on empty folders, so this selection must be added specifically on a directory by directory basis. The customer that requested this is using LaunchApplication to remove left over empty folders. This configuration entry is enabled with a "1" and will look as follows:

Ygf*NotifyOnEmptyFolder=1

• Don't Send Email On File Change

You've Got Files! can be configured to not send email notification of files which are changed with the "DontNotifyOnChange" configuration entry. Normally You've Got Files! will notify of file changes, so this selection must be added specifically on a directory by directory basis. This configuration entry is enabled with a "1" and will look as follows:

Ygf*DontNotifyOnChange=1

• Don't Send Email On Time Change

You've Got Files! can be configured to not send email notification of files which have the same size and name but whose Modification times have changed with the "DontNotifyOnTimeChange" configuration entry. This entry was added for a customer that re-writes the contents of his FTP site daily and schedules operation of "You've Got Files!" so it won't run during the update. This configuration entry is enabled with a "1" and has the fomat:

Ygf*DontNotifyOnTimeChange=1

• Don't Send Email On File Add

You've Got Files! can be configured to not send email notification of files which are added with the "DontNotifyOnAdd" configuration entry. Normally You've Got Files! will notify of file additions, so this selection must be added specifically on a directory by directory basis. This configuration entry is enabled with a "1" and will look as follows:

Ygf*DontNotifyOnAdd=1

• Don't Scan Offline Files Minutes

Windows allows the use of local storage to maintain a synchronized image of online storage and when "Offline Files" are enabled the local storage is accessed when the online storage is unavailable.
You've Got Files! by default does not scan Offline UNC-pathed locations.
When the location is detected offline runlog.txt will have the entry:
[time stamp] FFLINE was ONLINE: Begin Inhibit access [UNC Path]
After an offline location is back online and synchronized, Scanning may be further inhibited for the number of minutes specifed.
Ygf*DontScanOfflineMinutes=
When the location is online and synchronized and the specifed minutes have elapsed runlog.txt will have the entry:
[time stamp] ONLINE for [number] Minutes: Allow access [UNC Path]

• Wildcard Directories

It is possible to specify wildcard directory names by ending the Dir definition with an "*" asterisk character, like so:

Ygf*Dir=C:\incoming\nutsbolts*

In the example above, directories with the names "nutsbolts", "nutsbolts1", "nutsboltsX", etc would all be searched for files. Note also that with the wildcard specification, ONLY the directories meeting the "nutsbolts*" criteria in C:\incoming would be searched.

• No New Files Detected In Minutes

You've Got Files! can be used to alert you that no new files have arrived in the time you specify:

Ygf*NoNewFileDetectedInMinutes=60


• No Subfolders

By default, You've Got Files! will examine all folders within the directory you specify. If you wish to examine only the top level folder, then you may provide the following specification:

Ygf*NoSubfolders=1

This configuration entry, if not used, will default to no value, as follows:

Ygf*NoSubfolders=

• Email Message Header And Footer Files

You may specify email message header and footer information for each Dir entry in your configuration. You've Got Files! will attempt to find and read the file specified, if no file is found then the text itself (up to 500 characters) will be inserted. Use only plain text (or html) files for this purpose, do not use files created by a word processor like Word.

For example, IF your configuration identified for Directory 2 the following entries:

Ygf2EmailHeaderFile=Direct Header Text
Ygf2EmailFooterFile=Direct Footer Text

AND there were no files in the installation directory named "Direct Header Text" or "Direct Footer Text" then the generated email message would have "Direct Header Text" as its first line and "Direct Footer Text" as its next to last line (last line for Corporate or Enterprise, which removes the last line branding).

If the entry does reference a file, like:
Ygf2EmailHeaderFile=C:\messages\header1.txt
Ygf2EmailFooterFile=C:\messages\footer1.txt

And the Ygf2HtmlFormatEmail=1
specifying an HTML format then the "C:\messages\header1.txt" and "C:\messages\footer1.txt" files taken together as a single file should be in html format.

If the contents of "C:\messages\header1.txt" is:
<html><body><b>On the BIGWIDGET server:<br><br>
And the contents of "C:\messages\footer1.txt" is:
<br>Please contact admin@widgetworld.com </b> <br> if you have any questions.</body></html>

Then a Corporate or Enterprise version email message might look like:

From: bobsmith@widgetworld.com
To: bobsmith@widgetworld.com
Subject: You've Got 1 File
Date: Fri, 5 Apr 2006 10:04:20 -0700
On the BIGWIDGET server:

Added: C:\Incoming\NewPolicy.doc 04/05/06 09:42a 23,142 bytes

Please contact admin@widgetworld.com
if you have any questions.

• Email Priority Low, Normal, and High

You may specify email priority to 0(Low), 1(Normal..Default), or 2 (High)
If you do not specify an EmailPriority, the default value is 1.
Ygf*EmailPriority=2


• Alias For the Directory Specification

The Alias may be used to replace the directory specification in the notification.
If the Ygf*Alias=" " then the directory specification in the notification is replaced with a space.
If the Alias begins with "http://", "ftp://", or "\\" then spaces in the notification path are replaced with "%20" in order to make the links clickable.
Email clients and servers insert spaces (returns) after the notification line exceeds 72 characters, so keep your pathnames and filenames short if want them to be clickable.
It is possible to provide a clickable link in your email messages for new files that appear, if the directory being monitored actually corresponds to a directory of a live HTTP or FTP server. For example, if the following Dir and Alias specifications were created:

Ygf*Dir=C:\webroot
Ygf*Alias=http://www.widgetworld.com

Then a new file named "The example.html" in the "C:\webroot" directory would create a clickable link within the email message like so:

Added: http://www.widgetworld.com/The%20example.html

Likewise, the same type of configuration could apply to an FTP server:

Ygf*Dir=C:\ftproot
Ygf*Alias=ftp://ftp.widgetworld.com

Note that this functionality may be combined with the IncludeFilesNamed/ExcludeFilesNamed feature below for more precise notification.

• AliasExclude For Web Servers with "htmldocs" directory

It is possible to exclude part of a clickable link, which is required when using the FTP client feature of You've Got Files! along with some web servers. This is because some web servers will serve web pages from the "htmldocs" directory rather than the root directory of the FTP server. For example, if the following Dir, Alias, and FtpPassword specifications were created:

Ygf*Dir=ftp://username@www.widgetworld.com
Ygf*Alias=http://www.widgetworld.com
Ygf*FtpPassword=password

Then a new file named "the specs.html" in the "htmldocs" directory would create a clickable link within the email message like so:

Added: http://www.widgetworld.com/htmldocs/the%20specs.html

Unfortunately the link above will not work. To correct links in an environment like this, you may add the configuration entry as follows:

Ygf*AliasExclude=htmldocs/

Note the "/" at the end of the string ... that is important, as this will remove the entire substring "htmldocs/" from the clickable link to create a link which now works:

Added: http://www.widgetworld.com/the%20specs.html

• Alias "file://" For Files

You may create clickable links in your email messages for new files that appear. This may be useful if your company shares disk drives on a network or uses UNC paths. For example, if the following Dir and Alias specifications were created:

Ygf*Dir=M:\sales
Ygf*Alias=file://M:\sales

Then a new file named "procedure.doc" in the "M:\sales" directory would create a clickable link within the email message like so:

Added: file://M:\sales\procedure.doc

Likewise, the same type of configuration for UNC paths:

Ygf2Dir=\\sales\evol\sales
Ygf2Alias=file://\\sales\evol\sales

Then a new file named "meetings.doc" in the "\\sales\evol\sales" directory would create a clickable link within the email message like so:

Added: file://\\sales\evol\sales\meetings.doc

Note in text emails that this functionality will not work if the path is too long and causes the link to be displayed on 2 lines of the email message. Currently there are no email client programs that can correctly resolve a text link which is broken onto 2 lines of the email message.

With Demo,Professional, Corporate, and Enterprise licenses, you may specify HTML formatting for your email and get around the plain text hyperlink length limitation.

• IncludeFilesNamed/ExcludeFilesNamed

It may be desirable to include or exclude the scanning of certain types of files from directories. This may be accomplished with the IncludeFilesNamed/ExcludeFilesNamed configuration entries. If the IncludeFilesNamed entry is used, then only those files specified would cause notification. If the ExcludeFilesNamed entry is used, then those files specified would never cause notification. Pattern matching allows for expressions like "*.jpg|*.htm?", where the "*" asterisk character is a wildcard specification for 0 to many characters, and the "?" question mark character is a wildcard specification for 0 to 1 character. Multiple entries are separated by the "|" vertical bar character.

For example, suppose we wished to only be notified of files ending with ".htm" or ".html". (This matching is case insensitive) The following rule would apply:

Ygf*IncludeFilesNamed=*.htm?

Or if we wanted to exclude files ending with ".JPG" and ".gif", then this rule would apply:

Ygf*ExcludeFilesNamed=*.JPG|*.gif

If you create an IncludeFilesNamed entry and an ExcludeFilesNamed entry, they will work correctly together. For example, (imagine this!):

Ygf*IncludeFilesNamed=*.htm?
Ygf*ExcludeFilesNamed=*.html

In this case, files ending with ".htm",".HTM", ".htMa" or ".htmz" would be reported on, but not files ending with ".hTml".

It may also be desirable to send notification only if a particular well-known file arrives in a directory. Use a rule with no wildcards for this instance:

Ygf*IncludeFilesNamed=SalesOrder.doc

• IncludeFoldersNamed/ExcludeFoldersNamed

You may wish to include or exclude the monitoring of certain named directories. This may be accomplished with the ExcludeFoldersNamed and IncludeFoldersNamed configuration entries.
If the ExcludeFoldersNamed entry is used, then if any part of the directory path matches (this is case insensitive) this entry, the folder will not be monitored.
If the IncludeFoldersNamed entry is used, at least one part of the directory path must match (this is case insensitive) this entry in order for the folder to me monitored.

For example, if an ExcludeFoldersNamed entry was defined as follows:

Ygf*ExcludeFoldersNamed=temp

Then no email notification would occur for the following paths:

C:\Temp
C:\SalesDocs\TEMP
C:\Meetings\December\temp

Pattern matching (this is case insensitive) allows for expressions like "temp*|done?", where the "*" asterisk character is a wildcard specification for 0 to many characters, and the "?" question mark character is a wildcard specification for 0 to 1 character. Multiple entries are separated by the "|" vertical bar character.

For example, suppose we wished to not be notified of folder names with "tem" or "temp". The following rule would apply:

Ygf*ExcludeFoldersNamed=tem*

Or if we wanted to exclude folders ending with "jpg" and "gif", then this rule would apply:

Ygf*ExcludeFoldersNamed=*jpg|*gif

• Exclude This particular folder

A customer had a root "InBasket" and a root "OutBasket" folder on his FTP site and set up a process to delete empty folders. However, if the root "InBasket" or root "OutBasket" folder was empty, they were NOT to be deleted. That is the origin of this feature.
Ygf*ExcludeThis=

If we wanted to exclude the FTP site root folders InBasket and OutBasket, then this rule would apply:

Ygf*ExcludeThis=InBasket|OutBasket

In this example directories within InBasket/Bob would still be scanned
• Directory-Specific ScanIntervalInMinutes

It is possible to override the global ScanIntervalInMinutes for each directory. If a directory-specific value is not entered the Global is used.

Ygf*ScanIntervalInMinutes=

• Directory-Specific ScanSchedule

It is possible to override the Global ScanSchedule for each directory. If a directory-specific value is not entered the Global is used. If the Global is blank and the directory-specific ScanSchedule is blank then scanning is enabled.

Ygf*ScanSchedule=HH:MM mmm [dayspec]|[dayspec]...|[dayspec]

• Launching An Application

In some environments, you may wish to run an application program/batch file/script against new files found in directories. This may be combined with the sending of notification email, in such a way that one or the other (program or email) or both may be selected based on the entries in your configuration file. Suppose you had a program named "INVOICE.EXE" that created invoices. You could run this program on every new file in a directory with the following entry:

Ygf*LaunchApplication=INVOICE.EXE $file

Note the use of the variable "$file" in the example above. You may use this to substitute the actual full path to the file in the place of the variable "$file" at the time the program is run.

The variable "$subpath" may also be used to substitute the subpath "$subpath" at the time the program is run.
$subpath is a null string if the added,deleted, or changed file is in the root of the monitored folder.
$subpath if it exists and directory is local or UNC starts with a slash does not end with a slash
$subpath if it is an ftp, sftp, or ftps site exists and does not start with a slash

The variable "$fname" may also be used to substitute the filename in the pace of "$subpath" at the time the program is run.

Replacements for variables $file, $fname, and $subpath use the UTF-8 Unicode character set.
The niwotmov.exe and niwotdel.exe utility programs may be called with UTF-8 Unicode characters in their parameters.

The variable "$length" may also be used to substitute the actual filesize (decimal string) in place of the variable "$length" at the time the program is run.

The variable $count passed into LaunchAppplication with a value of 1 for first launch, and increments with each launch when multiple launches are in a single notification.

The variable $localdatetime is replaced by the local date time string.

As an example:

Ygf2Dir=\\niwot1\nn6sys\test
Ygf2LaunchApplication=testpath.bat $file "D:\test1\In Basket$subpath\">>testpath.log

This spec monitors \\niwot1\nn6sys\test for added or changed files. Suppose a file "newfile.txt" was added in \\niwot1\nn6sys\test\bob\frank, then the command line launched would be:

testpath.bat "\\niwot1\nn6sys\test\bob\frank\newfile.txt" "D:\test1\In Basket\bob\frank\">>testpath.log

If testpath.bat was a file that contained:

xcopy /y %1 %2

Then "newfile.txt" would be copied to D:\test1\In Basket\bob\frank\newfile.txt
testpath.log would contain the xcopy command line and output.

If you wish to monitor a directory and only run a program against new files (sending no email), then you would leave the email address field blank for that entry, like so:

Ygf*Email=
Ygf*LaunchApplication=INVOICE.EXE $file

• Spawning An Application

In some environments, you may wish to run an application program/batch file/script against new files found in directories and NOT have You've Got Files! wait for the started application to complete before resuming scanning. We call this spawning. Spawning may be combined with the sending of notification email, in such a way that one or the other (program or email) or both may be selected based on the entries in your configuration file. Extreme care must be taken by the user to ensure that the spawned applications complete, otherwise SpawnAppNoWait is identical to LaunchApplication.

Ygf*SpawnAppNoWait=INVOICE.EXE $file

• Monitoring A Network-Mounted drive

It is possible to have You've Got Files! monitor Network-Mounted drives using the UNC path \\servername\sharename or \\servername\sharename\foldername[\foldername].
The niwotdir module is used to retrieve the file and path names in Unicode format and store that information in the UTF-8 formatted scans\scandir*.txt file.
You may not monitor Network-Mounted drives using mapped drive letters, as they don't exist for services. You must have the service login with a username and password that is authorized to view the monitored UNC path. See Monitoring Windows Computers On Your Network or Monitoring Linux Computers On Your Network

The Dir entry should look like:
Ygf*Dir=\\servername\sharename

or
Ygf*Dir=\\servername\sharename\foldername

or
Ygf*Dir=\\servername\sharename\foldername\subfoldername

If you as a user log in with the same username and password that the service is using, then you may want to go to the Command Prompt and enter "dir /s \\servername\sharename\foldername" to see if the path is accessible.


• Monitoring An FTP Server

It is possible to have You've Got Files! monitor FTP servers.
If the FTP Server is UTF-8 compliant, UTF-8 will be used and Unicode names are supported. See Notes on UTF-8 FTP
The Dir entry should be modified as follows, along with an additional entry for the FTP user's password.

Ygf*Dir=ftp://username@ftp.widgetworld.com
Ygf*FtpPassword=password

When monitoring an FTP server, the Dir entry should begin with the six characters ftp:// followed by the username whose account you wish to log into, followed by the @ sign, followed by the FTP server name. The FtpPassword entry will be encrypted in the configuration file once the program has been run once, thereby maintaining security of passwords. Do not hand modify this string once it has been encrypted. If you ever need to change the password, enter it again (overwriting the old encrypted value, including all characters after the '=' sign) and it will be encrypted again in the configuration file. The following entry shows what an encrypted password in the configuration file might look like:

Ygf*FtpPassword=ENC!6CD5772453FB9790

The FtpPassword line should not exist or be left blank if you are not monitoring an FTP, SFTP, or FTPS server.

FTP servers normally listen on port 21 for incoming connections. If your FTP server is listening on a different port, you may configure the FtpPort parameter:

Ygf*FtpPort=1245

• Notes on UTF-8 FTP servers

You've Got Files! sends the CLNT and OPTS UTF8 ON commands whenever it connects to an FTP server.
Information from the FTP server is treated as containing Unicode/UTF-8 names, and that information is preserved in the UTF-8 directory scan "scandir" files and in the notification emails. This supports multiple languages.

Note that if you are using a UTF-8 compliant FTP server, you will need a UTF-8 compliant FTP client in order to see the files and directory names that You've Got Files! may notify you about with UTF-8 character sets.

Some UTF-8 compliant FTP servers: www.g6ftpserver.com, www.raidenftpd.com
Some UTF-8 compliant FTP clients: www.smartftp.com

• FTP Double Login Some FTP servers require a "Double Login" where the user must first login as anonymous and then login with a username/password. A double login with the first login being "anonymous" and the first password being the "FromEmailAddress" may be accomplished with:

Ygf*FtpDoubleLogin=1


• Embed Images in email with You've Got Files! Enterprise

Ygf*Embed=
The parameter string is a comma separated list of images to be embedded into the email.

Embed is not available in Corporate, Professional, and Basic versions.
EXAMPLE:
# embed two images in the notification email
Ygf2Embed=codegreen.png,check.gif
# format the email as HTML
Ygf2HtmlFormatEmail=1
# define a header to include the first image
Ygf2EmailHeaderFile=<html><p><img border=0 width=32 height=60 src="cid:codegreen.png"></p>
# define a footer to include the second image
Ygf2EmailFooterFile=<p><img border=0 width=32 height=60 src="cid:check.gif"></p></body></html>


• FastNotify Enterprise Windows Notification

Enterprises with very large numbers of locations monitored may take advantage of rapid change notification when monitoring local drives and UNC paths. This method relies on Windows to signal that changes have occurred so fewer directory listings are performed, so thousands of locations may be monitored. The method does not speed up FTP, SFTP or FTPS monitoring.
In our testing of a Ubuntu Samba share using a UNC path this method was also supported.
The Enterprise version enables FastNotify by default.
This method is not avaialble in Corporate, Professional, and Basic versions.
FastNotify may be disabled on a directory-by-directory basis in the Enterprise version with:
Ygf*FastNotify=0

• FTP: Disabling CDUP (use CWD ..) to move up an FTP directory

Some FTP servers require a "CWD .." to make the parent directory the current working directory. The default behavior is for the You've Got Files! FTP client to send "CDUP" for this purpose. Should your FTP server require "CWD ..":
(SFTP servers don't accept CDUP)

Ygf*FtpDontUseCDUP=1


• FTP: Monitoring An FTP Server Using Specific Or Wildcard Directories

You may wish to monitor a specific directory within an FTP server. This is accomplished by adding the specific directory name onto the end of the Dir specification:

Ygf*Dir=ftp://jbrown@ftp.widgetworld.com/incoming/sales

The specification above would monitor only the "incoming/sales" directory of the FTP server using the login "jbrown".

You may also wish to monitor directories using a wildcard specification, accomplished by adding an "*" asterisk character at the end of the definition. Suppose the "incoming" directory above also included the folders "salesEast", "salesSouth", and "salesWest". A wildcard specification that would examine all of the "salesxxxx" folders would look like:

Ygf*Dir=ftp://jbrown@ftp.widgetworld.com/incoming/sales*

The above specification would monitor the "incoming/sales", "incoming/salesEast", "incoming/salesSouth", and "incoming/salesWest" directories.

• Monitoring An FTP Server using Passive FTP

You've Got Files! supports Passive FTP commands to offer a more secure form of data transfer. If a specification like Ygf*FtpPasv=1 is made for an FTP server being monitored, then Passive FTP will be used. In this way all flow of data is initiated by the You've Got Files! FTP client rather than an external FTP server program. Customers using Passive FTP will know that all data flow initiation comes from inside their network rather than from the outside. Note: not all FTP servers support Passive FTP.

• Monitoring An SFTP Server

It is possible to monitor SFTP servers that accept Keyboard-interactive authentication via password with SSH-2.
Public Key and SSH-1 methods.

Unicode/UTF-8 names are supported when monitoring VanDyke's VShell SFTP server (www.vandyke.com).

Ygf*Dir=sftp://username@secure.widgetworld.com
Ygf*FtpPassword=password

When monitoring an SFTP server, the Dir entry should begin with the seven characters sftp:// followed by the username whose account you wish to log into, followed by the @ sign, followed by the SFTP server name. The FtpPassword entry will be used and will be encrypted in the configuration file once the program has been run once, thereby maintaining security of passwords. Do not hand modify this string once it has been encrypted. If you ever need to change the password, enter it again (overwriting the old encrypted value, including all characters after the '=' sign) and it will be encrypted again in the configuration file. The following entry shows what an encrypted password in the configuration file might look like:

Ygf*FtpPassword=ENC!6CD5772453FB9790

The FtpPassword line should not exist or be left blank if you are not monitoring an FTP, SFTP or FTPS server.

SFTP servers normally listen on port 22 for incoming connections. If your SFTP server is listening on a different port, you may configure the SftpPort parameter:

Ygf*SftpPort=1246

Common errors in runlog.txt you may see when attempting connections to an SFTP server:

Tue Sep 25 16:17:24 2007 Ygf1Dir SFTP server=192.168.1.176:22 user=jake
Network error: Connection timed out
ssh_init: error during SSH connection setup -10060
Possible cause: SFTP server is not running, or incorrect server address.

Tue Sep 25 16:32:23 2007 Ygf1Dir SFTP server=192.168.1.176:22 user=jake
Access denied
Disconnected: Unable to authenticate
ssh_init: error during SSH connection setup -1
Possible cause: Bad password.

• SFTP Server Authentication

ADD_KEY_REQUEST: SFTP servers usually require a one-time response from the user in order to proceed with authentication. The following shows the sequence of events that can occur. An attempt by You've Got Files! to login and authenticate with your SFTP server will generate an email similar to the following:

From: CharlieBrown@widgetworld.com
Date: Tuesday, September 25, 2007 12:25 PM
To: JakeRogers@widgetworld.com
Subject: You've Got Files! SECURITY MESSAGE
ADD_KEY_REQUEST for Ygf1Dir
Please see the You've Got Files! runlog.txt file for specific information.

A message similar to the following will be found in the runlog.txt file:

Tue Sep 25 12:25:39 2007 Ygf1Dir SFTP server=192.168.1.176:22 user=jake
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 1024 5d:68:a3:bc:e4:3f:1c:b4:2c:b2:1d:9a:f9:09:72:a0
### IMPORTANT NOTE ###
If you trust this server, enter Ygf1SftpAddKeyToRegistry=1 to your ygfconf.txt file.
### ############## ###
Connection abandoned.
Disconnected: User aborted at host key verification
ssh_init: error during SSH connection setup -1

Adding Ygf1SftpAddKeyToRegistry=1 to the ygfconf.txt file and restarting You've Got Files! will cause the program to allow this authentication to complete. This operation will add the proper key to the registry (found in HKEY_CURRENT_USER\Software\NiwotNetworks\PuTTY\SshHostKeys or HKEY_USERS\.DEFAULT\Software\NiwotNetworks\PuTTY\SshHostKeys). You've Got Files! will automatically reset the entry in the ygfconf.txt file to Ygf1SftpAddKeyToRegistry=0 after adding the registry key. No email message will be sent, though a message similar to the following will be found in the runlog.txt file:

Tue Sep 25 12:44:23 2007 Ygf1Dir SFTP server=192.168.1.176:22 user=jake
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 1024 5d:68:a3:bc:e4:3f:1c:b4:2c:b2:1d:9a:f9:09:72:a0
### IMPORTANT NOTE ###
You had Ygf1SftpAddKeyToRegistry=1 in your ygfconf.txt file, so we will proceed.
### ############## ###

UPDATE_KEY_REQUEST: If certain changes occur within the environment of your SFTP server, like the server administrator changing the host key, then an email like the following will be sent:

From: CharlieBrown@widgetworld.com
Date: Tuesday, September 25, 2007 1:48 PM
To: JakeRogers@widgetworld.com
Subject: You've Got Files! SECURITY MESSAGE
UPDATE_KEY_REQUEST for Ygf1Dir
Please see the You've Got Files! runlog.txt file for specific information.

A message similar to the following will be found in the runlog.txt file:

Tue Sep 25 13:48:49 2007 Ygf1Dir SFTP server=192.168.1.176:22 user=jake
WARNING - POTENTIAL SECURITY BREACH!
The server's host key does not match the one PuTTY has
cached in the registry. This means that either the
server administrator has changed the host key, or you
have actually connected to another computer pretending
to be the server.
The new rsa2 key fingerprint is:
ssh-rsa 1024 49:3f:60:9b:4d:e9:f7:a2:74:d7:d9:99:73:cf:34:29
### IMPORTANT NOTE ###
If you were expecting this change and trust the new key,
enter Ygf1SftpAddKeyToRegistry=-1 in your ygfconf.txt file.
### ############## ###
Connection abandoned.
Disconnected: User aborted at host key verification
ssh_init: error during SSH connection setup -1

Adding Ygf1SftpAddKeyToRegistry=-1 to the ygfconf.txt file and restarting You've Got Files! will cause the program to allow this authentication to complete. This operation will update the proper key in the registry (found in HKEY_CURRENT_USER\Software\NiwotNetworks\PuTTY\SshHostKeys or HKEY_USERS\.DEFAULT\Software\NiwotNetworks\PuTTY\SshHostKeys). You've Got Files! will automatically reset the entry in the ygfconf.txt file to Ygf1SftpAddKeyToRegistry=0 after updating the registry key. No email message will be sent, though a message similar to the following will be found in the runlog.txt file:

Tue Sep 25 14:29:13 2007 Ygf1Dir SFTP server=192.168.1.176:22 user=jake
WARNING - POTENTIAL SECURITY BREACH!
The server's host key does not match the one PuTTY has
cached in the registry. This means that either the
server administrator has changed the host key, or you
have actually connected to another computer pretending
to be the server.
The new rsa2 key fingerprint is:
ssh-rsa 1024 49:3f:60:9b:4d:e9:f7:a2:74:d7:d9:99:73:cf:34:29
### IMPORTANT NOTE ###
You had Ygf1SftpAddKeyToRegistry=-1 in your ygfconf.txt file, so we will proceed.
### ############## ###

• Monitoring An FTPS Server

It is possible to monitor FTPS servers using a configuration like:

Ygf*Dir=ftps://username@ftpssl.widgetworld.com
Ygf*FtpPassword=password
Ygf*FtpsAllowSelfSignedCertificate=1

When monitoring an FTPS server, the Dir entry should begin with the seven characters ftps:// followed by the username whose account you wish to log into, followed by the @ sign, followed by the FTPS server name. The FtpPassword entry will be used and will be encrypted in the configuration file once the program has been run once, thereby maintaining security of passwords. Do not hand modify this string once it has been encrypted. If you ever need to change the password, enter it again (overwriting the old encrypted value, including all characters after the '=' sign) and it will be encrypted again in the configuration file. The following entry shows what an encrypted password in the configuration file might look like:

Ygf*FtpPassword=ENC!6CD5772453FB9790

FTPS servers for implicit ftps normally listen on port 990 for incoming connections. If your FTPS server is listening on a different port, you may configure the FtpPort parameter:

Ygf*FtpPort=990

FTPS servers that initially listen on port 21 and then negotiate TLS are also called explicit FTPS. You may configure the FtpPort parameter for explicit FTPS:

Ygf*FtpPort=21

• SSL Certificate Verification

FTPS (via Curl) performs an SSL certificate verification based on the bundle of Certificate Authorities specified in the cacert.pem file.
If your FTPS site is self-signed or uses a Certificate Authority not in the cacert.pem file then please include this parameter:
Ygf*FtpsAllowSelfSignedCertificate=1

• Monitoring Multiple Directories

In order to handle the scanning of more than one directory/email list, you may specify additional YgfxxDir/YgfxxEmail pairs by using the next numbered pair of entries, as follows:

Ygf2Dir=D:\NewWidgets
Ygf2Email=johnbrown@speedy.com

• Ignoring Zero Length Files

Some systems report files that are being uploaded as having zero length until the file has been completely received. You've Got Files! will not send notification regarding any zero length files if you enable the following in the ygfconf.txt configuration file:

IgnoreZeroLengthFiles=1

This global setting may be overridden with Ygf*IgnoreZeroLengthFiles= on a per-directory basis.
The default setting for this entry is blank or 0 [zero], which would send notification of zero length files.

• Running more than one instance of You've Got Files!

Enterprise license allows up to 2 instances of You've Got Files! on the same machine.
The second instance is installed in C:\Program Files\Niwot\You've Got Files!_2
Enterprise4 license allows up to 4 instances of You've Got Files! on the same machine.
The third instance is installed in C:\Program Files\Niwot\You've Got Files!_3
The fourth instance is installed in C:\Program Files\Niwot\You've Got Files!_4
There is a separate installer for the multiple-instance Enterprise program.

Instance=[default blank],[_2],[_3],[_4]

• Mail Multiple Lines Per File

The default email format now has a single line per file Added, Changed, Deleted, or Detected as Old
If you'd like to return to the old 3-lines-per-file format set this parameter in the ygfconf.txt configuration file:

MailMultipleLinesPerFile=1

Please note that this entry is system-wide and applies to all emails generated. scanned. The default setting for this entry is blank or 0 [zero].

• Startup Delay

When system reboots occur in particular environments, it may be desirable to wait for some length of time for all network systems to stabilize. If you wish to have a startup delay take affect when You've Got Files! begins execution, you may enable the following in the ygfconf.txt configuration file:

StartupDelayInMinutes=2

This would cause a 2 minute delay before any directory scanning when You've Got Files! starts. The default setting for this entry is blank or 0 [zero], corresponding with no startup delay.

• Example Configuration

Here is an example of a correctly configured ygfconf.txt file, with varying complexity and use of features:

ScanIntervalInMinutes=5
SmtpServerName=mail.widgetworld.com
SerialNumber=NIWOTDEMO
FromEmailAddress=bobsmith@widgetworld.com
IgnoreZeroLengthFiles=
StartupDelayInMinutes=
#
### Scanning one directory, a minimal configuration
Ygf1Alias=
Ygf1Dir=C:\incoming
Ygf1Email=bobsmith@widgetworld.com
Ygf1EmailFooterFile=C:\Program Files\Niwot\You've Got Files!\footers\bobsmith.txt
Ygf1EmailHeaderFile=C:\Program Files\Niwot\You've Got Files!\headers\bobsmith.txt
Ygf1ExcludeFilesNamed=
Ygf1IncludeFilesNamed=*.doc|*.pdf
Ygf1ExcludeFoldersNamed=temp|tmp
Ygf1FtpPassword=
Ygf1LaunchApplication=
Ygf1NoSubfolders=
Ygf1Subject=Bob Smith file notification - $count new files
Ygf1WaitBeforeSendingNextEmailInMinutes=5
#
### Scanning a second directory, more complicated configuration
Ygf2Alias=http://www.widgetworld.com
Ygf2AliasExclude=htmldocs/
Ygf2Dir=E:\webroot
Ygf2Email=webusers@widgetworld.com
Ygf2EmailPriority=2
Ygf2HtmlFormatEmail=1
Ygf2EmailFooterFile=E:\webusers\footer.txt
Ygf2EmailHeaderFile=E:\webusers\header.txt
Ygf2ExcludeFilesNamed=A*.*|B*.*|C*.*
Ygf2IncludeFilesNamed=R*.wav|K*.wmv
Ygf2ExcludeFoldersNamed=*/archive/*
Ygf2FtpPassword=
Ygf2LaunchApplication=
Ygf2NoSubfolders=1
Ygf2Subject=
Ygf2WaitBeforeSendingNextEmailInMinutes=15
#
### Scanning an FTP server and launching an application
### Don't notify/launch application if file is changed
Ygf3Alias=
Ygf3Dir=ftp://harryj@ftp.widgetworld.com
Ygf3Email=support@widgetworld.com, hjohnson@widgetworld.com
Ygf3EmailFooterFile=
Ygf3EmailHeaderFile=
Ygf3ExcludeFilesNamed=
Ygf3IncludeFilesNamed=
Ygf3FtpPassword=password
Ygf3DontNotifyOnChange=1
Ygf3LaunchApplication=SendTheFile.bat $file >> SendTheFilelog.txt
Ygf3NoSubfolders=
Ygf3Subject=$count New File(s) for harryj
Ygf3WaitBeforeSendingNextEmailInMinutes=30
#
### Uses UNC path
### This one sends notifications for stale incoming files using OldFileDetectInMinutes
Ygf4Alias=
Ygf4Dir=\\jackson\sales\incoming
Ygf4Email=support@widgetworld.com, hjohnson@widgetworld.com
Ygf4OldFileDetectInMinutes=240
Ygf4EmailFooterFile=This is Direct Footer Text - not from a file
Ygf4EmailHeaderFile=This is Direct Header Text - not from a file
Ygf4ExcludeFilesNamed=
Ygf4IncludeFilesNamed=
Ygf4FtpPassword=
Ygf4LaunchApplication=
Ygf4NoSubfolders=
Ygf4Subject=$count Stale File(s): $file
Ygf4WaitBeforeSendingNextEmailInMinutes=60


Alphabetic list of ygfconf.txt entries (CASE SENSITIVE):

ENTRY (case sensitive)   DEFAULT  
Debug=  Default blank interpreted as 0 (Global) 
DirAccessTimeInSeconds=  Default 10, Do not enter this parameter. (Global) 
ExcludeThis=  Default blank (Global)
FromEmailAddress=  Required (Global) 
FtpLogDepth=  Default 3, Modify if you wish to save more *log.txt files (Global) 
FtpWatchdogTimeoutInSeconds=  Default 30, Modify if you have a very slow FTP server (Global) 
FullAccessSid=  Default blank (S-1-5-11) "Authenticated Users" may edit ygfconf.txt.
IgnoreZeroLengthFiles=  Default blank interpreted as 0 (Global) 
Instance=  Default blank for first instance of You've Got Files! (Global) 
MailMultipleLinesPerFile=  Default blank interpreted as a 0(Global) 
MailPassword=  Default blank, needed for AUTH or P3B4SMTP (Global) 
MailUserName=  Default blank, needed for AUTH or P3B4SMTP (Global) 
Pop3ServerName=  Default blank, needed for P3B4SMTP (Global) 
PutEventSourceInRegistry=  Default 0, Set to 1 to put insufficient disk space message in Event Log (Global) 
ScanIntervalInMinutes=  Default 1 so Demo users will get quick notifications.(Global) 
ScanSchedule=  Default Blank, HH:MM mmm [dayspec]|[dayspec]. (Global) 
SerialNumber=  Default NIWOTDEMO expires. (Global) 
SmtpPort=  Default is 25 (Global) 
SmtpServerName=  Required (Global) 
StartupDelayInMinutes=  Default blank interpreted as 0 (Global) 
Ygf*Alias=  Default blank 
Ygf*AliasExclude=  Default blank 
Ygf*BccEmail=  Default blank, Corporate, Enterprise versions can send to a BCC list 
Ygf*CcEmail=  Default blank, send email to a CC list 
Ygf*CustomNotify=  Default blank. Corporate, Enterprise, and Demo can customize the notification 
Ygf*Dir=  Required  
Ygf*DontNotifyOnAdd=  Default blank interpreted as 0 
Ygf*DontNotifyOnChange=  Default blank interpreted as 0 
Ygf*DontNotifyOnTimeChange=  Default blank interpreted as 0 
Ygf*DontScanOfflineMinutes=  Default blank interpreted as 0 
Ygf*Email=  Each monitored directory needs this or LaunchApplication 
Ygf*EmailFooterFile=  Default blank (Basic and Professional always have "You've Got Files! http://www.niwotnetworks.com as last line") 
Ygf*EmailHeaderFile=  Default blank 
Ygf*EmailPriority=  Default blank is a 1 (normal) 
Ygf*Embed=  Default blank Enterprise version
Ygf*ExcludeFilesNamed=  Default blank 
Ygf*ExcludeFoldersNamed=  Default blank 
Ygf*ExcludeThis=  Default blank 
Ygf*FastNotify=  Enterprise Default 1 Enabled, Others Disabled  
Ygf*FreeSpaceDetectInMegabytes=  Corporate, Enterprise Default 0  
Ygf*FromEmailAddress=  Default is the global FromEmailAddress 
Ygf*FtpDontUseCDUP=  Default blank interpreted as 0 
Ygf*FtpDoubleLogin=  Default blank interpreted as 0 
Ygf*FtpPassword=  Default blank, required if Ygf*Dir=ftp:// or Ygf*Dir=sftp:// or Ygf*Dir=ftps:// 
Ygf*FtpPasv=  Default blank, if set to 1 then Ftp Client uses Passive FTP
Ygf*FtpPort=  Default blank, only required if FTP server listening on non-standard port (standard is port 21) 
Ygf*FtpsAllowSelfSignedCertificate=  Default blank, set to 1 to use self-signed FTPS. 
Ygf*HtmlFormatEmail=  Default blank interpreted as 0 
Ygf*IgnoreZeroLengthFiles=  Default blank uses the Global value  
Ygf*IncludeFilesNamed=  Default blank 
Ygf*IncludeFoldersNamed=  Default blank 
Ygf*LaunchApplication=  Default blank 
Ygf*MailPassword=  Default is the global MailPassword 
Ygf*MailUserName=  Default is the global MailUserName 
Ygf*MinimumListMillisec=  Default 0 (fastest FTP and SFTP listing) 
Ygf*NetworkSolutionsFtpServer=  Default 0, 1 ignores empty site scans. 
Ygf*NoNewFileDetectedInMinutes=  Default blank  
Ygf*NoSubfolders=  Default blank interpreted as 0 
Ygf*NotifyOnCantAccessCount=  Default blank interpreted as 0 
Ygf*NotifyOnDelete=  Default blank interpreted as 0 
Ygf*NotifyOnEmptyFolder=  Default blank interpreted as 0 
Ygf*NotifyOnFolderAdd=  Default blank interpreted as 0 
Ygf*NotifyOnFolderDelete=  Default blank interpreted as 0 
Ygf*OldFileDetectInMinutes=  Default 0 Corporate, Enterprise version can detect old files 
Ygf*OldFirstLevelFolderDetectInMinutes=  Default 0 Corporate, Enterprise versions can detect old first level folders 
Ygf*Pop3ServerName=  Default is the global Pop3ServerName 
Ygf*RetrieveInfo=  Default blank, Corporate, Enterprise may specify WhoDunIt $file to retrieve audit info  
Ygf*ScanIntervalInMinutes=  Default blank, specify value to override Global ScanIntervalInMinutes 
Ygf*ScanSchedule=  Default blank, specify HH:MM mmm [dayspec]|[dayspec] to override Global ScanSchedule 
Ygf*SftpAddKeyToRegistry=  Default blank 
Ygf*SftpPort=  Default (blank) is port 22, use this to specify a custom port 
Ygf*SmtpPort=  Default is the global SmtpPort 
Ygf*SmtpServerName=  Default is the global SmtpServerName 
Ygf*SpawnAppNoWait=  Default blank 
Ygf*StalenessDetectInMinutes=  Default 0 Corporate, Enterprise can detect stale files 
Ygf*Subject=  Default blank (Subject will be "You've Got $count File") 
Ygf*WaitBeforeSendingNextEmailInMinutes=  Default is ScanIntervalInMinutes 
Ygf*WhoDunItObjectEnable=  Default 0, Corporate, Enterprise can call WhoDunItObjectEnable.  

The You've Got Files! configuration GUI

YgfGUI.exe allows the user to convert the "ygfconf.txt" configuration
file into a CSV (comma separated values) file which can be easily edited in a
spreadsheet program like Microsoft Excel™. After editing is complete, the
user may convert the CSV file back into the "ygfconf.txt" format.

When YgfGUI.exe is first started, the user will be prompted to browse for
the "ygfconf.txt" file to be opened. Upon opening and verifying the configuration
file, the corresponding CSV file will be created. The user will see a dialog box
like the following:



The dialog box shows the name of the CSV file, the column names within the CSV file,
and the indexed entries found in the CSV file which correspond to the "ygfconf.txt" data.
The global fields at the top of the "ygfconf.txt" file are not included in the CSV file.

Dialog buttons:

• Launch Excel - Click this button to launch Excel with the current CSV file.
NOTE: Do NOT edit the COMMENTS column of the CSV file when you are in Excel. If the format
of the COMMENTS are changed, there is a good possibility for error when bringing the CSV file
back to the "ygfconf.txt" configuration file. Please edit comments in "ygfconf.txt" before
and after using YgfGUI.exe
NOTE: Do NOT change any "_HTML_" or "_html_" strings, they MUST be stored within the CSV
file that way. They will be restored when converted from CSV to "ygfconf.txt".

• Close - Click this button to close the dialog box. If changes have been made
to the CSV file, a dialog box like the following will be displayed:



If the user clicks on "Yes" to save the changes in the CSV file back to "ygfconf.txt",
then the program will create backup copies of the files changed before saving "ygfconf.txt".
A dialog box like the following will alert the user of the file(s) effected:



If the user clicks on "No" to NOT save the changes in the CSV file back to "ygfconf.txt",
then the program will only create a backup copy of the CSV file changed. A dialog
box like the following will alert the user of the file effected:



Note the format of the backup filenames where a name like "ygfconf.20071019_152915.csv"
represents a timestamp of the backup. The format follows the convention:

YEAR MONTH DAY (underscore character) HOURS MINUTES SECONDS

The HOURS field is represented in 24-hr time, so the file "ygfconf.20071019_152915.csv" is a
backup created on 2007 October 19, at 3PM (1500 hrs), 29 minutes and 15 seconds.

If the user changes the "ygfconf.txt" or CSV file when YgfGUI.exe is not running:
When the program starts up again, it will detect that there are differences between the two
files and the following dialog box will be displayed:



If the user clicks on "No" to NOT use the current CSV file, then the
program will create a backup copy of that CSV file before creating a new CSV file
from "ygfconf.txt". A dialog box like the following will alert the user of the file effected:



Running The Program

You've Got Files! runs as a Windows service. This means it runs unattended, whether or not any user is physically working with the computer on which it is running. It runs as a "background process" and as such has absolutely no user interface.

Services can be remotely administered. Windows offers a number of administrative tools that allow a service to be managed from other machines connected on the network so that you don't have to physically check the computer running the service. You are probably already familiar with the Services Control Panel. This is the primary interface to start, stop and administer You've Got Files!

• Starting/Stopping The Program

  For Windows 2000:

1) From the Start menu, select Settings -> Control Panel. The following Control Panel window will be shown:




2) Double-click on the Administrative Tools icon. The following Administrative Tools window will be shown:




3) Double-click on the Services icon. The following Services window will be shown. Scroll down to the bottom of the window and select the You've Got Files! service in the list:




4) To start the service, click on the You've Got Files! line with the right button of the mouse, and select Start from the popup menu that appears. Once the service is started, the Services window will look like so:



To stop the service, click on the You've Got Files! line with the right button of the mouse, and select Stop from the popup menu that appears.

• Schedule Starting and Stopping You've Got Files!

The ygf service may be started and stopped with the windows scheduler.
(these directions apply to Windows XP)
Start->Control Panel->Scheduled Tasks->File->New->Scheduled Task
You'll need to name the new task ("sched start ygf" is a suggestion)
Rightclick your new task->Properties
Run: net start ygf
Select when you want You've Got Files! to start,
you will be prompted with a username and password to use.

Similarly create a stop task ("sched stop ygf" is a suggestion)
Run: net stop ygf
Select when you want You've Got Files! to stop, you will be prompted with a username and password to use.

Please set the ygf service (in Services) to "manual" so it will not start when the machine reboots.

• Monitoring Windows Computers On Your Network

You've Got Files! has the ability to monitor not only the file system of the computer that it is running on, but also of other computers on your network. In order for this to work correctly, the service must be given the proper rights for your network to be able to log on as Administrator (or as another user with similar privileges to read from the file systems of other computers). All monitoring of Network-Mounted drives requires UNC paths. See Monitoring A Network-Mounted drive

  For Windows NT4:

1) From the Services window, double-click on the Startup button to bring up the Service window:




2) Select 'This account' and enter Administrator and password. Confirm the password and then click on 'OK'. The service will now be able to monitor the file systems of other network computers.




  For Windows 2000:

1) From the Services window, double-click on the You've Got Files! selection to bring up the Properties window:




2) Click on the Log On tab:




3) Select 'This account' and enter Administrator and password. Confirm the password and then click on 'OK'. The service will now be able to monitor the file systems of other network computers.






• Monitoring Linux Computers On Your Network

First, run Samba (or its equivalent) on your Linux machine. With Samba, client PCs running Windows NT4 or 2000 can access directories on the Linux machine using the SMB protocol which is the underlying protocol for Windows file sharing. You can verify whether Samba is already installed by running "rpm -q samba" in a Linux terminal window.

Second, make sure the directories on the Linux machine will allow the username/password you are using on the NT4 or 2000 machine to read the directories on your Linux machine. Samba directories are specified in the /etc/samba/smb.conf file.

Third, make sure you can read the directory on the Linux drive from your NT4 or 2000 command prompt. For example, suppose the Linux machine was named "widget7", the mountable drive was also named "widget7", and the directory you wanted to watch was "temp". In the ygfconf.txt file you would set:

Ygf*Dir=\\widget7\widget7\temp

You should be able to run "dir \\widget7\widget7\temp" from the command prompt. You might also mount \\widget7\widget7 as "L:" and test with Ygf*Dir=L:\temp. That should work as well.

Fourth, go to the services applet and set the "LogOn As" to the account and password that works to accessthe Linuxmachine.In NT4 this is Settings->Control Panel->Services->You've Got Files!.In 2000this isSettings->ControlPanel->Administrative Tools->Services->You've GotFiles->Log On Tab.

Fifth, stop the service and restart the service so it will use your new log on.

You can verify that You've Got Files! is examining the directory by double-clicking on the scans\scandir1.txt file and viewing the directory contents.
See Monitoring A Network-Mounted drive



Program Log Files

You've Got Files! creates log files as it runs, in order to have a record of when it was active and what emails have been sent. The log files also record any errors that may occur. All log files will be found in the directory where You've Got Files! was installed. As the log files grow in size, they are archived and will eventually be deleted from the file system.


• The Run Log

The log file runlog.txt records information about the execution of the program and any errors that may occur. If the program was run for a period of time and no problems were encountered, this would be the typical output to this log file:

>>> Starting: You've Got Files -- version 2.201 [pid=155]
Time: Thu Sep 18 12:46:00 2002

Exiting: You've Got Files -- version 2.201 [pid=155]
<<< Time: Thu Sep 18 13:55:20 2002



• Errors Found In The Run Log


DEMO Expired, version 2.201 Niwot Networks 303-772-8664

This error will appear after the 30 day demo period has expired. Contact Niwot Networks for a valid Serial Number to continue using the program.


ERROR: unable to connect to remote host: yoursmtpserver.com

This error will occur if unable to connect to your SMTP server. The most common reason for this error is a bad or misspelled server name. Check the SmtpServerName entry in the ygfconf.txt file. Click here for an explanation of this entry.


ERROR: missing SmtpServerName in ygfconf.txt

This error will occur if the SmtpServerName entry is not defined in the ygfconf.txt file. Click here for an explanation of this entry.


ERROR: missing FromEmailAddress in ygfconf.txt

This error will occur if the FromEmailAddress entry is not defined in the ygfconf.txt file. Click here for an explanation of this entry.


ERROR: missing directory specification for Ygf*Dir entry in ygfconf.txt

This error will occur if a directory specification is not defined in the ygfconf.txt file. Click here for an explanation of this entry.


ERROR: missing email addresses/launch application for Ygf*Email entries in ygfconf.txt

This error will occur if both email address and launch application specifications are not defined in the ygfconf.txt file. Click here for an explanation of this entry.


ERROR: missing directory list in ygfconf.txt

This error will occur if Ygf*Dir and Ygf*Email entries are missing entirely from the ygfconf.txt file. Click here for an explanation of these entries.


• The Send Log

The log file sendlog.txt records the email messages that have been sent by the program. An example of typical output to this log file:

From: bobsmith@widgetworld.com
To: bobsmith@widgetworld.com
Subject: You've Got 1 File
Date: Fri, 5 Apr 2002 10:44:00 -0700
Added C:\Incoming\WidgetSales.doc
11/02/01 02:12p 19,822 bytes



• The FTP Log

The log file ftplog.txt records any errors that may have occurred during scanning of an FTP server. These errors may also be written to the runlog.txt file. Following is an example of an FTP error that might be written to these files:

FTP ERROR: 530 User johns cannot log in.


• Undeliverable Mail

During the course of running You've Got Files!, it is entirely possible for the SMTP server you are using to be unavailable for mail delivery due to any number of reasons, like network outage, maintenance, etc. What happens to undeliverable mail during these times?

You've Got Files! will keep track of all undeliverable mail (for 3 days) and resend it later when your SMTP server becomes available again. The messages that will queue up to be resent later can be found in the directory where You've Got Files! was installed. These message files will be named sequentially as follows: "msg1.txt", "msg2.txt", etc. The files will be removed once they have been successfully sent. Notice that the Date: field reported in the email will be accurate in regards to when the program originally found the new/changed file, which may be different from when it was able to send the email if delayed.

NiwotFtpGet.exe version 1.004 Copyright 2010,2011 Niwot Networks, Inc. usage: NiwotFtpGet.exe /o "destination" "fullsourceurl" /o destinationfilepath /L logfilename example command line to retrieve file from ftp site: /L "logfilename" /o "fullpathtodestination" "ftp://username:password@fullurlof sourcefile" example command line to retrieve file from ftp site and delete from site if su ccessful: /delete /L "logfilename" /o "fullpathtodestination" "ftp://username:password@fu llurlofsourcefile"

NiwotFtpGet

Ygf1LaunchApplication= NiwotFtpGetTheFile.bat "d:\username\$file" "ftp://username:password@ftp.ftpsite.com/$file" "Ygf1Launchlog.txt"
will launch the NiwotFtpGetTheFile.bat with
%1 replaced with "d:\username\pathtofile\filename"
%2 replaced with "ftp://username:password@ftp.ftpsite.com/pathtofile/filename"
%3 replaced with "Ygf1Launchlog.txt"

The batch file line
NiwotFtpGet.exe /L %3 /o %1 %2
will execute as
NiwotFtpGet.exe /L "Ygf1Launchlog.txt" /o "d:\username\pathtofile\filename" "ftp://username:password@ftp.ftpsite.com/pathtofile/filename"
The file will be retrieved and the Ygf1Launchlog.txt file will have log information.

Ygf2LaunchApplication= NiwotFtpGetDelTheFile.bat "d:\username\$file" "ftp://username:password@ftp.ftpsite.com/$file" "Ygf2Launchlog.txt"
Will cause the batch file line
NiwotFtpGet.exe /delete /L %3 /o %1 %2
to execute as
NiwotFtpGet.exe /delete /L "Ygf2Launchlog.txt" /o "d:\username\pathtofile\filename" "ftp://username:password@ftp.ftpsite.com/pathtofile/filename"
The file will be retrieved and, if the retrieve is successful, the file on the ftpsite will be deleted.
The Ygf2Launchlog.txt file will have log information.




WhoDunIt Interface Support

WhoDunIt is a program suite purchased separately that may be driven by Demo and Corporate You've Got Files! licenses. With WhoDunIt installed, if the monitored location is on an NTFS local or UNC-accessible drive, the notification email may be set to include additional audit information on who was responsible for adding/changing/deleting your files and/or folders.

In order for You've Got Files! to drive WhoDunIt, WhoDunIt must be installed on the same machine as You've Got Files! and the program WhoDunItHostEnable must be successfully run once(Administrator required) directly on any machine that you wish to audit. Please see the WhoDunIt User Manual for instructions. Additionally, the ygf service must be logged in with sufficient priveleges to enable auditing on the monitored objects and to access the Security Log on the monitored machine.

There are 2 additional ygfconf.txt entries supported that may be added to a You've Got Files! configuration block to enable You've Got Files! to use WhoDunIt.
In the following example, we are adding WhoDunIt functionality to the Ygf1 entries in the ygfconf.txt configuration file:

Ygf1WhoDunItObjectEnable=1
Ygf1RetrieveInfo=WhoDunIt $file

Ygf1WhoDunItObjectEnable=1 causes You've Got Files! to call WhoDunItObjectEnable to enable auditing of the objects monitored in the Ygf1Dir specification.
Ygf1RetrieveInfo=WhoDunIt $file causes You've Got Files! to pass the notification object spec to WhoDunIt.exe and retrieve the returned information from the Security Log and include it in the notification email.

For the example of monitoring Deleted Files/Folders (but not Added or Changed):

Ygf1NotifyOnDelete=1
Ygf1DontNotifyOnChange=1
Ygf1DontNotifyOnAdd =1

An example email message containing WhoDunIt information might look something like:

Deleted: \\niwotd\ftp root\Robert\YgfExample.doc (time in UTC: 06/05/2007 10:31p) 164,576 bytes
Most Recent entry in Event log that has that file/folder: Thu Jun 07 10:17:47 2007 (local time on \\niwotd)
Object Name: F:\ftp root\Robert\YgfExample.doc
Primary User Name: NIWOTD$ Primary Domain: NIWOT_GROUP
Client User Name: Robert Client Domain: NIWOTD
Accesses: DELETE; ReadAttributes


A more verbose and detailed listing of all audit information may be obtained by adding -all to the RetrieveInfo specification in the following manner:

Ygf1RetrieveInfo=WhoDunIt $file -all

An example email message containing verbose WhoDunIt information might look something like:

Added: \\192.168.1.178\share\test\BIRD.WMF Thu Mar 31 00:00:00 1994 2,014 bytes
Thu Jun 07 10:36:19 2007 (local time on \\192.168.1.178)
Object Open:
Object Server: Security
Object Type: File
Object Name: C:\share\test\BIRD.WMF
Handle ID: 3732
Operation ID: {0,85672948}
Process ID: 1176
Image File Name: C:\WINDOWS\explorer.exe
Primary User Name: niwot
Primary Domain: NIWOT2
Primary Logon ID: (0x0,0xDE8A)
Client User Name: -
Client Domain: -
Client Logon ID: -
Accesses: DELETE
READ_CONTROL
SYNCHRONIZE
WriteData (or AddFile)
AppendData (or AddSubdirectory or CreatePipeInstance)
WriteEA
ReadAttributes
WriteAttributes
Privileges: -
Restricted Sid Count: 0


Thu Jun 07 10:36:19 2007 (local time on \\192.168.1.178)
Object Access Attempt:
Object Server: Security
Handle ID: 3732
Object Type: File
Process ID: 1176
Image File Name: C:\WINDOWS\explorer.exe
Accesses: WriteData (or AddFile)


Thu Jun 07 10:36:19 2007 (local time on \\192.168.1.178)
Handle Closed:
Object Server: Security
Handle ID: 3732
Process ID: 1176
Image File Name: C:\WINDOWS\explorer.exe


Uninstalling You've Got Files!

Please stop the "ygf" service before uninstalling You've Got Files!

You may uninstall You've Got Files! in one of two ways:

1.  From the Control Panel, run "Add/Remove Programs" and select You've Got Files! from the bottom of the list to remove.

OR

2.  From Start -> Programs -> Niwot -> Uninstall You've Got Files!


Change Notes

You've Got Files! Version 3.204 changes since version 3.201:
1. ExcludeThis= Global feature added.
2. Default Authenticated Users allowed to edit ygfconf.txt Notepad doesn't have to be run as Administrator on Vista, 7, and 2008.
3. FullAccessSid= blank on Vista/7/2008 is interpreted as (S-1-5-11) "Authenticated Users"; specify (S-1-5-32-545) for "Users". May edit ygfconf.txt.
4. FullAccessSid= blank on 2003/XP changes no security on ygfconf.txt.
5. FullAccessSid=0 means no enabling of FullAccess for "Authenticated Users" on Vista/7/2008.
6. YgfGUI.exe.manifest added so starting NiwotGUI.exe will prompt for Administrator Privileges on Vista/7/2008.
7. Don't print "gotBREAK2onDataSock=" line in ftplog.txt unless Debug=2 (or 3) for debugging FTP.
8. Ygf*MinimumListMillisec= feature added to slow down FTP and SFTP listing for customers concerned about loading their FTP or SFTP server.
9. FTP scan attempts a retry when server resets connection (10054) in response to FTP LIST command.

You've Got Files! Version 3.201 changes since version 3.200:
1. New Ygf*FreeSpaceDetectInMegabytes= feature.
2. A filename of a file with one email address per line may be specified instead of the comma-separated list of email addresses in Ygf*Email=, Ygf*CcEmail=, and Ygf*BccEmail= specifications.
3. Enterprise-4 new top end product can support up to 4 instances of You've Got Files!.
4. libeay32.dll and ssleay32.dll to version 1.005 that Niwot compiled from version 1.000. thanks openssl.org
5. stunnel.exe to version 4.46 that Niwot compiled from version 4.33 for better debug output. thanks www.stunnel.org

You've Got Files! Version 3.200 changes since version 3.121:
1. New Ygf*NotifyOnCantAccessCount= feature.
2. In-depth stunnel debugging enabled by Debug=128.
3. Stunnel service is stopped and service is uninstalled when You've Got Files! exits.
4. Service controller deletes kill*.txt and NWTD*.txt files before starting ygf service.
5. Experimental StunnelProtocol= feature.
6. NiwotFtpGet.exe version 1.004 (from 1.003) can retrieve from an FTP site to a UNC Path
7. The cacert.pem file used to trust FTPS sites was copied from http://curl.haxx.se/ca/cacert.pem. dated Nov 3 19:04:19 2011
8. libeay32.dll and ssleay32.dll to version 1.005 from version 1.000. thanks openssl.org
9. stunnel.exe to version 4.46 from version 4.33 for better debug output. thanks www.stunnel.org
10. zlib1.dll to version 1.2.5 from version 1.2.4. thanks zlib.net

You've Got Files! Version 3.121 changes since version 3.120:
1. FTP scan speed up by not scanning excluded folders.
2. FTPS scan speed up by not scanning excluded folders.
3. Improved FTP exclusion of subpath when specified as an excluded folder.
4. WhoDunIt interface now uses alias to adjust the string to be used to search the event log for the case where a local drive location had an unusual format in the event log.
5. Added retry to SFTP scan
6. When using PASV to scan an FTP site don't declare a directory empty until 2 successive attempts to CD to it have failed.
7. LaunchApplication string size may now be 4000 bytes where it was failing when over 512 bytes
8. The cacert.pem file used to trust FTPS sites was copied from http://curl.haxx.se/ca/cacert.pem. It has a Apr 13 2011 date
9. Global FtpLogDepth parameter now also applies to runlog.txt and sendlog.txt.
10. runlog.txt and sendlog.txt size to archive increased from 1 to 10 megabytes.

NiwotFtpDir Version 1.104 changes from 1.101 (used for FTPS scan)
1. Don't prompt for password,
2. Reduce number of retries from 10 to 3
3. If server responds SSL23_GET_SERVER_HELLO:unknown protocol with ftps:// then switch to ftp:// in libcurl call
4. Handle /exfold spec when scanning FTPS site
5. Handle longer path to scan

NiwotFtpGet Version 1.003 changes from 1.002
1. Graceful fail when the ftp site filename starts with a space.
2. Use only backslash in windows path.
NiwotFtpGet.exe version 1.003
usage: NiwotFtpGet.exe [/delete] [/L logfilename]/o "destination" "fullsourceurl"

psftp.dll changes 0.6.Niwot.5 from 0.6.Niwot.4
1. Increased size of SFTP directory listing from 12000 bytes to 1200000 bytes.

You've Got Files! Version 3.120 changes since version 3.119:
1. New Feature Ygf*LaunchOncePerNotification=
Demo, Corporate, and Enterprise versions will execute the specified string once per notification.
2. Each ftp directory listing now waits until data is closed AND 226 received
3. SFTP listings now include the subdirectory spec and exclusion spec
4. Detect and recover from a failure to open the ftp listing directory for appending.
5. String size supported in Ygf*LaunchApplication increased to 2048 bytes
6. LaunchApplication tmpbat*.txt list of launches is numbered for each spec and removed before each new scan.
7. Better handling of case where ygfactive.txt cannot be renamed.
8. Better handling of service stop when it happens while the new NiwotFTpGet is retrieving a file from an FTP site.

ygfctrl.exe 3.120 changes since version 3.119
1. Clarified in the log that the 60 second timeout trying to stop ygf.exe is testing the ability to rename the ygfactive file.


NiwotFtpGet.exe Initial Release at version 1.002
usage: NiwotFtpGet.exe /o "destination" "fullsourceurl"
/o destinationfilepath
/L logfilename
example command line to retrieve file from ftp site:
/L "logfilename" /o "fullpathtodestination" "ftp://username:password@fullurlofsourcefile"
example command line to retrieve file from ftp site and delete from site if successful:
/delete /L "logfilename" /o "fullpathtodestination" "ftp://username:password@fullurlofsourcefile"

You've Got Files! Version 3.119 changes since version 3.118:
1. Stunnel (used in SMTPS support) now installed as Manual service, not Automatic.
2. Orphaned Stunnel processes are appropriately removed.
3. Don't use handle to ygfconf.txt if couldn't open ygfconf.txt
4. Ygfctrl.exe version 3.119 will now kill ygf.exe processes after 60 seconds during Service shutdown.
5. psftp.dll version 0.6.Niwot.4 SFTP username accept timeout lengthened to 15 seconds
6. NiwotDir version 2.004 Don't close file handles not opened

You've Got Files! Version 3.118 changes since version 3.116:
1. Correct ExcludeFoldersNamed= directory listing when monitoring using ftp.
2. Preserve Ygf*ScanIntervalInMinutes functionality when upgrading version, lost in 3.030.

You've Got Files! Version 3.116 changes since version 3.114:
1. Gmail now supported for SmtpPort=465 (SMTPS, which is SMTP protocol over TLS).
2. Directory specific Ygf*SmtpPort= now works correctly.
3. libeay32.dll and ssleay32.dll upgraded to version 1.0.0.
4. zlib1.dll upgraded to version 1.2.4.
5. Ygf*Alias=" " replaces the monitored location part of the email notification with a space.
6. Allows Ygf*ExcludeFoldersNamed=" " to exclude directories with a single space as the name.
7. Ygf*NotifyOnEmptyFolder=1 feature added.
8. Ygf*ExcludeThis= feature added.

NiwotDir 2.003 changes since version 2.002
1. New /exfold parameter does not scan excluded areas
2. /exfold allows " " to be excluded

Stunnel Version 4.33 is now included so now can send with Gmail.

NiwotFTPtool.exe version 2.008 changes since 2.002
1. -rmdir option to remove a directory
2. -asc option to specidy ascii transfer instead of binary
3. When putting files from a local/UNC subdirectory, create the path on the FTP site.
4. When retrieving files from an FTP site subdirectory, create the local/UNC path.
5. Improved file size verification on retrieved file.
6. :port may be part of root URL.

You've Got Files! Version 3.114 changes since version 3.101:
1. Support for multiple instances on the same machine with Enterprise (up to 2 instances) and Enterprise4 (up to 4 instances).
2. Instance= global setting, blank for first instance, then _2,_3,_4 for 2nd, 3rd, and 4th instances.
3. $localdatetime local time may be passed into LaunchApplication and CustomNotify.
4. $count passed into LaunchAppplication with a value of 1 for first launch, and increments with each launch when multiple launches are in a single notification.
5. Improved string replacement of "$" values in LaunchApplication and CustomNotify.
6. Performance improvement, Ygf*ExcludeFoldersNamed parameter now prevents scanning of the excluded area. When this parameter is changed, notifications are delayed until 2 new scans with the new Exclusions have been completed. This is supported in FTP scans, FTPS scans, and local/UNC scans.
7. FTPS scans will now retry up to 10 times.
8. FtpPasv=1 now retries on connect failure.
9. Ygf*NotifyOnFolderDelete now works with Ygf*NotifyOnFolderAdd.

psftp.dll Version 0.6.Niwot.3 changes since version 0.6.Niwot.2
1. Timeout shortened during SFTP scan.
2. Prevent a crash found when server port accessed was not an SFTP site.
3. Listing return file is PSFTPBACKxxx.txt, was BACKxxx.TXT.

NiwotFtpDir 1.101 changes since version 1.100
1. Now 10 retries (was 0) during FTPS scan.
2. /exfold support for FTPS folder exclusion from scan.

You've Got Files! Version 3.101 changes since version 3.035:
1. Support for FTPS scanning using ftps:// new NiwotFtpDir.exe version 1.000.
Default is implicit and uses port 990.
2. Support for FTPS scanning requires either your site uses a
Certificate Authority specified in the cacert.pem file or
Ygf*FtpsAllowSelfSignedCertificate=1.
3. Support for explicit FTPS with ftps:// combined with Ygf*FtpPort=21.
4. New NiwotFtpDir.exe version 1.001 is in the installation directory.
5. Ygf*CustomNotify feature added.
6. Installer now includes DLLs: libcurl.dll, libeay32.dll, ssleay32.dll, zlib1.dll.
7. Global ScanSchedule does not override a per-directory ScanSchedule.
8. Wildcards ("*" and "?") are not supported in the Ygf*Dir specification.
Use Ygf*IncludeFoldersNamed for wildcard functionality.
9. Eliminated a rare spurious notification when using FTP Passive.
10. Improved handling of $subpath in LaunchApplication spec.

You've Got Files! Version 3.035 changes since version 3.033:
1. Inhibit scanning of offline files.
2. New Ygf*DontScanOfflineMinutes= setting inhibits scanning until the storage is back online and synchronized for the specified number of minutes.
3. Directory listings of local and UNC paths make use of niwotdir version 2.001 /O option to generate a UTF-8 tmpdir file.
4. Improved string replacement strategy on LaunchApplication line, $file $fname and $subpath will be replaced by "$file" "$fname" and "$subpath" if each is preceded and followed by spaces.
5. LaunchApplication=testpath.bat $file "C:\Program Files\Niwot\Test$subpath\"
with testpath.bat containing xcopy /y %1 %2
will copy the file into the correct subpath IF there are no Unicode characters involved.
6. ygf.exe will not crash if it is monitoring a removable media drive that is empty.
7. New niwotdel.exe version 1.001 is in the installation directory. Ygf*LaunchApplication=niwotdel $file >>niwotdelLog.txt will delete the file specified by $file even if $file contains spaces and UTF-8 Unicode.
8. New niwotmov.exe version 1.000 is in the installation directory. Ygf*LaunchApplication=niwotmov $file "\\servername\sharename\$subpath\" >>niwotmovLog.txt will move the file specified by $file even if $subpath is null or contains spaces and UTF-8 Unicode.
9. New niwotcpy.exe version 1.000 is in the installation directory. Ygf*LaunchApplication=niwotcpy $file "\\servername\sharename\$subpath\" >>niwotcpyLog.txt will copy the file specified by $file even if $subpath is null or contains spaces and UTF-8 Unicode.

You've Got Files! Version 3.033 changes since version 3.027:
1. Enterprise product supports FastNotify monitoring local drives and UNC drives.
FastNotify provides an order of magnitude reduction in the time to generate a notification when hundreds of large directory structures are being monitored either locally or using a UNC path.

Version 3.027 changes since version 3.025:
1. Added MSVCR71.dll to installation, in case it is not already on the machine.
2. Allow space in FTP username.
3. SFTP scandir first line is now Volume in drive sftp: even if there are also FTP sites being monitored.
4. Remove scanning of Niwot's FTP test site in the default ygfconf.txt.

Version 3.025 changes since version 3.023:
1. New ScanSchedule may be specified globally or on a per-monitored-location basis.

Version 3.023 changes since version 3.022:
1. Expiring Demo first installed in December will now give the advertised 30 days before expiration.
2. FTP client handles Serv-U FTP server that incorrectly has a comment response line starting with blanks instead of a 3-digit number and a "-".
3. PutEventSourceInRegistry=0 (Default) disables You've Got Files! event logging of insufficient disk space added in version 3.016. You may re-enable this by setting it to a 1.

Version 3.022 changes since version 3.016:
1. Ygf*NoNewFileDetectedInMinutes= feature supports notification when files did NOT arrive.
2. Ygf*IgnoreZeroLengthFiles= feature allows per-directory setting.
3. SFTP client handles empty folders and unexpected disconnects.
4. New NSIS installer
5. Expiration messages now include renewal links.
6. Missing Globals "SmtpServerName" and "FromEmailAddress" now just generate a single error in runlog.txt.

Version 3.016 changes since version 3.009:
1. Custom SMTP Port supported with SmtpPort=(Global) and Ygf*SmtpPort=(directory specific) feature.
2. You've Got Files! operation is suspended if available disk space in the installation directory falls below 30 million bytes.
3. You've Got Files! logging of insufficient disk space is suspended if available disk space in the installation directory falls below 6 million bytes.
4. ApplicationLogEvent.exe version 1.001 added to installation directory to support Application Event Log of insufficient disk space.
5. YgfGUI version 1.004 handles trailing spaces in ygfconf.txt and browses when you want to browse.
6. WhoDunIt Object Enable sets DELETE and FILE_DELETE_CHILD audit flags for directories with NotifyOnDelete or NotifyOnFolderDelete specified.
7. psftp.dll version 0.6.Niwot.1 supports VanDyke's VShell SFTP server and unicode file names.
8. SFTP interface supports file names over 128 bytes long and SftpAddKeyToRegistry settings over a service restart.
9. SFTP interface supports "Permission Denied" subdirectories. 10. Resent emails no longer contain the header of the email in the body.
11. Ygf*WaitBeforeSendingNextEmailInMinutes is no longer written as a default ygfconf.txt entry.

Version 3.009 changes since version 3.007:
1. CC: email address support with Ygf*CcEmail=
2. PASV mode to monitor FTP sites supported with Ygf*FtpPasv=1
3. Timeout before abort while waiting for Linefeed after an FTP LIST command increased from 1 second to 10 seconds.
4. Timeout before abort while waiting for a response to an FTP command increased from 15 to 30 seconds.
5. Case of characters in Ygf*Alias= specification now preserved.
6. "$path" in the Ygf*Subject= specification will be replaced with the path(Windows) or subpath(FTP sites).
7. YgfGUI version 1.003 allows new text placed into the comment field in the ygfconf.csv file to be preserved when the ygfconf.csv file is translated to a ygfconf.txt file.


The You've Got Files! License Agreement

NIWOT NETWORKS, INC.
ELECTRONIC END USER EXPIRING LICENSE AGREEMENT
FOR You've Got Files! (tm)

NOTICE TO USER:
THIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.

This Niwot Networks, Inc ("Niwot Networks") End User Expiring License Agreement accompanies the Niwot Networks You've Got Files! SOFTWARE PRODUCT, related explanatory materials and "online" or electronic documentation ("Software"). The term "SOFTWARE PRODUCT" also shall include any upgrades, modified versions or updates of the Software licensed to you by Niwot Networks.

The "SOFTWARE PRODUCT" is defined as the contents of this installation package with the exceptions of:
blat.dll (see www.blat.net)
libcurl.dll (see http://curl.haxx.se/libcurl)
libeay32.dll,ssleay32.dll (see http://openssl.org/)
psftp.dll (see http://www.chiark.greenend.org.uk/~sgtatham/putty/licence.html).
stunnel.exe (see http://www.stunnel.org/)
zlib1.dll (see http://www.zlib.net)
Contact Niwot Networks for the Niwot modified source code for blat.dll and psftp.dll.

The SOFTWARE PRODUCT is licensed, not sold. Please read this Agreement carefully. Do not use the Software if you do not accept this Agreement. At the end of the license term you agree to renew your license or refrain from using the software.

Upon your acceptance of this Agreement, Niwot Networks grants to you a non-exclusive and non-transferable license to use The Software, provided that you agree to the following:

1. Use of The Software. You may install the Software on a hard disk or other storage device; You may also store or install a copy of the SOFTWARE PRODUCT on a storage device, such as a network server, used only to install or run the SOFTWARE PRODUCT on your other computers over an internal network; however, you must acquire and dedicate a distinct license for each operating system instance using the SOFTWARE PRODUCT from the storage device. Any given license for the SOFTWARE PRODUCT may not be shared or used concurrently or otherwise on different computers or different operating systems within the same computer in a given organization. The Enterprise license allows up to 2 instances of the program to be run under a single operating sytem on a single machine. The Enterprise4 license allows up to 4 instances of the program to be run under a single operating sytem on a single machine.

Without prejudice to any other rights, Licensor may terminate this Agreement if Licensee breaches any of its terms and conditions and Licensee has failed to cure such breach within 15 days of receiving the written notice of such breach. Upon termination, Licensee shall destroy all copies of the SOFTWARE PRODUCT.

If you have not purchased You've Got Files! and been provided a production serial number for this copy of The Software then this is a demo license and is licensed for 30 days from first installation on a computer.

2. Copyright and Trademark Rights. The SOFTWARE PRODUCT is owned by Niwot Networks and its suppliers, and its structure, organization and code are the valuable trade secrets of Niwot Networks and its suppliers. The Software also is protected by United States Copyright Law and International Treaty provisions. Use of any trademark does not give you any rights of ownership in that trademark. Therefore, you must treat The Software product like any other copyrighted material. Except as stated above, this Agreement does not grant you any intellectual property rights in The Software.


3. Restrictions. Except as otherwise expressly permitted in this Agreement, Licensee may not: (i) modify or create any derivative works of You've Got Files! or documentation, including translation or localization; (ii) decompile, disassemble, reverse engineer, or otherwise attempt to derive the source code for You've Got Files! (except to the extent applicable laws specifically prohibit such restriction); (iii) redistribute, encumber, sell, rent, lease, sublicense, or otherwise transfer rights to You've Got Files!; (iv) remove or alter any trademark, logo, copyright or other proprietary notices, legends, symbols or labels in You've Got Files! or (v) publish any results of benchmark tests run on You've Got Files! to a third party without Niwot Network's prior written consent. The Software product is licensed as a single product. Its component parts may not be separated for use on more than one computer.

4. No Warranty. The Software is being delivered to you "AS IS" and Niwot Networks makes no warranty as to its use or performance. NIWOT NETWORKS AND ITS SUPPLIERS DO NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULTS YOU MAY OBTAIN BY USING The Software OR DOCUMENTATION. NIWOT NETWORKS AND ITS SUPPLIERS MAKE NO WARRANTIES, EXPRESS OR IMPLIED, AS TO NONINFRINGEMENT OF THIRD PARTY RIGHTS, MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE. THE ENTIRE RISK ARISING OUT OF USE OR PERFORMANCE OF YOU'VE GOT FILES! REMAINS WITH YOU.

5. Limitation of Liability. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR OR ITS SUPPLIERS OR RESELLERS BE LIABLE FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF OR INABILITY TO USE YOU'VE GOT FILES!, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND REGARDLESS OF THE LEGAL OR EQUITABLE THEORY (CONTRACT, TORT OR OTHERWISE) UPON WHICH THE CLAIM IS BASED. IN ANY CASE, LICENSOR'S ENTIRE LIABILITY UNDER ANY PROVISION OF THIS AGREEMENT SHALL NOT EXCEED IN THE AGGREGATE THE SUM OF THE FEES LICENSEE PAID FOR THIS LICENSE (IF ANY) AND FEES FOR YOU'VE GOT FILES! SUPPORT RECEIVED BY NIWOT NETWORKS UNDER A SEPARATE SUPPORT AGREEMENT (IF ANY), WITH THE EXCEPTION OF DEATH OR PERSONAL INJURY CAUSED BY THE NEGLIGENCE OF LICENSOR TO THE EXTENT APPLICABLE LAW PROHIBITS THE LIMITATION OF DAMAGES IN SUCH CASES. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT BE APPLICABLE. NIWOT NETWORKS IS NOT RESPONSIBLE FOR ANY LIABILITY ARISING OUT OF CONTENT PROVIDED BY LICENSEE OR A THIRD PARTY THAT IS ACCESSED THROUGH YOU'VE GOT FILES! AND/OR ANY MATERIAL LINKED THROUGH SUCH CONTENT.

6. General Provisions. If any part of this Agreement is found void and unenforceable, it will not affect the validity of the balance of the Agreement, which shall remain valid and enforceable according to its terms. You agree that The Software will not be shipped, transferred or exported into any country or used in any manner prohibited by the United States Export Administration Act or any other export laws, restrictions or regulations. This Agreement shall automatically terminate upon failure by you to comply with its terms. This Agreement may only be modified in writing signed by an authorized officer of Niwot Networks.

Unpublished-rights reserved under the copyright laws of the
United States. 2001-2012

Niwot Networks, Inc, 721 9th Ave., Longmont, CO 80501.
You've Got Files, You've Got Files!, WhoDunIt.exe, and youvegotfiles are trademarks
of Niwot Networks, Inc.

Ygfuserman.htm -- last update:  Mar 17 2012

Copyright 1995-2012, Niwot Networks, Inc. All Rights Reserved
You've Got Files!, WhoDunIt.exe, Gigabyte Express, and RELIA are trademarks of Niwot Networks, Inc.