Using the Windows Event Log from Visual FoxPro

Size: px
Start display at page:

Download "Using the Windows Event Log from Visual FoxPro"

Transcription

1 Using the Windows Event Log from Visual FoxPro Craig Berntson 3M Health Information Systems Cole Gleave 3M Health Information Systems Overview In this article, you will learn how to use the Windows Event Log from Visual FoxPro. While you can use Windows Scripting Host (WSH) to read and write to the Windows Event Log, WSH could be disabled due to today s security requirements. Therefore, it is necessary to use the Win32 API to access the log. Using several API calls, you will learn how to read, write, and maintain the log. Logging Overview Capturing error conditions is an important part of a robust application. Historically, Visual FoxPro applications have used tables (DBFs) or text files to capture error information. However, other types of logging are available. These include XML files or the Windows Event Log. Using the Windows Event Log is desirable because other file types use proprietary formats, different user interfaces for reporting, and they cannot be merged with logs from other applications. The Windows Event Log is a standard format, stored in a centralized location and single user interface can be used to view log information from a variety of programs. Also, third party software can be purchased that will report on entries stored in the Windows Event Log. In addition to error conditions, the Windows Event Log can be used to store information such as a user logging on, opening a database, starting a file transfer, or other information. The Windows Event Log should not be used as a tracing tool or to record transactional information such as database changes. The Windows Event Log actually contains several types of logs. The standard logs and what they are used for are listed in Table 1. Under Windows 2000 and later you may find User Defined types. I will talk more about these later in this document. Your programs will make registry entries under the Application or a User Defined type. The Windows Event Log is actually a group of files. Each file represents a different log type. The location of these files is specified by Registry entries. Page 1 of 31

2 Table 1. A listing of the standard log types and their locations. Log Type Description File Location Security Security information such as logon, logoff, \WinNT\System32\Config\SecEvent.Evt password changes, etc. This log is reserved by Windows. System Information from Windows. This log is \WinNT\System32\Config\SysEvent.Evt reserved by Windows. Application Information from application software. \WinNT\System32\Config\AppEvent.Evt Each entry in the event log contains the following information: Date Time Username: The user that wrote the entry. Computer: The name of the computer that wrote the error. Generally, you will use the local event log. However, if you have the proper rights, you can log information to a server or other computer. Source: The application, module, or component that wrote the event. Message Type: Can be Success, Error, Warning, Information, Audit Success or Audit Failure. Category: Specified by a message file. Message files are discussed later in this document Event ID: Specified by a message file. Description ID: Specified by a message file. Binary Data The primary way to view information from the event log is the Event Log Viewer (Figure 1). Under Windows 2000 or later, you access the Viewer from the Administrative Tools applet of Windows Control Panel. Page 2 of 31

3 Figure 1. The Event Viewer is used to view and manage the Windows Event Log. When you double-click on an entry, the Event Properties dialog (Figure 2) for that event is displayed. You can see from Figure XX that not all the information is required. For example, the Category and User are not specified. The Description is actually loaded from a message file. Figure 2. You can view properties of a specific event. Using the Event Log There are several things you need to do to use the event log, but by creating generic message files and reusing code, it becomes easier. The three steps to use the Windows Event Log are: 1. Create the Message Files 2. Register the Event Source 3. Call the Event Log API Step three consists of several Win32 API calls and is discussed in detail later in this document. Creating Message Files Message files are resource DLLs that store the Category, Event ID, and Message ID for a particular event. You can use a separate resource DLL for each item or combine all three items into a single file and message files can be shared by multiple event sources. Page 3 of 31

4 To create a resource DLL you will need the Resource Compiler, Message Compiler, and Linker. These tools ship with Visual Studio, the Microsoft Platform SDK, and other developer tools. I did an Internet search and got hits for free tools that may give you the same functionality. The following steps walk you through creating a message file. 1. Create a text file for the messages. This example uses FoxMessages.mc. LanguageNames = ( English = 0x0409:Messages_ENU ) ;//////////////////////////////////////// ;// Eventlog categories ;// ;// These always have to be the first entries in a message file MessageId = 1 SymbolicName = CATEGORY_ONE Severity = Success Language = English First category event. MessageId = 2 SymbolicName = CATEGORY_TWO Severity = Success Language = English Second category event. ;//////////////////////////////////////// ;// Events MessageId = 1000 SymbolicName = HELLO Language = English Hello World!. MessageId = 1001 SymbolicName = GREETING Language = English Hello %1. How are you?. MessageId = 1002 SymbolicName = GENERIC1 Language = English %1. MessageId = 1003 SymbolicName = GENERIC2 Language = English Message 1: %1 Message 2: %2 Page 4 of 31

5 . 2. In the Windows Command Interpreter, compile the message file using the Message Compiler. mc FoxMessages.mc The message compiler outputs the following files: FoxMessages.h: A C++ header file containing the event information FoxMessages.rc: A Resource source file. This will be the input for resource compiler. Messages_ENU.bin: A binary file for US English messages. 3. In the Windows Command Interpreter, compile the resource file using the Resource Compiler. rc FoxMessages.rc The Resource Compiler will create the resource file FoxMessages.res. 4. In the Windows Command Interpreter, link the resource file. link -dll -noentry -out:foxmessages.dll FoxMessages.res The dll parameter tells the linker to create a.dll file (FoxMessages.dll) and noentry says there will not be entry point. This is required because the linker is not creating a Win32 dll, but rather a resource dll. The resource dll is now ready to use. The sample code that accompanies this article includes the batch file Make.bat that does all three steps for you. Updating the Registry Before you can use the resource dll, you need to make a registry entry so that Windows can find it when the event is read and written. You can use the Registry Fox Foundation Class to do this programmatically, make the entry when you install the application, or edit the registry manually using RegEdit. However you do it, the entry goes in HKEY_LOCAL_MACHINE\SYSTEM\ ControlSet001\Services\EventLog\Application. If you want your event information to go under the Application log, use the above location. If you want a custom log, say, MyApps, create a new entry called MyApp at the same level as Application. Next, make an entry for your Page 5 of 31

6 application name. In this example, I m using HKEY_LOCAL_MACHINE\SYSTEM\ ControlSet001\Services\EventLog\Application\FoxMessages. Here are the steps I used: 1. Run Regedit and drill down until you reach the above key (Figure 3) Figure 3. The Registry Editor is used to view and manage entries in the Windows registry. 2. Right-click on Application and select New Key from the context menu. Enter FoxMessages as the key. 3. Right-click on FoxMessages and select New String Value. Enter EventMessageFile. 4. Double-click EventMessageFile. The Edit String dialog (Figure 4) is displayed. Enter the path to your resource dll and click OK. Figure 4. You can add or change an entry in the registry from the Edit String dialog. Page 6 of 31

7 5. Right-click on FoxMessages and select New DWORD Value. Enter TypesSupported. 6. Double-click on TypesSupported. The Edit DWORD Value dialog (Figure 5) is displayed. Enter 7 for Value data so that the log entry can support all types. The types are listed in Table 2. Make sure Hexadecimal is selected, and then click OK. Figure 5. You can add or edit a DWORD in the registry using the Edit DWORD Value dialog. Table 2. The Bitmask values for the TypesSupported registry entry. Description Hex Value Binary Value EVENT_LOG_ERROR_TYPE 0x EVENT_LOG_WARNING_TYPE 0x EVENT_LOG_INFORMATION_TYP E 0x Add an entry for CategoryMessageFile. The Value will be the same path and file name you entered for EventMessageFile. 8. Add another entry for CategoryCount. The Value will be 2, as that is the number of categories in the message file. The Registry Editor should now look like Figure 6. Page 7 of 31

8 Figure 6. The Windows registry after making entries for FoxMessages. 9. Close the registry editor. 10. Reboot your computer. You have completed the registry entries needed for your application. Next, I ll show you how to write to the Windows Event Log. Using the Win32 API Writing to and reading from the event log requires that you declare Win32 API functions. Some of these functions are part of the Event Logging API. Others are supporting functions. It is common when using the Win32 API to make the function call then call another function to check if an error occurred. The function to call is GetLastError( ). Most Win32 API functions set the error condition when they fail. However, some set the error code when they succeed. Because of this, you should always call GetLastError( ) after making a Win32 API call. DECLARE INTEGER GetLastError IN WIN32API Before you can write to an event source, you need to register it. The function returns a handle to the event source or NULL if an error occurs. Pass a NULL or empty string as the first parameter to use the Windows Event Log on the local computer. DECLARE INTEGER RegisterEventSource IN WIN32API ; STRING UNCServerName, ; Page 8 of 31

9 STRING SourceName The parameters for RegisterEventSource( ) are listed in Table 3. Table 3. A listing of the parameters for the RegisterEventSource function. Parameters Description UNCServerName The server name where the event is logged. If logging to the local machine, pass an empty string. SourceName The source name that is saved to the Registry. Earlier, I named the source, FoxMessage. When you finish with log, call DeregisterEventSource( ), which has a single parameter, heventlog. This is the handle that was returned by RegisterEventSource( ). DECLARE INTEGER DeregisterEventSource IN WIN32API ; INTEGER heventlog The ReportEvent( ) function actually records the event into the log. If the message is successfully recorded to the log, the return value is non-zero. If the function fails, a 0 is returned. DECLARE INTEGER ReportEvent IN WIN32API ; INTEGER EventLog, ; INTEGER Type, ; INTEGER Category, ; INTEGER EventID, ; INTEGER UserSid, ; INTEGER NumStrings, ; INTEGER DataSize, ; ; INTEGER RawData The parameters are defined in Table 4. Table 4. A listing of the parameters for the ReportEvent function. Parameters Description EventLog Handle to the event log. This is the handle returned by RegisterEventSource( ). Type Event type to log. Category Event category. The categories are defined in the message file. EventID The event identifier as defined in the message file. UserSid Points to the user s security identifier to log the username. Can be NULL if it is not required. NumStrings The number of strings in parameter. DataSize The number of bytes in the RawData written to the log. If zero, no RawData is As defined in the Win32 API help file, this is an array of NULL terminated strings to be merged into the message. In VFP, a function will be used to create a string that mimics the C++ array. Page 9 of 31

