{"id":437,"date":"2008-02-19T03:21:53","date_gmt":"2008-02-19T01:21:53","guid":{"rendered":"http:\/\/www.corelan.be:8800\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/"},"modified":"2008-02-19T03:21:53","modified_gmt":"2008-02-19T01:21:53","slug":"monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor","status":"publish","type":"post","link":"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/","title":{"rendered":"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor)"},"content":{"rendered":"<div class=\"ExternalClassC3D6093858254713AE01523B22D3CCF7\">\n<p>One of the reasons why the company I work at has taken the decision to implement Operations Manager is because the daily task to go through a pile of interfacing and backup log files became too time consuming and demotivating for the people involved. Armed with Operations Manager and a basic vbscript, I have set up a couple of monitors that now have automated the entire process. <\/p>\n<p>These are the components that I have set up in order to get it to work : <\/p>\n<ul>\n<li>I created a vbscript that parses to one or more robocopy log files. The only real limitation of the script in its current form is that it only goes through the first set of robocopy output in the log file. So if you have the habit to append the output of multiple robocopy scripts, or multiple instances of the same script into the same log file, you'll either have to change the script, or you'll have to change your robocopy scripts. <\/li>\n<li>Define what you want to monitor : what is the log file name, file location. Are you satisfied with the way the script will determine whether the log file is healthy or not (see later) ? Determine the right time to check the log file (don't check the log file at a time when you know the robocopy script is still writing in the file), etc. <\/li>\n<li>I created a monitor that uses the script and uses data that is passed back from the vbscript to OpsMgr to determine whether a log file (and the corresponding robocopy process) can be considered healthy or not. <\/li>\n<li>I set up alerting, including some data about the log file(s) in the alert description field. <\/li>\n<\/ul>\n<h4>The script <\/h4>\n<p>You can download the latest copy of the script from here :<br \/>\n<be>[download id=\"6\"]       <\/p>\n<p>These are the most important pieces <\/p>\n<ol>\n<li>\n<div>The script checks if you have provided at least one parameter. If not, an event will be logged in the event log and the script will quit. <\/div>\n<p>This is what the event will look like :&#160;&#160; <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr1.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"196\" alt=\"021908_2100_MonitoringR1\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr1-thumb.png\" width=\"290\" \/><\/a>&#160;&#160; <\/p>\n<\/li>\n<li>Every parameter stands for a log file. You can specify any number of log files (well, &quot;any&quot; may be to broad &#8230; I'm sure OpsMgr has some limitations, but I ran one script against up to 10 log files, without problems). Ideally, I would recommend using separate monitors for log files that are not related to other log files. It's a bit of work to set up, but once it is set up, you'll never need to touch your monitor config again. Note : you cannot use wildcards for specifying the log files. You can either modify the script to accept wildcards, or you should specify all of the log files individually as parameters to the script. <\/li>\n<li>\n<div>Each log file is opened, the header of the robocopy log file is skipped, and the log file is read all the way until it finds the footer (the set of data that contains the information about the number of files, dirs and bytes that have been copied, skipped, failed, and so on. This information is parsed from the log file and stored in unique variables. Because the script allows you to process multiple log files, a sequence number is appended to each of these variables. So the variables that related to the first log file, will be appended with number 1 (as parameter name). These are the most important variables : <\/div>\n<ol>\n<li>\n<div>For each log file : 23 variables <\/div>\n<ol>\n<li>Logfilefoundx (where x = sequence number of the log file) (true or false) <\/li>\n<li>Finishedx&#160;&#160;&#160;&#160;&#160;&#160;&#160; (true or false) <\/li>\n<li>NrOfDaysAgox&#160;&#160;&#160;&#160;&#160;&#160;&#160; (numeric) (set to -1 if file was not found) <\/li>\n<li>TotalNrOfBytesx&#160;&#160;&#160; (string) <\/li>\n<li>TotalNrOfDirsx&#160;&#160;&#160;&#160;&#160;&#160;&#160; (numeric) <\/li>\n<li>TotalNrOfFilesx&#160;&#160;&#160;&#160;&#160;&#160;&#160; (numeric) <\/li>\n<li>NrOfCopiedBytesx&#160;&#160;&#160; (string) <\/li>\n<li>NrOfCopiedDirsx&#160;&#160;&#160; (numeric) <\/li>\n<li>NrOfCopiedFilesx&#160;&#160;&#160; (numeric) <\/li>\n<li>NrOfSkippedBytesx&#160;&#160;&#160; (string) <\/li>\n<li>NrOfSkippedDirsx&#160;&#160;&#160; (numeric) <\/li>\n<li>NrOfSkippedFilesx&#160;&#160;&#160; (numeric) <\/li>\n<li>NrOfMismatchBytesx&#160;&#160;&#160; (string) <\/li>\n<li>NrOfMismatchDirsx&#160;&#160;&#160; (numeric) <\/li>\n<li>NrOfMismatchFilesx&#160;&#160;&#160; (numeric) <\/li>\n<li>NrOfFailedBytesx&#160;&#160;&#160; (string) <\/li>\n<li>NrOfFailedFilesx&#160;&#160;&#160; (numeric) <\/li>\n<li>NrOfFailedDirsx&#160;&#160;&#160; (numeric) <\/li>\n<li>NrOfExtraBytesx&#160;&#160;&#160; (string) <\/li>\n<li>NrOfExtraDirsx&#160;&#160;&#160;&#160;&#160;&#160;&#160; (numeric) <\/li>\n<li>NrOfExtraFilesx&#160;&#160;&#160;&#160;&#160;&#160;&#160; (numeric) <\/li>\n<li>LogFileNamex&#160;&#160;&#160;&#160;&#160;&#160;&#160; (string) <\/li>\n<li>\n<div>LastRunTimex&#160;&#160;&#160;&#160;&#160;&#160;&#160; (string) <\/div>\n<p>&#160;&#160;&#160;&#160; <\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<div>General data (for all of the log files) <\/div>\n<ol>\n<li>TotalFailedDirs&#160;&#160;&#160;&#160;&#160;&#160;&#160; (numeric) <\/li>\n<li>TotalFailedFiles&#160;&#160;&#160; (numeric) <\/li>\n<li>AllLogFilesFound&#160;&#160;&#160; (true or false) <\/li>\n<li>AllFinished&#160;&#160;&#160;&#160;&#160;&#160;&#160; (true or false) <\/li>\n<li>FailedLogs&#160;&#160;&#160;&#160;&#160;&#160;&#160; (string) <\/li>\n<li>\n<div>Information&#160;&#160;&#160; (string containing some detailed information about all of the log files. Useful in alert description fields. <\/div>\n<p>&#160;<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<div>A logfile is considered to be a &quot;failed&quot; logfile if <\/div>\n<ol>\n<li>It contains failed files <\/li>\n<li>It contains failed dirs <\/li>\n<li>It is older than 3 days (hardcoded in the script &#8211; change this value to whatever you want) <\/li>\n<li>It cannot be found <\/li>\n<li>It does not contain the footer (so it has not completed yet) <\/li>\n<\/ol>\n<p style=\"margin-left: 18pt\">If you want different behavior, you'll have to change the logic in the script. <\/p>\n<\/li>\n<li>After processing all log files, the property bag is sent back to OpsMgr. If you only monitor 1 log file, 27 parameters will be passed back. You can use any of these 27 parameters in the expression or in the alert description, giving you maximum flexibility <\/li>\n<\/ol>\n<p>&#160;&#160;&#160;&#160; <\/p>\n<h4>Operations Manager configuration : set up the monitor <\/h4>\n<p>Log file : c:\\robocopy.log <\/p>\n<p>Open authoring, go the monitoring, and set the scope to &quot;Windows Server 2003 computer&quot; (or any other group that contains computer objects) <\/p>\n<p>Open &quot;Entity Health&quot; &#8211; &quot;Availability&quot;, right click and choose &quot;Create a monitor&quot;. Select &quot;Unit Monitor&quot; <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr2.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"198\" alt=\"021908_2100_MonitoringR2\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr2-thumb.png\" width=\"330\" \/><\/a> <\/p>\n<p>Select &quot;Scripting&quot; &#8211; &quot;Generic&quot; &#8211; Timed Script Two State Monitor, and select a custom management pack <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr3.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"302\" alt=\"021908_2100_MonitoringR3\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr3-thumb.png\" width=\"317\" \/><\/a> <\/p>\n<p>Specify a good name for your monitor, verify that the target is set to Windows Server 2003 computer (or any other target containing computer objects) and make sure the monitor is <strong>disabled<\/strong> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr4.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"305\" alt=\"021908_2100_MonitoringR4\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr4-thumb.png\" width=\"353\" \/><\/a> <\/p>\n<p>Configure the schedule. I'll set the script to run every 15 minutes, for testing purposes <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr5.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"76\" alt=\"021908_2100_MonitoringR5\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr5-thumb.png\" width=\"327\" \/><\/a> <\/p>\n<p>Define the script filename (don't forget the .vbs extension) and set a timeout. <\/p>\n<p>Paste the entire script (see above) in the Script: field <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr6.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"285\" alt=\"021908_2100_MonitoringR6\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr6-thumb.png\" width=\"319\" \/><\/a> <\/p>\n<p>Click the &quot;parameters&quot; field and fill out the full path to the log file(s). Put the path between double quotes, and separate multiple logfiles with a space. <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr7.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"141\" alt=\"021908_2100_MonitoringR7\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr7-thumb.png\" width=\"369\" \/><\/a> <\/p>\n<p>&#160;&#160;&#160;&#160; <\/p>\n<p>Set the unhealthy expression. I'll use a more or less generic trap : if the variable &quot;FailedLogs&quot; contains a dot (.), then it contains a reference to at least one log file, so the monitor should go into unhealthy state. <\/p>\n<p>This is how you should reference a variable in the expression : <strong>Property[@Name='FailedLogs']<\/strong> <\/p>\n<p>My unhealthy expression looks like this : <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr8.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"125\" alt=\"021908_2100_MonitoringR8\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr8-thumb.png\" width=\"326\" \/><\/a> <\/p>\n<p>The healthy expression looks like this : <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr9.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"144\" alt=\"021908_2100_MonitoringR9\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr9-thumb.png\" width=\"335\" \/><\/a> <\/p>\n<p>Choose the health state <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr10.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"139\" alt=\"021908_2100_MonitoringR10\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr10-thumb.png\" width=\"349\" \/><\/a> <\/p>\n<p>Set alert settings : <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr11.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"219\" alt=\"021908_2100_MonitoringR11\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr11-thumb.png\" width=\"355\" \/><\/a> <\/p>\n<p>If you are only monitoring one log file with this monitor, you can get some of the individual log file variables : <\/p>\n<p><strong>Logfile name : $Data\/Context\/Property[@Name='LogFileName1']$        <br \/>Log file found : $Data\/Context\/Property[@Name='LogFileFound1']$         <br \/>Log file finished : $Data\/Context\/Property[@Name='Finished1']$         <br \/>Age of logfile (in days) : $Data\/Context\/Property[@Name='NrOfDaysAgo1']$         <br \/>Nr of failed file copy actions logged : $Data\/Context\/Property[@Name='NrOfFailedFiles1']$         <br \/>Nr of failed dir copy actions logged : $Data\/Context\/Property[@Name='NrOfFailedDirs1']$<\/strong> <\/p>\n<p>If you have more than one logfile, you can use <strong>$Data\/Context\/Property[@Name='Information']$<\/strong> <\/p>\n<p>The number of variables that can be used in the alert description field is limited to 10 (OpsMgr limitation), so if you are monitoring multiple log files, I'd recommend only using some of the general variables and not individual log file variables. <\/p>\n<p>Save the monitor <\/p>\n<p>Create an override and set the monitor to run on the server that hosts the log file. <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr12.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"134\" alt=\"021908_2100_MonitoringR12\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr12-thumb.png\" width=\"396\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr13.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"280\" alt=\"021908_2100_MonitoringR13\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr13-thumb.png\" width=\"252\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr14.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"166\" alt=\"021908_2100_MonitoringR14\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr14-thumb.png\" width=\"351\" \/><\/a> <\/p>\n<p>Save the override <\/p>\n<p>Wait until the Management Pack gets distributed and the script kicks in. <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr15.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"213\" alt=\"021908_2100_MonitoringR15\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr15-thumb.png\" width=\"322\" \/><\/a> <\/p>\n<p>&#160;&#160;&#160;&#160; <\/p>\n<p>Have a look at the event log. You should see 2 Health Service Events (under Operations Manager) with Event ID 101, indicating the start and completion of the script. <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr16.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"206\" alt=\"021908_2100_MonitoringR16\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr16-thumb.png\" width=\"346\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr17.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"242\" alt=\"021908_2100_MonitoringR17\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr17-thumb.png\" width=\"366\" \/><\/a> <\/p>\n<p>(since the file in my example is 5 days old, the field &quot;Log files with errors&quot; lists d:\\robocopy.log. As a result, the health state of my machine changes to warning. <\/p>\n<p>If you open the health explorer for the computer, then you should see the monitor listed and enabled. If you go to the state change events view, you can see all of the parameters that were passed back as part of the property bag. The NrOfDaysAgo1 field indicates 5, which triggered the warning in my example. <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr18.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"578\" alt=\"021908_2100_MonitoringR18\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr18-thumb.png\" width=\"382\" \/><\/a> <\/p>\n<p>If the monitor indicates that there was a problem with the log file, then you'll get the following message in OpsMgr: <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr19.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"208\" alt=\"021908_2100_MonitoringR19\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr19-thumb.png\" width=\"395\" \/><\/a> <\/p>\n<p>If you click 'View additional knowledge&quot; and open the Alert Context tabsheet, you'll see all of the variables as well : <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr20.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" height=\"445\" alt=\"021908_2100_MonitoringR20\" src=\"\/wp-content\/uploads\/2008\/09\/021908-2100-monitoringr20-thumb.png\" width=\"368\" \/><\/a> <\/p>\n<p>&#160;&#160;&#160;&#160; <\/p>\n<p>If the problem gets solved, the state should return to healthy automatically (depending on how you've set up the alerting section of this monitor) <\/p>\n<p>&#160;&#160;&#160;&#160; <\/p>\n<p>&#160;&#160;&#160;&#160; <\/p>\n<p>&#160;&#160;&#160;&#160; <\/p>\n<p>&#160;&#160; <\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>One of the reasons why the company I work at has taken the decision to implement Operations Manager is because the daily task to go through a pile of interfacing and backup log files became too time consuming and demotivating for the people involved. Armed with Operations Manager and a basic vbscript, I have set &hellip; <a href=\"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> \"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor)\"<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[634,26],"tags":[3737,633,632],"class_list":["post-437","post","type-post","status-publish","format-standard","hentry","category-operations-manager","category-windows-server","tag-vbscript","tag-opsmgr","tag-monitor"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor) - Corelan | Exploit Development &amp; Vulnerability Research<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor) - Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"og:description\" content=\"One of the reasons why the company I work at has taken the decision to implement Operations Manager is because the daily task to go through a pile of interfacing and backup log files became too time consuming and demotivating for the people involved. Armed with Operations Manager and a basic vbscript, I have set &hellip; Continue reading &quot;Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor)&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/\" \/>\n<meta property=\"og:site_name\" content=\"Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/corelanconsulting\" \/>\n<meta property=\"article:published_time\" content=\"2008-02-19T01:21:53+00:00\" \/>\n<meta name=\"author\" content=\"corelanc0d3r\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@corelanc0d3r\" \/>\n<meta name=\"twitter:site\" content=\"@corelanc0d3r\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/02\\\/19\\\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/02\\\/19\\\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\\\/\"},\"author\":{\"name\":\"corelanc0d3r\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\"},\"headline\":\"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor)\",\"datePublished\":\"2008-02-19T01:21:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/02\\\/19\\\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\\\/\"},\"wordCount\":1393,\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"keywords\":[\"vbscript\",\"opsmgr\",\"monitor\"],\"articleSection\":[\"OpsMgr\",\"Windows Server\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/02\\\/19\\\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/02\\\/19\\\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\\\/\",\"name\":\"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor) - Corelan | Exploit Development &amp; Vulnerability Research\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\"},\"datePublished\":\"2008-02-19T01:21:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/02\\\/19\\\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/02\\\/19\\\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/02\\\/19\\\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.corelan.be\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"name\":\"Corelan CyberSecurity Research\",\"description\":\"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.corelan.be\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\",\"name\":\"Corelan CyberSecurity Research\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"contentUrl\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"width\":200,\"height\":200,\"caption\":\"Corelan CyberSecurity Research\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/corelanconsulting\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\",\"https:\\\/\\\/x.com\\\/corelanconsulting\",\"https:\\\/\\\/instagram.com\\\/corelanconsult\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\",\"name\":\"corelanc0d3r\",\"pronouns\":\"he\\\/him\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"caption\":\"corelanc0d3r\"},\"description\":\"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.\",\"sameAs\":[\"https:\\\/\\\/www.corelan-training.com\",\"https:\\\/\\\/instagram.com\\\/corelanc0d3r\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/petervaneeckhoutte\\\/\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\"],\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/author\\\/admin0\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor) - Corelan | Exploit Development &amp; Vulnerability Research","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/","og_locale":"en_US","og_type":"article","og_title":"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor) - Corelan | Exploit Development &amp; Vulnerability Research","og_description":"One of the reasons why the company I work at has taken the decision to implement Operations Manager is because the daily task to go through a pile of interfacing and backup log files became too time consuming and demotivating for the people involved. Armed with Operations Manager and a basic vbscript, I have set &hellip; Continue reading \"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor)\"","og_url":"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/","og_site_name":"Corelan | Exploit Development &amp; Vulnerability Research","article_publisher":"https:\/\/www.facebook.com\/corelanconsulting","article_published_time":"2008-02-19T01:21:53+00:00","author":"corelanc0d3r","twitter_card":"summary_large_image","twitter_creator":"@corelanc0d3r","twitter_site":"@corelanc0d3r","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/#article","isPartOf":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/"},"author":{"name":"corelanc0d3r","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f"},"headline":"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor)","datePublished":"2008-02-19T01:21:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/"},"wordCount":1393,"publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"keywords":["vbscript","opsmgr","monitor"],"articleSection":["OpsMgr","Windows Server"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/","url":"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/","name":"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor) - Corelan | Exploit Development &amp; Vulnerability Research","isPartOf":{"@id":"https:\/\/www.corelan.be\/#website"},"datePublished":"2008-02-19T01:21:53+00:00","breadcrumb":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.corelan.be\/index.php\/2008\/02\/19\/monitoring-robocopy-logfiles-with-operations-manager-2007-vbscript-monitor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.corelan.be\/"},{"@type":"ListItem","position":2,"name":"Monitoring Robocopy logfiles with Operations Manager 2007 (vbscript monitor)"}]},{"@type":"WebSite","@id":"https:\/\/www.corelan.be\/#website","url":"https:\/\/www.corelan.be\/","name":"Corelan CyberSecurity Research","description":"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.","publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.corelan.be\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.corelan.be\/#organization","name":"Corelan CyberSecurity Research","url":"https:\/\/www.corelan.be\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/","url":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","contentUrl":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","width":200,"height":200,"caption":"Corelan CyberSecurity Research"},"image":{"@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/corelanconsulting","https:\/\/x.com\/corelanc0d3r","https:\/\/x.com\/corelanconsulting","https:\/\/instagram.com\/corelanconsult"]},{"@type":"Person","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f","name":"corelanc0d3r","pronouns":"he\/him","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","url":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","caption":"corelanc0d3r"},"description":"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.","sameAs":["https:\/\/www.corelan-training.com","https:\/\/instagram.com\/corelanc0d3r","https:\/\/www.linkedin.com\/in\/petervaneeckhoutte\/","https:\/\/x.com\/corelanc0d3r"],"url":"https:\/\/www.corelan.be\/index.php\/author\/admin0\/"}]}},"views":4228,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/comments?post=437"}],"version-history":[{"count":0,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/437\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/media?parent=437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/categories?post=437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/tags?post=437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}