10 RawData Binary data to be stored to the log. The event type (Type parameter) can be one of five values: #DEFINE EVENTLOG_SUCCESS 0 #DEFINE EVENTLOG_ERROR_TYPE 1 #DEFINE EVENTLOG_WARNING_TYPE 2 #DEFINE EVENTLOG_INFORMATION_TYPE 4 #DEFINE EVENTLOG_AUDIT_SUCCESS 8 #DEFINE EVENTLOG_AUDIT_FAILURE 10 When reading the event log, the first thing you need to do is call OpenEventLog( ). DECLARE INTEGER OpenEventLog IN WIN32API ; STRING UNCServerName, ; STRING UNCSourceName If the function succeeds, it returns a handle to the event log. If it fails, it returns NULL. The parameters are listed in Table 5. Table 5. A listing of the parameters for the OpenEventLog function. Parameters Description UNCServerName The server name where the event is logged. If logging to the local machine, pass an empty string. SourceName The source name that is saved to the Registry. Earlier, I named the source, FoxMessage. When you finish using the event log, you should call the CloseEventLog( ) function. DECLARE INTEGER CloseEventLog IN WIN32API ; INTEGER heventlog The single parameter, heventlog, is the handle returned by OpenEventLog( ). CloseEventLog( ) will return a non-zero value if it succeeds or zero if it fails. Once the event log is open, it can be read. The event log API allows you to read a single entry at a time using the ReadEventLog( ) function. DECLARE INTEGER ReadEventLog IN WIN32API ; INTEGER heventlog, ; INTEGER ReadFlags, ; INTEGER RecordOffset, ; ; INTEGER NumberOfBytesToRead, ; ; Page 10 of 31

11 If successful, a non-zero value is returned. Zero is returned if the function fails. The parameters are listed in Table 6. Table 6. A listing parameters for the ReadEventLog function. Parameters Description heventlog The handle to the event log. ReadFlags Specifies how to read the log. See the #DEFINEs bellow. RecordOffset The log entry number where the read operation should A buffer for the data read. NumberOfBytesToRead The size, in bytes, of the The number of bytes actually The number of bytes required for the next log entry. d The values for ReadFlags are listed below. #DEFINE EVENTLOG_SEQUENTIAL_READ 1 #DEFINE EVENTLOG_SEEK_READ 2 #DEFINE EVENTLOG_FORWARDS_READ 4 #DEFINE EVENTLOG_BACKWARDS_READ 8 Now that you ve seen the primary functions in the Event Log API, it s time to see some additional functions you can do in the Windows Event Log. The first tells you how many records are in the event log. DECLARE INTEGER GetNumberOfEventLogRecords IN WIN32API ; INTEGER heventlog, ; The return value will be nonzero if the function succeeds or zero if it fails. Table 7 lists the parameters. Table 7. A listing of parameters for the GetNumberOfEventLogRecords function. Parameters Description heventlog The event log The number of records in the event log. GetOldestEventLogRecord( ) gets the record number for the oldest event in the log. It returns a nonzero value if successful or zero if it fails. Table 8 lists the parameters. DECLARE INTEGER GetOldestEventLogRecord IN WIN32API ; INTEGER heventlog, ; Table 8. A listing parameters for the GetOldestEventLogRecord function. Parameters Description Page 11 of 31

12 The event log handle. The record number of the oldest record in the event log. That completes the actual event log API calls. There are some additional Win32 API functions that you ll need to use. The first of these is GlobalAlloc( ), which allocates memory on the heap. If the function succeeds, it returns a handle to the allocated memory. If it fails, it returns NULL. DECLARE INTEGER GlobalAlloc IN WIN32API ; INTEGER Flags, ; INTEGER Bytes Table 9 defines the parameters. Table 9. A listing of parameters for the GlobalAlloc function. Parameters Description Flags Indicates how to fill the memory being allocated. For the event log, the memory can be filled with zeros, as defined below. Bytes The number of bytes to allocate. The following line defines the value to pass for the Flags parameter: #DEFINE GMEM_ZEROINIT 0x0040 Since memory is allocated, is must also be deallocated. That is the purpose of GlobalFree( ). The single parameter is the handle to the memory, as returned by GlobalAlloc( ). If GlobalFree( ) succeeds in deallocating the memory, it returns NULL. Any other value indicates failure. DECLARE INTEGER GlobalFree IN WIN32API ; INTEGER Mem The strings that are used for parameter of the ReportEvent function need to be copied from Visual FoxPro memory into the allocated memory. Keep in mind that the Event API function requires a C++ array string. By copying the memory and doing some other hocus-pocus that I will explain later, the VFP string will look like a C++ array string. The CopyMemory( ) function will handle this for us. DECLARE RtlMoveMemory IN WIN32API AS CopyMemory ; INTEGER Destination, ; STRING Source, ; INTEGER Length This function has no return value. The parameters are listed in Table 10. Page 12 of 31

13 Table 10. A listing of parameters for the RtlMoveMemory function. Parameters Description Destination The starting address of the copied block s destination. Source The starting address of the block of memory to copy. Length The size, in bytes, of the block of memory to copy. One of the optional parameters of the ReportEvent( ) function is UserSid, which is the User s Security ID. The LookupAccountSid( ) function gets that information for you. DECLARE INTEGER LookupAccountSid IN WIN32API ; STRING SystemName, ; ; ; ; ; ; A nonzero return value indicates success, zero indicates failure. Table 11 lists the parameters. Table 11. A listing of parameters for the LookupAccountSID function. Parameters Description SystemName The server name to query. Pass an empty string to query the local A SID structure for the account information to look The account name corresponding to The number of bytes contained in parameter. If the function fails is too small, this will contain the number of bytes The domain where the account is The number of bytes contained in e parameter. If the function fails is too small, this will contain the number of bytes Contains the type of account when the function returns. The next function, LoadLibraryEx( ) maps an executable module into the address space of the calling process. For the Windows Event Log, it is used to load the message file. Here is the syntax: DECLARE LONG LoadLibraryEx IN WIN32API ; STRING LibFileName, ; INTEGER RESERVED, ; INTEGER Flags If the function call succeeds, the return value is a handle to the mapped executable module. If it fails, NULL is returned. Table 12 lists the parameters. Table 12. A listing of parameters for the LoadLibraryEx function. Page 13 of 31

14 Parameters LibFileName RESERVED Flags Description The name of the executable (DLL or EXE) module. Must be NULL The action to take when loading the module. For event log usage, the only value you need to use here is to load the library as a datafile. #DEFINE LOAD_LIBRARY_AS_DATAFILE 0x After you finish using the library, you need to release it. The FreeLibrary( ) function will do this. It takes a single parameter, hlibmodule, which is the return value of LoadLibraryEx( ). If the function succeeds, it returns a nonzero value. Any other return value indicates failure. DECLARE INTEGER FreeLibrary IN WIN32API ; LONG hlibmodule You will need to format the message string. The FormatMessageString( ) function does this. DECLARE INTEGER FormatMessage IN WIN32API ; INTEGER Flags, ; LONG Source, ; INTEGER MessageId, ; INTEGER LanguageId, ; ; INTEGER BufferSize, ; FormatMessage( ) returns the number of bytes in the output buffer. If it fails, it returns a zero. Table 13 lists the parameters. Table 13. A listing parameters for the FormatMessage function. Parameters Description Flags A series of bit flags that specify aspects of the formatting process and how to interpret the Source parameter. See the FORMAT_MESSAGE constants below. Source Specifies the location of the message definition. This will be the resource file loaded by LoadLibraryEx. MessageId The Message Id from the Message file. LanguageId The language Id. You can use 0 if no language is Used to return the formatted message. BufferSize The maximum number of bytes that can be Values that are used as insert values in the message. #DEFINE FORMAT_MESSAGE_ALLOCATE_BUFFER 256 #DEFINE FORMAT_MESSAGE_IGNORE_INSERTS 512 Page 14 of 31

15 #DEFINE FORMAT_MESSAGE_FROM_HMODULE 2048 #DEFINE FORMAT_MESSAGE_ARGUMENT_ARRAY 8192 The last API function is ExpandEnvironmentStrings( ). This function expands environment variable strings and replaces them with their user-defined values. DECLARE INTEGER ExpandEnvironmentStrings IN WIN32API ; ; ; INTEGER nsize If the function succeeds, the return value is the number of characters stored in the destination buffer. If the number of characters is greater than the size of the destination buffer, the return value is the size of the buffer required to hold the expanded strings. If the function fails, the return value is zero. Table 14 lists the parameters. Table 14. A list of parameters for the ExpandEnvironmentStrings function. Parameters The environment variable string to expand. Must be of the form: The buffer to receive the value specified nsize The maximum number of bytes that can be held That completes the Win32 API functions. However, there is still just a bit more to cover before looking at the full code. I haven t completely showed you how to do the conversion from a VFP string to the C++ array string. The following VFP functions will do this: * Adapted from KB Article ID: Q *-- The following function converts a long integer to an ASCII *-- character representation of the passed value in low-high format. ****************** FUNCTION LongToStr ****************** * Passed : 32-bit non-negative numeric value (lnlongval) * Returns : ascii character representation of passed value in low-high * format (lcretstr) * Example : * m.long = "999999" * m.longstr = long2str(m.long) LPARAMETERS lnlongval LOCAL lni, lcretstr lcretstr = "" FOR lni = 24 TO 0 STEP -8 lcretstr = CHR(INT(lnLongval / (2 ^ lni))) + lcretstr lnlongval = MOD(lnLongval, (2 ^ lni)) NEXT RETURN lcretstr Page 15 of 31

16 *-- The following function converts a string in low-high format to a *-- long integer. ****************** FUNCTION StrToLong ****************** * Passed: 4-byte character string (lclongstr) in low-high ASCII format * Returns: long integer value * Example: * m.longstr = "1111" * m.longval = str2long(m.longstr) LPARAMETERS lclongstr LOCAL lni, lnretval lnretval = 0 FOR lni = 0 TO 24 STEP 8 lnretval = lnretval + (ASC(lcLongstr) * (2 ^ lni)) lclongstr = RIGHT(lcLongstr, LEN(lcLongstr) - 1) NEXT RETURN lnretval Writing to the Event Log Now that you ve seen the functions involved in using the Windows Event Log, it s time to learn how write to the event log. Here is the code. #define EVENTLOG_SUCCESS 0 #define EVENTLOG_ERROR_TYPE 1 #define EVENTLOG_WARNING_TYPE 2 #define EVENTLOG_INFORMATION_TYPE 4 #define EVENTLOG_AUDIT_SUCCESS 8 #define EVENTLOG_AUDIT_FAILURE 10 #define GMEM_ZEROINIT 0x0040 DECLARE INTEGER GetLastError IN WIN32API DECLARE INTEGER RegisterEventSource IN WIN32API ; STRING UNCServerName, ; STRING SourceName DECLARE INTEGER DeregisterEventSource IN WIN32API ; INTEGER heventlog DECLARE INTEGER ReportEvent IN WIN32API ; INTEGER EventLog, ; INTEGER Type, ; INTEGER Category, ; INTEGER EventID, ; INTEGER UserSid, ; INTEGER NumStrings, ; INTEGER DataSize, ; Page 16 of 31

17 ; INTEGER RawData DECLARE INTEGER GlobalAlloc IN WIN32API ; INTEGER Flags, ; INTEGER Bytes DECLARE INTEGER GlobalFree IN WIN32API ; INTEGER Mem DECLARE RtlMoveMemory in WIN32API as CopyMemory ; INTEGER Destination, ; STRING Source, ; INTEGER Length LOCAL lnhandle, lcname, pname, lcstrings, lnretval, ; lcmessage1, lcmessage2, pmessage1, pmessage2, lcmessages lnhandle = RegisterEventSource("", "FoxMessages") IF lnhandle > 0 * No parameter lnretval = ReportEvent(lnHandle, EVENTLOG_SUCCESS, 1, 1000, 0, 0, 0, NULL, 0) IF lnretval = 0 MESSAGEBOX("ReportEvent Error: " + ALLTRIM(STR(GetLastError()))) * Single parameter lcname = "Fred" pname = GlobalAlloc(GMEM_ZEROINIT, LEN(lcName) + 1) CopyMemory(pName, lcname, LEN(lcName)) lcstrings = LongToStr(pName) lnretval = ReportEvent(lnHandle, EVENTLOG_SUCCESS, 2, 1001, 0, 1, 0) IF lnretval = 0 MESSAGEBOX("ReportEvent Error: " + ALLTRIM(STR(GetLastError()))) IF pname > 0 lnret = GlobalFree(pName) * Multiple parameters lcmessage1 = "This is the first message." lcmessage2 = "This is another message!" pmessage1 = GlobalAlloc(GMEM_ZEROINIT, LEN(lcMessage1) + 1) pmessage2 = GlobalAlloc(GMEM_ZEROINIT, LEN(lcMessage2) + 1) CopyMemory(pMessage1, lcmessage1, LEN(lcMessage1)) CopyMemory(pMessage2, lcmessage2, LEN(lcMessage2)) lcmessages = LongToStr(pMessage1) + LongToStr(pMessage2) lnretval = ReportEvent(lnHandle, EVENTLOG_SUCCESS, 1, 1003, 0, 2, 0) IF lnretval = 0 MESSAGEBOX("ReportEvent Error: " + ALLTRIM(STR(GetLastError()))) IF pmessage1 > 0 Page 17 of 31

18 lnret = GlobalFree(pMessage1) IF pmessage2 > 0 lnret = GlobalFree(pMessage2) lnretval = DeregisterEventSource(lnHandle) MESSAGEBOX("RegisterEventSource Error: " ; + ALLTRIM(STR(GetLastError()))) RETURN ****************** * From KB Article ID: Q ****************** FUNCTION LongToStr * The following function converts a long integer to an ASCII * character representation of the passed value in low-high format. * Passed: 32-bit non-negative numeric value (lnlongval) * Returns: ascii character representation of passed value in low-high * format LPARAMETERS lnlongval LOCAL lni, lcretstr lcretstr = "" FOR lni = 24 TO 0 STEP -8 lcretstr = CHR(INT(lnLongval / (2 ^ lni))) + lcretstr lnlongval = MOD(lnLongval, (2 ^ lni)) NEXT RETURN lcretstr ****************** FUNCTION StrToLong * Convert a string in low-high format to a long integer. * Passed: 4-byte character string (lclongstr) in low-high ASCII format * Returns: long integer value LPARAMETERS lclongstr LOCAL lni, lnretval lnretval = 0 FOR lni = 0 TO 24 STEP 8 lnretval = lnretval + (ASC(lcLongstr) * (2 ^ lni)) lclongstr = RIGHT(lcLongstr, LEN(lcLongstr) - 1) NEXT RETURN lnretval As you can see from this example, the actual FoxPro code is fairly simple. The key to using the event log is defining the API calls and converting FoxPro data types to the C++ data types needed for the calls. Page 18 of 31

19 Reading from the Event Log Here s the code to read from the event log. The results are displayed in a Message Box. #DEFINE EVENTLOG_SEQUENTIAL_READ 1 #DEFINE EVENTLOG_SEEK_READ 2 #DEFINE EVENTLOG_FORWARDS_READ 4 #DEFINE EVENTLOG_BACKWARDS_READ 8 #DEFINE ERROR_INSUFFICIENT_BUFFER 122 #DEFINE ERROR_HANDLE_EOF 38 #DEFINE EVENTLOG_SUCCESS 0 #DEFINE EVENTLOG_ERROR_TYPE 1 #DEFINE EVENTLOG_WARNING_TYPE 2 #DEFINE EVENTLOG_INFORMATION_TYPE 4 #DEFINE EVENTLOG_AUDIT_SUCCESS 8 #DEFINE EVENTLOG_AUDIT_FAILURE 10 #DEFINE HKEY_LOCAL_MACHINE && BITSET(0,31)+2 #DEFINE FORMAT_MESSAGE_ALLOCATE_BUFFER 256 #DEFINE FORMAT_MESSAGE_IGNORE_INSERTS 512 #DEFINE FORMAT_MESSAGE_FROM_HMODULE 2048 #DEFINE FORMAT_MESSAGE_ARGUMENT_ARRAY 8192 #DEFINE LOAD_LIBRARY_AS_DATAFILE 0x #DEFINE GMEM_ZEROINIT 0x0040 DECLARE INTEGER GetLastError IN WIN32API DECLARE INTEGER OpenEventLog IN WIN32API ; STRING UNCServerName, ; STRING UNCSourceName DECLARE INTEGER CloseEventLog IN WIN32API ; INTEGER heventlog DECLARE INTEGER GetNumberOfEventLogRecords IN WIN32API ; INTEGER heventlog, ; DECLARE INTEGER GetOldestEventLogRecord IN WIN32API ; INTEGER heventlog, ; DECLARE INTEGER ReadEventLog IN WIN32API ; INTEGER heventlog, ; INTEGER ReadFlags, ; INTEGER RecordOffset, ; ; INTEGER NumberOfBytesToRead, ; ; DECLARE INTEGER LookupAccountSid IN WIN32API ; Page 19 of 31

20 STRING SystemName, ; ; ; ; ; ; DECLARE LONG LoadLibraryEx IN WIN32API ; STRING LibFileName, ; INTEGER RESERVED, ; INTEGER FLAGS DECLARE INTEGER FreeLibrary IN WIN32API ; LONG hlibmodule DECLARE INTEGER FormatMessage IN WIN32API ; INTEGER FLAGS, ; LONG SOURCE, ; INTEGER MessageId, ; INTEGER LanguageId, ; STRING@ BUFFER, ; INTEGER BufferSize, ; STRING@ Arguments DECLARE INTEGER ExpandEnvironmentStrings IN WIN32API ; STRING@ Src, ; STRING@ Dst, ; INTEGER nsize DECLARE INTEGER GlobalAlloc IN WIN32API ; INTEGER FLAGS, ; INTEGER Bytes DECLARE INTEGER GlobalFree IN WIN32API ; INTEGER Mem DECLARE RtlMoveMemory IN WIN32API AS CopyMemory ; INTEGER Destination, ; STRING SOURCE, ; INTEGER LENGTH ************************************** LOCAL lcuncsourcename, loreg, heventlog, lcnumberofrecords, lnretval, ; lcoldestrecord, lcbuffer, lcbytesread, lcminnumberofbytesneeded lcuncsourcename = "C:\" SET PROCEDURE TO (ADDBS(HOME()) + "samples\classes\registry.prg") ADDITIVE loreg = CREATEOBJECT("FileReg") * lpuncsourcename = "3MHIS" heventlog = OpenEventLog(NULL, lcuncsourcename) IF heventlog = 0 MESSAGEBOX("OpenEventLog Error: " + ALLTRIM(STR(GetLastError()))) RETURN Page 20 of 31

21 * Get the number of records in the event log lcnumberofrecords = SPACE(4) lnretval = IF lnretval = 0 MESSAGEBOX("GetNumberOfEventLogRecords Error: " + ALLTRIM(STR(GetLastError()))) MESSAGEBOX("Number of Event Log Records: " + ALLTRIM(STR(StrToLong(lcNumberOfRecords)))) * Get the oldest record lcoldestrecord = SPACE(4) lnretval = IF lnretval = 0 MESSAGEBOX("GetOldestEventLogRecord Error: " + ALLTRIM(STR(GetLastError()))) MESSAGEBOX("Oldest Event Log Record: " + ALLTRIM(STR(StrToLong(lcOldestRecord)))) * Loop through messages DO WHILE.T. lcbuffer = SPACE(1) lcbytesread = SPACE(4) lcminnumberofbytesneeded = SPACE(4) lnretval = ReadEventLog(hEventLog, ; BITOR(EVENTLOG_SEQUENTIAL_READ, ; EVENTLOG_FORWARDS_READ), ; 0, ; LEN(lcBuffer), IF GetLastError() = ERROR_INSUFFICIENT_BUFFER lcbuffer = SPACE(StrToLong(lcMinNumberOfBytesNeeded)) lcbytesread = SPACE(4) lcminnumberofbytesneeded = SPACE(4) lnret = ReadEventLog(hEventLog, ; BITOR(EVENTLOG_SEQUENTIAL_READ, ; EVENTLOG_FORWARDS_READ), ; 0, ; LEN(lcBuffer), IF lnret = 0 MESSAGEBOX("ReadEventLog Error: " + ALLTRIM(STR(GetLastError()))) EXIT Page 21 of 31

22 lcmessage = ParseLogRecord(lcBuffer, lcuncsourcename, loreg) IF MESSAGEBOX(lcMessage, 1) = 2 EXIT IF GetLastError() = ERROR_HANDLE_EOF MESSAGEBOX("End of File") EXIT MESSAGEBOX("ReadEventLog Error: " + ALLTRIM(STR(GetLastError()))) EXIT ENDDO lnretval = CloseEventLog(hEventLog) IF lnretval = 0 MESSAGEBOX("CloseEventLog Error: " + ALLTRIM(STR(GetLastError()))) RETURN **************************************************** FUNCTION ParseLogRecord LPARAMETERS tcbuffer, tcuncsourcename, toreg LOCAL lcmessage, lncounter, lndatalen, pbuffer lcmessage = "Length: " + ALLTRIM(STR(StrToLong(SUBSTR(tcBuffer, 1, 4)))) + CHR(13) + CHR(10) lcmessage = lcmessage + "Record Number: " + ALLTRIM(STR(StrToLong(SUBSTR(tcBuffer, 9, 4)))) + CHR(13) + CHR(10) lcmessage = lcmessage + "Time Generated: " + TTOC({^1969/12/31 18:00:00} + StrToLong(SUBSTR(tcBuffer, 13, 4))) + CHR(13) + CHR(10) lcmessage = lcmessage + "Time Written: " + TTOC({^1969/12/31 18:00:00} + StrToLong(SUBSTR(tcBuffer, 17, 4))) + CHR(13) + CHR(10) lcmessage = lcmessage + "Event ID: " + ALLTRIM(STR(StrToLong(SUBSTR(tcBuffer, 21, 2)))) + CHR(13) + CHR(10) lcmessage = lcmessage + GetEventType(tcBuffer) lcmessage = lcmessage + "Number of Strings: " + ALLTRIM(STR(StrToLong(SUBSTR(tcBuffer, 27, 2)))) + CHR(13) + CHR(10) lcmessage = lcmessage + "Source Name: " lcsource = "" lncounter = 57 DO WHILE SUBSTR(tcBuffer, lncounter, 1) <> CHR(0) lcsource = lcsource + SUBSTR(tcBuffer, lncounter, 1) lncounter = lncounter + 1 ENDDO lcmessage = lcmessage + lcsource lcmessage = lcmessage + CHR(13) + CHR(10) lcmessage = lcmessage + GetEventCategory(tcBuffer, tcuncsourcename, lcsource, toreg) lncounter = lncounter + 1 Page 22 of 31

23 lcmessage = lcmessage + "Computer Name: " DO WHILE SUBSTR(tcBuffer, lncounter, 1) <> CHR(0) lcmessage = lcmessage + SUBSTR(tcBuffer, lncounter, 1) lncounter = lncounter + 1 ENDDO lcmessage = lcmessage + CHR(13) + CHR(10) lcmessage = lcmessage + GetUserInfo(tcBuffer) lcmessage = lcmessage + GetDescription(tcBuffer, tcuncsourcename, lcsource, toreg) lndatalen = StrToLong(SUBSTR(tcBuffer, 49, 4)) IF lndatalen > 0 lcmessage = lcmessage + "Data: " pbuffer = StrToLong(SUBSTR(tcBuffer, 53, 4)) FOR lncounter = 1 TO lndatalen lcmessage = lcmessage + STR(ASC(SUBSTR(tcBuffer, pbuffer + lncounter, lndatalen))) NEXT lcmessage = lcmessage + CHR(13) + CHR(10) RETURN lcmessage ************************************************* FUNCTION GetEventType LPARAMETERS tcbuffer LOCAL lcretval, lneventtype lneventtype = StrToLong(SUBSTR(tcBuffer, 25, 2)) DO CASE CASE lneventtype = EVENTLOG_SUCCESS lcretval = "Success" CASE lneventtype = EVENTLOG_ERROR_TYPE lcretval = "Error" CASE lneventtype = EVENTLOG_WARNING_TYPE lcretval = "Warning" CASE lneventtype = EVENTLOG_INFORMATION_TYPE lcretval = "Information" CASE lneventtype = EVENTLOG_AUDIT_SUCCESS lcretval = "Audit Success" CASE lneventtype = EVENTLOG_AUDIT_FAILURE lcretval = "Audit Failure" ENDCASE lcretval = "Event Type: " + lcretval + CHR(13) + CHR(10) RETURN lcretval ************************************ FUNCTION GetEventCategory LPARAMETERS tcbuffer, tcuncsourcename, tcsource, toreg LOCAL lcretval, lncategory, lclookup, lnkey, lccmf, lnkeyvalue, lccmfx, lnret, ; hresource, lcbuffer, lni lcretval = "" lncategory = StrToLong(SUBSTR(tcBuffer, 29, 2)) Page 23 of 31

24 IF lncategory = 0 lcretval = "None" lclookup = "SYSTEM\CurrentControlSet\Services\EventLog\" + ALLTRIM(tcUNCSourceName) + "\" + tcsource lnkey = toreg.openkey(lclookup, HKEY_LOCAL_MACHINE,.F.) IF lnkey = 0 lccmf = "" lnkeyvalue = IF lnkeyvalue = 0 lccmfx = SPACE(255) lnret = 255) hresource = LoadLibraryEx(ALLTRIM(lcCMFx), 0, LOAD_LIBRARY_AS_DATAFILE) IF hresource > 0 lcbuff = SPACE(100) lnret = FormatMessage(BITOR(FORMAT_MESSAGE_FROM_HMODULE, FORMAT_MESSAGE_IGNORE_INSERTS), ; hresource, ; lncategory, ; 0, ; 100, ; NULL) IF lnret > 0 FOR lni = 1 TO lret IF SUBSTR(tcBuffer, lni, 1) = CHR(13) EXIT lcretval = lcretval + SUBSTR(tcBuffer, lni, 1) NEXT lcretval = lcretval + "(" + ALLTRIM(STR(StrToLong(SUBSTR(tcBuffer, 29, 2)))) + ")" FreeLibrary(hResource) lcretval = lcretval + "(" + ALLTRIM(STR(StrToLong(SUBSTR(tcBuffer, 29, 2)))) + ")" lcretval = lcretval + "(" + ALLTRIM(STR(StrToLong(SUBSTR(tcBuffer, 29, 2)))) + ")" oreg.closekey() lcretval = lcretval + "(" + ALLTRIM(STR(StrToLong(SUBSTR(tcBuffer, 29, 2)))) + ")" lcretval = "Event Category: " + lcretval + CHR(13) + CHR(10) RETURN lcretval Page 24 of 31

25 ************************************************** FUNCTION GetUserInfo LPARAMETERS tcbuffer LOCAL lnusersidlength, lnusersidoffset, lcretval, lcsid, lni, lcname, cbname, ; lcreferenceddomainname, cbreferenceddomainname, peuse, lnret lnusersidlength = StrToLong(SUBSTR(tcBuffer, 41, 4)) lnusersidoffset = StrToLong(SUBSTR(tcBuffer, 45, 4)) lcretval = "" IF lnusersidlength > 0 lcsid = "" FOR lni = 1 TO lnusersidlength lcsid = lcsid + SUBSTR(tcBuffer, lnusersidoffset + lni, 1) NEXT lcname = SPACE(1) cbname = LongToStr(1) lcreferenceddomainname = SPACE(1) cbreferenceddomainname = LongToStr(1) peuse = SPACE(1) lnret = LookupAccountSid("", lnret = GetLastError() IF lnret = ERROR_INSUFFICIENT_BUFFER lcname = SPACE(StrToLong(cbName)) lcreferenceddomainname = SPACE(StrToLong(cbReferencedDomainName)) lnret = LookupAccountSid("", IF lnret = 1 lcretval = lcretval + lcname lcretval = lcretval + "N/A" lcretval = lcretval + "N/A" lcretval = lcretval + "N/A" lcretval = "User: " + lcretval + CHR(13) + CHR(10) RETURN lcretval Page 25 of 31

26 *********************************************** PROCEDURE GetDescription LPARAMETERS tcbuffer, tcuncsourcename, tcsource, toreg LOCAL lclookup, lnret, lcemf, lcemfx, lnnumstrings, pstr, lcptrs, lni, ; hresource, lcbuffer, lneventno, lcmessage, lcretval lclookup = "SYSTEM\CurrentControlSet\Services\EventLog\" + ALLTRIM(tcUNCSourceName) + "\" + tcsource lnret = toreg.openkey(lclookup, HKEY_LOCAL_MACHINE,.F.) IF lnret = 0 lcemf = "" lnret = IF lnret = 0 lnnumstrings = StrToLong(SUBSTR(tcBuffer, 27, 2)) pstr = StrToLong(SUBSTR(cBuffer, 37, 4)) + 1 lcmessage = "" lcptrs = "" FOR lni = 1 TO lnnumstrings DO WHILE.T. IF SUBSTR(tcBuffer, pstr, 1) <> CHR(0) lcmessage = lcmessage + SUBSTR(tcBuffer, pstr, 1) pstr = pstr + 1 lcptrs = lcptrs + LongToStr(GlobalAlloc(GMEM_ZEROINIT, LEN(lcMessage) + 1)) CopyMemory(StrToLong(RIGHT(lcPtrs, 4)), lcmessage, LEN(lcMessage)) pstr = pstr + 1 lcmessage = "" EXIT ENDDO NEXT lcemfx = SPACE(255) lnret = 255) hresource = LoadLibraryEx(ALLTRIM(lcEMFx), 0, LOAD_LIBRARY_AS_DATAFILE) IF hresource > 0 lcbuffer = SPACE(1000) lnret = FormatMessage(BITOR(FORMAT_MESSAGE_FROM_HMODULE, FORMAT_MESSAGE_ARGUMENT_ARRAY, 60), ; hresource, ; StrToLong(SUBSTR(tcBuffer, 21, 2)), ; 0, ; 10000, IF lnret = 0 lneventno = StrToLong(SUBSTR(tcBuffer, 21, 2)) lnret = GetLastError() Page 26 of 31

27 lcretval = ALLTRIM(lcBuffer) FreeLibrary(hResource) FOR lni = 1 TO lnnumstrings lnret = GlobalFree(StrToLong(SUBSTR(lcPtrs, lni * 4-3, 4))) NEXT toreg.closekey() lcretval = IIF(EMPTY(lcRetVal), "", "Description: " + lcretval) RETURN lcretval ****************** * From KB Article ID: Q ****************** FUNCTION LongToStr * The following function converts a long integer to an ASCII * character representation of the passed value in low-high format. * Passed: 32-bit non-negative numeric value (lnlongval) * Returns: ascii character representation of passed value in low-high * format LPARAMETERS tnlongval LOCAL lni, lcretval lcretval = "" FOR lni = 24 TO 0 STEP -8 lcretval = CHR(INT(tnLongVal / (2 ^ lni))) + lcretval lnlongval = MOD(tnLongVal, (2 ^ lni)) NEXT RETURN lcretval ****************** FUNCTION StrToLong * Convert a string in low-high format to a long integer. * Passed: 4-byte character string (lclongstr) in low-high ASCII format * Returns: long integer value LPARAMETERS tclongstr LOCAL lclongstr, lni, lnretval lclongstr = tclongstr lnretval = 0 FOR lni = 0 TO 24 STEP 8 lnretval = lnretval + (ASC(lcLongStr) * (2 ^ lni)) lclongstr = RIGHT(lcLongStr, LEN(lcLongStr) - 1) NEXT RETURN lnretval You can see that the code that actually reads the log is quite small. Most of the code is for formatting the output. Page 27 of 31

28 Managing the Event Log The Windows Event Log requires periodic maintenance. You can schedule this maintenance to occur as needed or manage it yourself. This maintenance is required due to limitations with the Event Log. The Windows Event Log documentation says that the log size for all logs is limited to 4 Gig, but testing at 3M HIS showed that the practical limit is 300 MB. The log size is also limited by memory and other services and applications using the log. The following steps show you how to setup automatic maintenance of the log: 1. Open the Event Viewer (Figure 1). 2. Right-click on Application and select Properties. The Application Properties dialog (Figure 7) is displayed. Figure 7. The Application Properties dialog is used to maintain the Event Log. 3. Use the Log size settings to maintain the size of the Event Log. 4. Click Clear Log to clear all entries from the log 5. Click OK to close the properties dialog. You can also maintain the log programmatically. The following code shows how to backup the log: Page 28 of 31

29 DECLARE INTEGER GetLastError IN WIN32API DECLARE INTEGER OpenEventLog IN WIN32API ; STRING UNCServerName, ; STRING UNCSourceName DECLARE INTEGER BackupEventLog IN WIN32API ; INTEGER heventlog, ; STRING BackupLog DECLARE INTEGER CloseEventLog IN WIN32API ; INTEGER heventlog *************************************** LOCAL heventlog, lcbackuplog, lnret lcuncsourcename = "C:\" lcbackuplog = "C:\Temp\BackupLog.Evt" heventlog = OpenEventLog(NULL, lcuncsourcename) IF heventlog = 0 MESSAGEBOX("OpenEventLog Error: " + ALLTRIM(STR(GetLastError()))) RETURN ERASE (lcbackuplog) lnret = BackupEventLog(hEventLog, lcbackuplog) IF lnret = 0 MESSAGEBOX("BackupEventLog Error: " + ALLTRIM(STR(GetLastError()))) lnret = CloseEventLog(hEventLog) IF lnret = 0 MESSAGEBOX("CloseEventLog Error: " + ALLTRIM(STR(GetLastError()))) The following code shows how to clear the Windows Event Log: DECLARE INTEGER GetLastError IN WIN32API DECLARE INTEGER OpenEventLog IN WIN32API ; STRING UNCServerName, ; STRING UNCSourceName DECLARE INTEGER ClearEventLog IN WIN32API ; INTEGER heventlog, ; STRING BackupLog DECLARE INTEGER CloseEventLog IN WIN32API ; INTEGER heventlog *************************************** Page 29 of 31

30 LOCAL heventlog, lcbackuplog, lnret, lcnewbackup lcuncsourcename = "C:\" lcbackuplog = "C:\Temp\Backup.Evt" lcnewbackup = NULL heventlog = OpenEventLog(NULL, lcuncsourcename) IF heventlog = 0 MESSAGEBOX("OpenEventLog Error: " + ALLTRIM(STR(GetLastError()))) RETURN IF!ISNULL(lcBackupLog) ERASE (lcbackuplog) lnret = ClearEventLog(hEventLog, lcbackuplog) IF lnret = 0 MESSAGEBOX("ClearEventLog Error: " + ALLTRIM(STR(GetLastError()))) lnret = CloseEventLog(hEventLog) IF lnret = 0 MESSAGEBOX("CloseEventLog Error: " + ALLTRIM(STR(GetLastError()))) Summary It may seem that using the Windows Event Log is very complex, but you could create a class that will handle this for you and a generic message file, making the job easier. By using the Windows Event Log, you will centralize event reporting, use a format common to many other applications, and make event reporting easier for the end user. Craig Berntson is a Microsoft Most Valuable Professional (MVP) for Visual FoxPro, a Microsoft Certified Solution Developer, and President of the Salt Lake City Fox User Group. He wrote the book CrysDev: A Developer s Guide to Integrating Crystal Reports, available from Hentzenwerke Publishing. He has also written for FoxTalk and the Visual FoxPro User Group (VFUG) newsletter. He has spoken at Advisor DevCon, Essential Fox, the Great Lakes Great Database Workshop, Southwest Fox, Microsoft DevDays and user groups around the country. Currently, Craig is a Senior Software Engineer at 3M Health Information Systems in Salt Lake City. You can reach him a craig@craigberntson.com or visit his website, Cole Gleave is a Senior Software Engineer at 3M Health Information Systems in Salt Lake City. Previously he was Vice-President of Technology at Convenient Automation, specializing in software for the retail industry. He has worked with FoxPro since version 2.6. You can reach him at cgleave@yahoo.com. Page 30 of 31

31 This document was created with Win2PDF available at The unregistered version of Win2PDF is for evaluation or non-commercial use only.

Win32 Programming for Microsoft Windows NT

Win32 Programming for Microsoft Windows NT Services are programs. They are programs, which provide functionality to other executable code. Many processes in the Windows NT system are running as services. For example the logon process is run as

More information

Desaware, Inc. Version 1.0. www.desaware.com. for Visual Basic. Desaware Inc. 3510 Charter Park Drive, Suite 48 San Jose, CA 95136 (408) 404-4760

Desaware, Inc. Version 1.0. www.desaware.com. for Visual Basic. Desaware Inc. 3510 Charter Park Drive, Suite 48 San Jose, CA 95136 (408) 404-4760 TM Desaware Event Log Toolkit Version 1.0 for Visual Basic by Desaware, Inc. Rev: 1.0.1 (06/2005) Desaware Inc. 3510 Charter Park Drive, Suite 48 San Jose, CA 95136 (408) 404-4760 www.desaware.com Copyright

More information

Cross-platform event logging in Object Pascal

Cross-platform event logging in Object Pascal Cross-platform event logging in Object Pascal Micha el Van Canneyt June 24, 2007 1 Introduction Often, a program which works in the background or sits in the windows system tray needs to write some diagnostic

More information

TZWorks Windows Event Log Viewer (evtx_view) Users Guide

TZWorks Windows Event Log Viewer (evtx_view) Users Guide TZWorks Windows Event Log Viewer (evtx_view) Users Guide Abstract evtx_view is a standalone, GUI tool used to extract and parse Event Logs and display their internals. The tool allows one to export all

More information

Chapter 4 Accessing Data

Chapter 4 Accessing Data Chapter 4: Accessing Data 73 Chapter 4 Accessing Data The entire purpose of reporting is to make sense of data. Therefore, it is important to know how to access data locked away in the database. In this

More information

FTP Client Engine Library for Visual dbase. Programmer's Manual

FTP Client Engine Library for Visual dbase. Programmer's Manual FTP Client Engine Library for Visual dbase Programmer's Manual (FCE4DB) Version 3.3 May 6, 2014 This software is provided as-is. There are no warranties, expressed or implied. MarshallSoft Computing, Inc.

More information

Expedite for Windows Software Development Kit Programming Guide

Expedite for Windows Software Development Kit Programming Guide GXS EDI Services Expedite for Windows Software Development Kit Programming Guide Version 6 Release 2 GC34-3285-02 Fifth Edition (November 2005) This edition replaces the Version 6.1 edition. Copyright

More information

Matisse Installation Guide for MS Windows

Matisse Installation Guide for MS Windows Matisse Installation Guide for MS Windows July 2013 Matisse Installation Guide for MS Windows Copyright 2013 Matisse Software Inc. All Rights Reserved. This manual and the software described in it are

More information

WINDOWS PROCESSES AND SERVICES

WINDOWS PROCESSES AND SERVICES OBJECTIVES: Services o task manager o services.msc Process o task manager o process monitor Task Scheduler Event viewer Regedit Services: A Windows service is a computer program that operates in the background.

More information

Deploying Microsoft Operations Manager with the BIG-IP system and icontrol

Deploying Microsoft Operations Manager with the BIG-IP system and icontrol Deployment Guide Deploying Microsoft Operations Manager with the BIG-IP system and icontrol Deploying Microsoft Operations Manager with the BIG-IP system and icontrol Welcome to the BIG-IP LTM system -

More information

Upgrading MySQL from 32-bit to 64-bit

Upgrading MySQL from 32-bit to 64-bit Upgrading MySQL from 32-bit to 64-bit UPGRADING MYSQL FROM 32-BIT TO 64-BIT... 1 Overview... 1 Upgrading MySQL from 32-bit to 64-bit... 1 Document Revision History... 21 Overview This document will walk

More information

WinAgentLog Reference Manual

WinAgentLog Reference Manual WinAgentLog Version 1.3 Last modified on November 21, 2011 WinAgentLog License Except where otherwise noted, all of the documentation and software included in the WinAgentLog Setup package is copyrighted

More information

Integrating LANGuardian with Active Directory

Integrating LANGuardian with Active Directory Integrating LANGuardian with Active Directory 01 February 2012 This document describes how to integrate LANGuardian with Microsoft Windows Server and Active Directory. Overview With the optional Identity

More information

EVENT LOG MANAGEMENT...

EVENT LOG MANAGEMENT... Event Log Management EVENT LOG MANAGEMENT... 1 Overview... 1 Application Event Logs... 3 Security Event Logs... 3 System Event Logs... 3 Other Event Logs... 4 Windows Update Event Logs... 6 Syslog... 6

More information

NETWRIX WINDOWS SERVER CHANGE REPORTER

NETWRIX WINDOWS SERVER CHANGE REPORTER NETWRIX WINDOWS SERVER CHANGE REPORTER INSTALLATION AND CONFIGURATION GUIDE Product Version: 4.0 March 2013. Legal Notice The information in this publication is furnished for information use only, and

More information

Team Foundation Server 2012 Installation Guide

Team Foundation Server 2012 Installation Guide Team Foundation Server 2012 Installation Guide Page 1 of 143 Team Foundation Server 2012 Installation Guide Benjamin Day benday@benday.com v1.0.0 November 15, 2012 Team Foundation Server 2012 Installation

More information

Developing, Deploying, and Debugging Applications on Windows Embedded Standard 7

Developing, Deploying, and Debugging Applications on Windows Embedded Standard 7 Developing, Deploying, and Debugging Applications on Windows Embedded Standard 7 Contents Overview... 1 The application... 2 Motivation... 2 Code and Environment... 2 Preparing the Windows Embedded Standard

More information

SQL Server Automated Administration

SQL Server Automated Administration SQL Server Automated Administration To automate administration: Establish the administrative responsibilities or server events that occur regularly and can be administered programmatically. Define a set

More information

ReportByEmail ODBC Connection setup

ReportByEmail ODBC Connection setup ReportByEmail ODBC Connection setup Page 2 of 28 Content Introduction... 3 ReportByEmail Server and changing ODBC settings... 3 Microsoft AD Windows setup... 3 Important notice regarding 32-bit / 64-bit

More information

How to monitor AD security with MOM

How to monitor AD security with MOM How to monitor AD security with MOM A article about monitor Active Directory security with Microsoft Operations Manager 2005 Anders Bengtsson, MCSE http://www.momresources.org November 2006 (1) Table of

More information

Setting Up ALERE with Client/Server Data

Setting Up ALERE with Client/Server Data Setting Up ALERE with Client/Server Data TIW Technology, Inc. November 2014 ALERE is a registered trademark of TIW Technology, Inc. The following are registered trademarks or trademarks: FoxPro, SQL Server,

More information

Magaya Software Installation Guide

Magaya Software Installation Guide Magaya Software Installation Guide MAGAYA SOFTWARE INSTALLATION GUIDE INTRODUCTION Introduction This installation guide explains the system requirements for installing any Magaya software, the steps to

More information

EMC Celerra Network Server

EMC Celerra Network Server EMC Celerra Network Server Release 5.6.47 Using Windows Administrative Tools with Celerra P/N 300-004-139 REV A02 EMC Corporation Corporate Headquarters: Hopkintons, MA 01748-9103 1-508-435-1000 www.emc.com

More information

CAPIX Job Scheduler User Guide

CAPIX Job Scheduler User Guide CAPIX Job Scheduler User Guide Version 1.1 December 2009 Table of Contents Table of Contents... 2 Introduction... 3 CJS Installation... 5 Writing CJS VBA Functions... 7 CJS.EXE Command Line Parameters...

More information

Hands-On Microsoft Windows Server 2008

Hands-On Microsoft Windows Server 2008 Hands-On Microsoft Windows Server 2008 Chapter 10 Managing System Reliability and Availability Using and Configuring Event Viewer Event Viewer Houses the event logs that record information about all types

More information

Installing Active Directory

Installing Active Directory Installing Active Directory 119 Installing Active Directory Installing Active Directory is an easy and straightforward process as long as you planned adequately and made the necessary decisions beforehand.

More information

RTI Database Integration Service. Getting Started Guide

RTI Database Integration Service. Getting Started Guide RTI Database Integration Service Getting Started Guide Version 5.2.0 2015 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. June 2015. Trademarks Real-Time Innovations,

More information

Windows Server 2003 Logon Scripts Paul Flynn

Windows Server 2003 Logon Scripts Paul Flynn Creating logon scripts You can use logon scripts to assign tasks that will be performed when a user logs on to a particular computer. The scripts can carry out operating system commands, set system environment

More information

Matisse Installation Guide for MS Windows. 10th Edition

Matisse Installation Guide for MS Windows. 10th Edition Matisse Installation Guide for MS Windows 10th Edition April 2004 Matisse Installation Guide for MS Windows Copyright 1992 2004 Matisse Software Inc. All Rights Reserved. Matisse Software Inc. 433 Airport

More information

WS_FTP Professional 12

WS_FTP Professional 12 WS_FTP Professional 12 Tools Guide Contents CHAPTER 1 Introduction Ways to Automate Regular File Transfers...5 Check Transfer Status and Logs...6 Building a List of Files for Transfer...6 Transfer Files

More information

NetSpective Logon Agent Guide for NetAuditor

NetSpective Logon Agent Guide for NetAuditor NetSpective Logon Agent Guide for NetAuditor The NetSpective Logon Agent The NetSpective Logon Agent is a simple application that runs on client machines on your network to inform NetSpective (and/or NetAuditor)

More information

Plug-In for Informatica Guide

Plug-In for Informatica Guide HP Vertica Analytic Database Software Version: 7.0.x Document Release Date: 2/20/2015 Legal Notices Warranty The only warranties for HP products and services are set forth in the express warranty statements

More information

Administration Guide. . All right reserved. For more information about Specops Deploy and other Specops products, visit www.specopssoft.

Administration Guide. . All right reserved. For more information about Specops Deploy and other Specops products, visit www.specopssoft. . All right reserved. For more information about Specops Deploy and other Specops products, visit www.specopssoft.com Copyright and Trademarks Specops Deploy is a trademark owned by Specops Software. All

More information

Athena Knowledge Base

Athena Knowledge Base Athena Knowledge Base The Athena Visual Studio Knowledge Base contains a number of tips, suggestions and how to s that have been recommended by the users of the software. We will continue to enhance this

More information

Eventlog to Syslog v4.5 Release 4.5 Last revised September 29, 2013

Eventlog to Syslog v4.5 Release 4.5 Last revised September 29, 2013 Eventlog to Syslog v4.5 Release 4.5 Last revised September 29, 2013 This product includes software developed by Purdue University. The Eventlog to Syslog utility is a windows service originally created

More information

InstallAware for Windows Installer, Native Code, and DRM

InstallAware for Windows Installer, Native Code, and DRM InstallAware for Windows Installer, Native Code, and DRM Key Objectives Who is InstallAware? Eliminate Bloated MSI Packages One-Click Deployment of Runtimes Improve Customer Relationships Simplify and

More information

Using Windows Administrative Tools on VNX

Using Windows Administrative Tools on VNX EMC VNX Series Release 7.0 Using Windows Administrative Tools on VNX P/N 300-011-833 REV A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Copyright 2011 -

More information

Team Foundation Server 2010, Visual Studio Ultimate 2010, Team Build 2010, & Lab Management Beta 2 Installation Guide

Team Foundation Server 2010, Visual Studio Ultimate 2010, Team Build 2010, & Lab Management Beta 2 Installation Guide Page 1 of 243 Team Foundation Server 2010, Visual Studio Ultimate 2010, Team Build 2010, & Lab Management Beta 2 Installation Guide (This is an alpha version of Benjamin Day Consulting, Inc. s installation

More information

Job Management Partner 1/File Transmission Server/FTP Description, Reference and Operator's Guide

Job Management Partner 1/File Transmission Server/FTP Description, Reference and Operator's Guide For Windows Systems Job Management Partner 1 Version 10 Job Management Partner 1/File Transmission Server/FTP Description, Reference and Operator's Guide 3021-3-334-10(E) Notices Relevant program products

More information

How to make a VPN connection to our servers from Windows XP

How to make a VPN connection to our servers from Windows XP How to make a VPN connection to our servers from Windows XP Windows XP can only make a Point-To-Point Tunneling Protocol (PPTP) type of VPN connection to our servers. This requires TCP Port 1723 to be

More information

How To Create An Easybelle History Database On A Microsoft Powerbook 2.5.2 (Windows)

How To Create An Easybelle History Database On A Microsoft Powerbook 2.5.2 (Windows) Introduction EASYLABEL 6 has several new features for saving the history of label formats. This history can include information about when label formats were edited and printed. In order to save this history,

More information

How to - Install EventTracker and Change Audit Agent

How to - Install EventTracker and Change Audit Agent How to - Install EventTracker and Change Audit Agent Agent Deployment User Manual Publication Date: Oct.17, 2015 EventTracker 8815 Centre Park Drive Columbia MD 21045 www.eventtracker.com Abstract EventTracker

More information

MS Active Sync: Sync with External Memory Files

MS Active Sync: Sync with External Memory Files Mindfire Solutions - 1 - MS Active Sync: Sync with External Memory Files Author: Rahul Gaur Mindfire Solutions, Mindfire Solutions - 2 - Table of Contents Overview 3 Target Audience 3 Conventions...3 1.

More information

Using Crystal Reports with VFP

Using Crystal Reports with VFP Using Crystal Reports with VFP Introduction to Crystal Reports One of the most important aspects of Visual FoxPro applications is reporting. Whether we provide canned reports or allow the user to design

More information

FileMaker 13. ODBC and JDBC Guide

FileMaker 13. ODBC and JDBC Guide FileMaker 13 ODBC and JDBC Guide 2004 2013 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and Bento are trademarks of FileMaker, Inc.

More information

SQL Server An Overview

SQL Server An Overview SQL Server An Overview SQL Server Microsoft SQL Server is designed to work effectively in a number of environments: As a two-tier or multi-tier client/server database system As a desktop database system

More information

Backing up with Windows 7

Backing up with Windows 7 Backing up your data should be a high priority; it is far too easy for computer failure to result in the loss of data. All hard drives will eventually fail, and (at the minimum) you should be prepared

More information

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you

More information

ODBC Overview and Information

ODBC Overview and Information Appendix A ODBC ODBC Overview and Information ODBC, (Open Database Connectivity), is Microsoft s strategic interface for accessing data in an environment of relational and non-relational database management

More information

Contents 1. Introduction 2. Security Considerations 3. Installation 4. Configuration 5. Uninstallation 6. Automated Bulk Enrollment 7.

Contents 1. Introduction 2. Security Considerations 3. Installation 4. Configuration 5. Uninstallation 6. Automated Bulk Enrollment 7. Contents 1. Introduction 2. Security Considerations 3. Installation 4. Configuration 5. Uninstallation 6. Automated Bulk Enrollment 7. Troubleshooting Introduction Adaxes Self-Service Client provides secure

More information

Crystal Reporting. Accounting and Management Products 9.6 CD

Crystal Reporting. Accounting and Management Products 9.6 CD Crystal Reporting Accounting and Management Products 9.6 CD NOTICE This document and the Sage Timberline Office software may be used only in accordance with the accompanying Sage Timberline Office End

More information

Release Notes For Versant/ODBC On Windows. Release 7.0.1.4

Release Notes For Versant/ODBC On Windows. Release 7.0.1.4 Release Notes For Versant/ODBC On Windows Release 7.0.1.4 Table of Contents CHAPTER 1: Release Notes... 3 Description of Release... 4 System Requirements... 4 Capabilities of the Drivers... 5 Restrictions

More information

Features - Microsoft Data Protection Manager

Features - Microsoft Data Protection Manager Page 1 of 63 Features - Microsoft Data Protection Manager TABLE OF CONTENTS OVERVIEW SYSTEM REQUIREMENTS - MICROSOFT DATA PROTECTION MANAGER INSTALLATION Install the Microsoft Data Protection Manager BACKUP

More information

Scheduling in SAS 9.3

Scheduling in SAS 9.3 Scheduling in SAS 9.3 SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc 2011. Scheduling in SAS 9.3. Cary, NC: SAS Institute Inc. Scheduling in SAS 9.3

More information

84-01-31 Windows NT Server Operating System Security Features Carol A. Siegel Payoff

84-01-31 Windows NT Server Operating System Security Features Carol A. Siegel Payoff 84-01-31 Windows NT Server Operating System Security Features Carol A. Siegel Payoff This article is designed to provide security administrators with a security checklist for going live with Windows NT.

More information

How to Manage a Windows NT Server Computer Remotely

How to Manage a Windows NT Server Computer Remotely MCSE Server Enterprise Using Windows NT Server Tools CHAPTER 14 Windows NT Server Tools................. 541 NT Server Tools for Windows 95 Computers........ 541 Installing NT Server tools on a Windows

More information

How To Install Outlook Addin On A 32 Bit Computer

How To Install Outlook Addin On A 32 Bit Computer Deployment Guide - Outlook Add-In www.exclaimer.com Contents About This Guide... 3 System Requirements... 4 Software... 4 Installation Files... 5 Deployment Preparation... 6 Installing the Add-In Manually...

More information

etrust Audit Using the Recorder for Check Point FireWall-1 1.5

etrust Audit Using the Recorder for Check Point FireWall-1 1.5 etrust Audit Using the Recorder for Check Point FireWall-1 1.5 This documentation and related computer software program (hereinafter referred to as the Documentation ) is for the end user s informational

More information

Remote Management System

Remote Management System RMS Copyright and Distribution Notice November 2009 Copyright 2009 ARTROMICK International, Inc. ALL RIGHTS RESERVED. Published 2009. Printed in the United States of America WARNING: ANY UNAUTHORIZED

More information

Hypercosm. Studio. www.hypercosm.com

Hypercosm. Studio. www.hypercosm.com Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks

More information

Team Foundation Server 2013 Installation Guide

Team Foundation Server 2013 Installation Guide Team Foundation Server 2013 Installation Guide Page 1 of 164 Team Foundation Server 2013 Installation Guide Benjamin Day benday@benday.com v1.1.0 May 28, 2014 Team Foundation Server 2013 Installation Guide

More information

OrgPublisher EChart Server Setup Guide

OrgPublisher EChart Server Setup Guide Table of Contents Table of Contents Introduction... 3 Role Requirements for Installation... 3 Prerequisites for Installation... 3 About OrgPublisher ECharts... 3 About EChart Rich Client Publishing...

More information

Bosch Video Management System Patch Setup

Bosch Video Management System Patch Setup Bosch Video Management System Patch Setup en Technical Service Note Bosch Video Management System Table of contents en 3 Table of contents 1 Introduction 4 2 Deliverables 5 2.1 The.msp File 5 2.2 The

More information

How to Install Multiple Monitoring Agents on a Microsoft Operating System. Version StoneGate Firewall/VPN 2.6 and SMC 3.2

How to Install Multiple Monitoring Agents on a Microsoft Operating System. Version StoneGate Firewall/VPN 2.6 and SMC 3.2 How to Install Multiple Monitoring Agents on a Microsoft Operating System Version StoneGate Firewall/VPN 2.6 and SMC 3.2 INTRODUCTION This document provides detailed instructions for installing multiple

More information

BusinessObjects Enterprise XI Release 2 Auditor s Guide

BusinessObjects Enterprise XI Release 2 Auditor s Guide BusinessObjects Enterprise XI Release 2 Auditor s Guide BusinessObjects Enterprise XI, Release 2.0 Windows and Unix 1 Patents Trademarks Copyright Third-party contributors Business Objects owns the following

More information

Sophos Enterprise Console Auditing user guide. Product version: 5.2

Sophos Enterprise Console Auditing user guide. Product version: 5.2 Sophos Enterprise Console Auditing user guide Product version: 5.2 Document date: January 2013 Contents 1 About this guide...3 2 About Sophos Auditing...4 3 Key steps in using Sophos Auditing...5 4 Ensure

More information

PAYMENTVAULT TM LONG TERM DATA STORAGE

PAYMENTVAULT TM LONG TERM DATA STORAGE PAYMENTVAULT TM LONG TERM DATA STORAGE Version 3.0 by Auric Systems International 1 July 2010 Copyright c 2010 Auric Systems International. All rights reserved. Contents 1 Overview 1 1.1 Platforms............................

More information

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2 SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1

More information

Knocker main application User manual

Knocker main application User manual Knocker main application User manual Author: Jaroslav Tykal Application: Knocker.exe Document Main application Page 1/18 U Content: 1 START APPLICATION... 3 1.1 CONNECTION TO DATABASE... 3 1.2 MODULE DEFINITION...

More information

How To Understand The Error Codes On A Crystal Reports Print Engine

How To Understand The Error Codes On A Crystal Reports Print Engine Overview Error Codes This document lists all the error codes and the descriptions that the Crystal Reports Print Engine generates. PE_ERR_NOTENOUGHMEMORY (500) There is not enough memory available to complete

More information

System Center 2012 R2 SP1 Configuration Manager & Microsoft Intune

System Center 2012 R2 SP1 Configuration Manager & Microsoft Intune 2015 System Center 2012 R2 SP1 Configuration Manager & Microsoft Intune DEPLOYING MICROSOFT OFFICE 365 PROFESSIONAL PLUS RONNI PEDERSEN & HANS CHRISTIAN ANDERSEN RONNIPEDERSEN.COM Microsoft MVP: Enterprise

More information

WS_FTP Server. User s Guide. Software Version 3.1. Ipswitch, Inc.

WS_FTP Server. User s Guide. Software Version 3.1. Ipswitch, Inc. User s Guide Software Version 3.1 Ipswitch, Inc. Ipswitch, Inc. Phone: 781-676-5700 81 Hartwell Ave Web: http://www.ipswitch.com Lexington, MA 02421-3127 The information in this document is subject to

More information

Legal Notes. Regarding Trademarks. 2011 KYOCERA MITA Corporation

Legal Notes. Regarding Trademarks. 2011 KYOCERA MITA Corporation Legal Notes Unauthorized reproduction of all or part of this guide is prohibited. The information in this guide is subject to change without notice. We cannot be held liable for any problems arising from

More information

5.6.3 Lab: Registry Backup and Recovery in Windows XP

5.6.3 Lab: Registry Backup and Recovery in Windows XP 5.6.3 Lab: Registry Backup and Recovery in Windows XP Introduction Print and complete this lab. In this lab, you will back up a computer registry. You will also perform a recovery of a computer registry.

More information

Version 9.4 Exchange Module Guide v. 1.0 October 29, 2008

Version 9.4 Exchange Module Guide v. 1.0 October 29, 2008 Version 9.4 Exchange Module Guide v. 1.0 October 29, 2008 RightFax 9.4 Microsoft Exchange Module Guide ii Edition Information in this document applies to version 9.4 of the RightFax Exchange Module Guide.

More information

Enterprise Remote Control 5.6 Manual

Enterprise Remote Control 5.6 Manual Enterprise Remote Control 5.6 Manual Solutions for Network Administrators Copyright 2015, IntelliAdmin, LLC Revision 3/26/2015 http://www.intelliadmin.com Page 1 Table of Contents What is Enterprise Remote

More information

Jetico Central Manager. Administrator Guide

Jetico Central Manager. Administrator Guide Jetico Central Manager Administrator Guide Introduction Deployment, updating and control of client software can be a time consuming and expensive task for companies and organizations because of the number

More information

Table Of Contents. iii

Table Of Contents. iii PASSOLO Handbook Table Of Contents General... 1 Content Overview... 1 Typographic Conventions... 2 First Steps... 3 First steps... 3 The Welcome dialog... 3 User login... 4 PASSOLO Projects... 5 Overview...

More information

3 Setting up Databases on a Microsoft SQL 7.0 Server

3 Setting up Databases on a Microsoft SQL 7.0 Server 3 Setting up Databases on a Microsoft SQL 7.0 Server Overview of the Installation Process To set up GoldMine properly, you must follow a sequence of steps to install GoldMine s program files, and the other

More information

DMP V2.0.1 Installation and Upgrade Reference

DMP V2.0.1 Installation and Upgrade Reference DMP V2.0.1 Installation and Upgrade Reference Page 1 of 40 Table of Contents Overview... 3 Compatibility Issues with Previous DMP Versions... 3 DMP V2.0.1 Installation... 3 Sybase CD... 3 Installed Components...

More information

Lieberman Software. RSA SecurID Ready Implementation Guide. Account Reset Console. Partner Information. Last Modified: March 20 th, 2012

Lieberman Software. RSA SecurID Ready Implementation Guide. Account Reset Console. Partner Information. Last Modified: March 20 th, 2012 RSA SecurID Ready Implementation Guide Last Modified: March 20 th, 2012 Partner Information Product Information Partner Name Web Site Product Name Lieberman Software Corporation www.liebsoft.com Version

More information

Errors That Can Occur When You re Running a Report From Tigerpaw s SQL-based System (Version 9 and Above) Modified 10/2/2008

Errors That Can Occur When You re Running a Report From Tigerpaw s SQL-based System (Version 9 and Above) Modified 10/2/2008 Errors That Can Occur When You re Running a Report From Tigerpaw s SQL-based System (Version 9 and Above) Modified 10/2/2008 1 Introduction The following is an explanation of some errors you might encounter

More information

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping 3.1.1 Constants, variables and data types Understand what is mean by terms data and information Be able to describe the difference

More information

Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide

Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide Windows 2000, Windows Server 2003 5.0 11293743 Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide Copyright

More information

Using Microsoft Visual Studio 2010. API Reference

Using Microsoft Visual Studio 2010. API Reference 2010 API Reference Published: 2014-02-19 SWD-20140219103929387 Contents 1... 4 Key features of the Visual Studio plug-in... 4 Get started...5 Request a vendor account... 5 Get code signing and debug token

More information

STATISTICA VERSION 9 STATISTICA ENTERPRISE INSTALLATION INSTRUCTIONS FOR USE WITH TERMINAL SERVER

STATISTICA VERSION 9 STATISTICA ENTERPRISE INSTALLATION INSTRUCTIONS FOR USE WITH TERMINAL SERVER Notes: STATISTICA VERSION 9 STATISTICA ENTERPRISE INSTALLATION INSTRUCTIONS FOR USE WITH TERMINAL SERVER 1. These instructions focus on installation on Windows Terminal Server (WTS), but are applicable

More information

Windows PowerShell Cookbook

Windows PowerShell Cookbook Windows PowerShell Cookbook Lee Holmes O'REILLY' Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Table of Contents Foreword Preface xvii xxi Part I. Tour A Guided Tour of Windows PowerShell

More information

Oracle Enterprise Manager

Oracle Enterprise Manager Oracle Enterprise Manager System Monitoring Plug-in for Oracle TimesTen In-Memory Database Installation Guide Release 11.2.1 E13081-02 June 2009 This document was first written and published in November

More information

Windows Administration Terminal Services, AD and the Windows Registry. INLS 576 Spring 2011 Tuesday, February 24, 2011

Windows Administration Terminal Services, AD and the Windows Registry. INLS 576 Spring 2011 Tuesday, February 24, 2011 Windows Administration Terminal Services, AD and the Windows Registry INLS 576 Spring 2011 Tuesday, February 24, 2011 Terminal Services Uses RDP (Remote Desktop Protocol), relies on TCP/IP, and falls under

More information

Acknowledgments. About the Author

Acknowledgments. About the Author Acknowledgments About the Author 1: Arrays and Array Manipulation. CREATING AND USING ARRAYS IN VISUAL BASIC Sorting Arrays WORKING WITH SORTED ARRAYS Finding an Element with a Specific Value in a Sorted

More information

Using RADIUS Agent for Transparent User Identification

Using RADIUS Agent for Transparent User Identification Using RADIUS Agent for Transparent User Identification Using RADIUS Agent Web Security Solutions Version 7.7, 7.8 Websense RADIUS Agent works together with the RADIUS server and RADIUS clients in your

More information

Sitecore InDesign Connector 1.1

Sitecore InDesign Connector 1.1 Sitecore Adaptive Print Studio Sitecore InDesign Connector 1.1 - User Manual, October 2, 2012 Sitecore InDesign Connector 1.1 User Manual Creating InDesign Documents with Sitecore CMS User Manual Page

More information

Access Control and Audit Trail Software

Access Control and Audit Trail Software Varian, Inc. 2700 Mitchell Drive Walnut Creek, CA 94598-1675/USA Access Control and Audit Trail Software Operation Manual Varian, Inc. 2002 03-914941-00:3 Table of Contents Introduction... 1 Access Control

More information

BarTender s.net SDKs

BarTender s.net SDKs The World's Leading Software for Label, Barcode, RFID & Card Printing White Paper BarTender s.net SDKs Programmatically Controlling BarTender using C# and VB.NET Contents Overview of BarTender.NET SDKs...

More information

Mailgate Ltd. MailGate Spam Filter User Manual

Mailgate Ltd. MailGate Spam Filter User Manual Mailgate Ltd. MailGate Spam Filter User Manual Microsoft is a registered trademark and Windows 95, Windows 98 and Windows NT are trademarks of Microsoft Corporation. Copyright 2001 Mailgate Ltd. All rights

More information

QAD Enterprise Applications. Training Guide Demand Management 6.1 Technical Training

QAD Enterprise Applications. Training Guide Demand Management 6.1 Technical Training QAD Enterprise Applications Training Guide Demand Management 6.1 Technical Training 70-3248-6.1 QAD Enterprise Applications February 2012 This document contains proprietary information that is protected

More information

Management Utilities Configuration for UAC Environments

Management Utilities Configuration for UAC Environments Management Utilities Configuration for UAC Environments For optimal use of SyAM Management Utilities, Windows client machines should be configured with User Account Control disabled or set to the least

More information

CONFIGURING TARGET ACTIVE DIRECTORY DOMAIN FOR AUDIT BY NETWRIX AUDITOR

CONFIGURING TARGET ACTIVE DIRECTORY DOMAIN FOR AUDIT BY NETWRIX AUDITOR CONFIGURING TARGET ACTIVE DIRECTORY DOMAIN FOR AUDIT BY NETWRIX AUDITOR TECHNICAL ARTICLE Product Version: 5.0 July 2013. Legal Notice The information in this publication is furnished for information use

More information

Using SQL Server Management Studio

Using SQL Server Management Studio Using SQL Server Management Studio Microsoft SQL Server Management Studio 2005 is a graphical tool for database designer or programmer. With SQL Server Management Studio 2005 you can: Create databases

More information

FileMaker 11. ODBC and JDBC Guide

FileMaker 11. ODBC and JDBC Guide FileMaker 11 ODBC and JDBC Guide 2004 2010 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker, Inc. registered

More information