CSS to CSM migration and http health checking

Hi All,
I hope someone can help me here.
We are migrating number of web services to new DC and I have some issue migrating load balancing from CSS 11501 to CSM module in 6509 within new environment.
Here is config from CSS:
content WS1
vip address 192.168.1.125
add service 192.168.1.105-80-web1
add service 192.168.1.115-80-web2
port 80
protocol tcp
balance leastconn
active
service 192.168.1.105-80-web1
ip address 192.168.1.105
keepalive port 80
keepalive uri "/URIDirect_Default.aspx"
keepalive method get
keepalive type http
keepalive hash "44baffe2618ba829a6b14ad9bccfdcf4"
active
service 192.168.1.115-80-web2
ip address 192.168.1.115
keepalive port 80
keepalive uri "/URIDirect_Default.aspx"
keepalive method get
keepalive type http
keepalive hash "f41469e68c42273622774ec706e3ddcf"
active
With this config CSS uses URI health check to determine whether or not the app live on the nodes of the farm (CSS checks for certain file's existing in app's home folder by checking the hash value of the file name - I beleive so). This is also handy for windows team which remove/rename checked file on server when want to remove it from web farm.
However, reading manuals for CSM I can not see http health probe checking for hash, but only for return status.
Can someone help me with how can I replicate above configuration using CSM.
Regards,
Sasa

Sasa,
the hash corresponds to a hash of all the text contained in the html page.
This is to guarantee that the page was not modified.
This is some kind of security in case a hacker would alter your pages.
The CSM does not have this feature.
But honestly, you usually get more troubles with this option than benefits.
If the Apps team wants to have the server down while changing files, they can I guess turn off the server themselves before doing changes. And then re-enable after.
Gilles.

Similar Messages

  • A10 Network and Siebel HTTP Health Check @ Application Tier

    Hello,
    I have a simple question around using the A10 network appliance and performing a simple HTTP Get Health, from the third party load balance, check against the ScBroker component. For example, within the A10 we would create a check check using the following:  This is for third party load balancing at the application tier.  I have performed this type of health check on other competitor devices such as F5, Cisco etc.
    //IP Address of Siebel Application Server/Siebel Enterprise Name/ScBroker.
    When I test the below HTTP Get health check both inside and outside the load balancer (using any web browser) I receive about 15-20 errors before receiving a ScBroker Status "Ok" message.  This is a older version of Siebel (8.0.0.12) and I have double checked the Connection Forward algorithm for SCBroker which is set to "LL" least laden. The only other option would be to perform a health check at the TCP (SCBroker port 2321) layer which can cause multiple LB errors and leave connections missed at the port 2321 SCBroker layer. Essentially, A HTTP Get Health check at the application layer is the way to go. Has anyone experienced this error on the HTTP Get Health check?  If so, what was the resolution for the health check.

    Hi zryan,
    Your question is not clear enough.
    If you want to use create client for transporting HTTP or SMTP messages, you can utilize these built-in classes in .Net Framework:
    WebClient,
    HttpWebRequest Class
    SmtpClient Class
    If you mean you want to intercept the network messages using C# code, please note the topic in this thread:
    Contributors: How to avoid aiding
    the development of malicious code
    .Net Framework doesn't contain built-in objects for you to automatically detect the protocol of the network message.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • 6500 CSM-S and HTTP compression

    Is there any plans for the 6500 CSM-S module to support http compression along with ssl offload and SLB features?

    John,
    No plans at this time, due to the CSM not having the CPU power to do so.
    The CSS product line with version 8 code and integrated ssl module now has this feature.
    Peter

  • CSS and Oracle10gAS webcache health check

    Both CSS LBR's HEAD and GET health check requests failed for http://ip.address.for.the.server/_oracle_http_server_webcache_static_.html, a magic URL from Oracle10gAS webcache that only resides in memory (no file exists on disk). But I can use browser or gui-less browser 'elinks' and access it via IP to that URL with no problem.
    Has anyone here encountered this issue? Does anyone have solution for this?
    Many thanks,

    WCCP Version 2 enables a series of Content Engines, called a Content Engine cluster, to connect to multiple routers. This feature provides redundancy and a more distributed architecture for instances when a Content Engine needs to connect to a large number of interfaces. This strategy also has the benefit of keeping all the Content Engines in a single cluster, avoiding unnecessary duplication of web pages across several clusters.
    http://www.cisco.com/univercd/cc/td/doc/product/webscale/webcache/ce31/config31/appx_b.htm

  • Exchange 2013 Daily Health Check Script

    Hi All,
    I recently migrated from Exchange 2010 to Exchange 2013. Prior to the migration the daily health check was being used daily to send my team and I the HTML report.
    I have downloaded the new v1.07 script and followed the same rules and settings I used for Exchange 2010 when setting up the script.
    The script only runs now via Exchange shell and does not send the HTML report and I am unable to run the script via a batch file that called the ./ps1 file in a windows command prompt and am also unable to as a result, use the task scheduler to schedule
    this task.
    I am desperately in need of getting this morning report as its been so useful, I cant do without it now.
    Any advise would be greatly appreciated.
    Thanks so much
    Alton

    So, could you please check this link, it provide the solution to check the daily health of exchange 2013 :
    http://exchangeserverpro.com/troubleshooting-exchange-server-2013-with-test-cmdlets/

  • Dynamic menu css not displaying correctly in https

    Hello,
    Need help! I'm trying to get my menu to display properly in https but no luck so far. (Chrome and IE) Please let me know if there is a solution. Thank you.
    good menu look http://winxed.businesscatalyst.com/
    bad menu look https://winxed.worldsecuresystems.com/events/eyelash-extension-extensive-class-houston

    Just drop a zoom:100% style on the link, and IE will get it
    right.
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    ==================
    "TC2112" <[email protected]> wrote in
    message
    news:fh2nt4$4u8$[email protected]..
    > Hello,
    >
    > The problem is with IE, not Firefox.
    > The content of your menu link tags is a clear gif image
    that is the same
    > height as the background images applied to the link tag
    that change on
    > mouseover.
    > Even though it looks like you want it to in IE, IE is
    actually rendering
    > your
    > code incorrectly.
    > Firefox is rendering your code exactly as it should.
    >
    > Your background images are applied by CSS to the link,
    not the image
    > within.
    > In standards compliant browsers like Firefox, the height
    of link
    > attributes
    > such as background and border are determined by the font
    size or line
    > height
    > that applies to that link, even if there is no text in
    the link.
    > As a test, you can add font-size:38px (the height of
    your background
    > images)
    > to "table.menu" in your CSS and you'll see your entire
    link background
    > images
    > in FF.
    > IE incorrectly streches the link background to the
    height of the image
    > within
    > within the link.
    > IE does the same thing to borders if they are applied to
    just the "a" tag
    > and
    > not to "a img" in the CSS.
    >
    > A quick fix:
    >
    > table.menu { width:186px; margin-top:6px;
    > line-height: 38px; }
    >
    > A better fix and some great information:
    >
    >
    >
    >
    http://projectseven.com/tutorials/css/uberlinks/index.htm
    >
    > and:
    >
    >
    http://css.maxdesign.com.au/listamatic/
    >
    > Hope that helps,
    >
    > Take care,
    > Tim
    >

  • Migrating CSS to CSM

    Hi,
    I am a newbee. I am migrating from CSS to CSM. I have attached conversion config. Can some one please verify that I am doing the right conversion?
    Thanks

    actually there is a mistake.
    Here is what it should look like
    real XX1
    address x.x.x.x
    inservice
    real XX2
    address x.x.x.x
    inservice
    serverfarm YYY
    nat server
    no nat client
    real name XX1
    inservice
    real name XX2
    inservice
    probe tcp
    sticky 1 ssl timeout 60
    vserver YYY
    virtual xx.xx.xx.03 tcp http
    serverfarm YYY
    inservice
    vserver YYY1
    virtual xx.xx.xx.03 tcp https
    serverfarm YYY
    sticky 60 group 1
    inservice
    Gilles.

  • Exchange 2010 health-checks with encryption and ntlm auth

    Hi everybody,
    I will be forced to implement extended health-ckecks for Exchange 2010 CAS Servers. So the cisco design guide does not help
    Exchange2010 CAS Service needs ntlm auth for many services by default. http://technet.microsoft.com/en-us/library/bb331973.aspx
    Now with SP1 also for pop3 and imap4. I have not found any option to use ntlm by default.
    The next problem is encryption.
    Health-checks with encryption are not integrated in cisco ace 4710 by default.
    As an alternative to try a scripted health-check with tcl script is an option but needs more investigation and is timeconsuming.
    I watched for other vendors solution, they use e.g. external imported shell scripts with curl (curl -s --ntlm -k -X POST ...) to do a health-check with ntlm. That would be fine at the moment to beat the requirement of extendet health-checks.
    But maybe it is only ntlm verion 1, I do not know what happens if it comes to ntlm version 2.
    Kerberos authentication is a much bigger problem, but at the moment not a requirement.
    Does anybody has some hints or also a tcl script for exchange health-checks ?
    Best Regards
    Alois

    Hi everybody,
    I will be forced to implement extended health-ckecks for Exchange 2010 CAS Servers. So the cisco design guide does not help
    Exchange2010 CAS Service needs ntlm auth for many services by default. http://technet.microsoft.com/en-us/library/bb331973.aspx
    Now with SP1 also for pop3 and imap4. I have not found any option to use ntlm by default.
    The next problem is encryption.
    Health-checks with encryption are not integrated in cisco ace 4710 by default.
    As an alternative to try a scripted health-check with tcl script is an option but needs more investigation and is timeconsuming.
    I watched for other vendors solution, they use e.g. external imported shell scripts with curl (curl -s --ntlm -k -X POST ...) to do a health-check with ntlm. That would be fine at the moment to beat the requirement of extendet health-checks.
    But maybe it is only ntlm verion 1, I do not know what happens if it comes to ntlm version 2.
    Kerberos authentication is a much bigger problem, but at the moment not a requirement.
    Does anybody has some hints or also a tcl script for exchange health-checks ?
    Best Regards
    Alois

  • Responsibility and health check

    hi friends
    just need some help to prepare good document as my management insited
    i am only the dba working for two node rac
    windows
    10.2.0.4
    asm
    here if any issue arrives i am only the person to handle,so my management decided to list out all the activities.
    from i just what are daily health check or responsibilities of sys admin,os level admin,asm leve...............storage dept .............architect leve
    as i have updated database level activities
    can you please give me list of activities they should handle in this enivronment(sys admin,os level admin,asm leve...............storage dept .............architect leve)
    thanks for your help and support
    cheers

    These are the tasks for the oralce dba. For the other related fields , either check their doc guide or ask the people who work in that domain,
    http://download.oracle.com/docs/cd/E11882_01/server.112/e17120/dba002.htm#i1006205
    Aman....

  • VMS and CSM migration for free or reduced cost (act now) expires 4/2/07

    I can't find the posting where there was a heated discussion regarding VMS and Cisco forcing users to BUY Cisco Security Managager (CSM).
    I looked around and found a link to a trade-in program where users can get a free upgrade to CSM. Please post questions to this mail and I will answer. I am just a concerned Cisco Systems Engineer and not a marketing guy so bear with me as we find the answers together.
    I am going to copy and paste the info and links.
    ---Copy paste----
    http://www.cisco.com/en/US/products/ps6498/prod_bulletin0900aecd803ffd79.html
    Migration Options from CiscoWorks VPN/Security Management Solution
    Cisco is not adding support for new features and new devices in CiscoWorks VPN/Security Management Solution (CiscoWorks VMS) after the release of Cisco Security Manager. Furthermore, support for devices such as Cisco ASA 5500 Series Adaptive Security Appliances is only be available with Cisco Security Manager. Customers that require provisioning for Cisco firewalls, VPNs, and IPSs will want to plan their migration to take advantage of significant enhancements in the new software.
    Customers with a current Cisco Software Application Support (SAS) service or Software Application Support plus Upgrades (SASU) service for CiscoWorks VMS are entitled to a defined device license for Cisco Security Manager at no additional charge. The value of the new license is higher than the cost of the original CiscoWorks VMS purchase. Customers with a current CiscoWorks VMS Basic license that have a Cisco SMARTnet? contract, or a Cisco Services for IPS contract with selected IPS hardware, can also upgrade to Cisco Security Manager. See Tables 2 to 4 for the upgrade licenses that can be requested at no additional cost from http://www.cisco.com/upgrade. The appropriate upgrade option will be visible on the Website if you have an eligible service contract with an existing CiscoWorks VMS license.
    Note: All no charge and discounted offers to upgrade from CiscoWorks VMS to Cisco Security Manager will be discontinued after April 2, 2007.
    Regards,
    Ray Aragon

    Ray,
    I think the posting that you are referring to is here:
    http://forum.cisco.com/eforum/servlet/NetProf?page=netprof&forum=Security&topic=Intrusion%20Prevention%20Systems/IDS&CommCmd=MB%3Fcmd%3Ddisplay_location%26location%3D.1ddd2017
    Some very interesting points were raised but the main issue is about functionality rather that cost. Basically, CSM does not fully replicate the functionality of VMS (see the thread) and this is the main issue for a lot of folks.
    What might be useful is for Cisco to ask the question "what functionality would you like to see in CSM?" - and publish the answers somewhere, to allow folks to vote on the proposed features and/or add new requests. Just an idea.
    Andrew.

  • ACE http health probes - best practice for interval and passdetect interval?

    Hi,
    Is there a recommended standard for http health probes in terms of interval and passdetect interval timings, i.e. should the passdetect interval always be less than the interval or visa versa? Can a http probe be 'mis-configured', i.e. return a 'false positive' by configuring an interval timeout thats 'incompatible' with the device it's polling?
    I have a http probe for a serverfarm consisting of two Apache http servers and get intermittent 'server reply timeout' probe failures. I'm keen to ensure that the configuration of the probe isn't at fault so I can be confident that a failed probe indicates a problem with the server and not my configuration.
    The probe is currently configured as below:-
    probe http http-apache
      interval 30
      passdetect interval 15
      passdetect count 6
      request method get url /cs/images/ACE.html
      expect status 200 304
    Any advice on the subject woud be gratefully received.
    thanks
    Matthew

    Hi Gilles,
    Thanks for the advice. In another dicussion (found here https://supportforums.cisco.com/message/462397#462397) a poster has stated that:-
    "(The) "Probe interval" should always be less then (open+recieve) timeout  value. Default open & receive timeouts are 10 seconds."
    Are you able to advise on whether the above is correct and if so, why? I currently have an interval value of 30 that obviously goes against the advice above (which I've interpretted to mean that if you leave the open & receive timeouts at their default settings your probe interval should be less than 20 seconds?).
    thanks
    Matthew

  • Event:4133 "Database one datacenter health check failed". and Event:4376 "Database one datacenter available copy health check failed"

    Hi.
    I got two DAG nodes with CAS role installed. Sudently i get this failures on both nodes. This happens for all databases. I have tried do Seed the DB, with no luck
    I run the The CheckDatabaseRedundancy.ps1 script and this seems OK.
    Could somone please help me,
    [PS] D:\Program Files\Microsoft\Exchange Server\V15\Scripts>.\CheckDatabaseRedundancy.ps1
    DatabaseName                        : Users05
    LastRedundancyCount                 : 0
    CurrentRedundancyCount              : 2
    LastState                           : Unknown
    CurrentState                        : Green
    LastStateTransitionUtc              : 05.07.2013 05:49:10
    LastGreenTransitionUtc              : 05.07.2013 05:49:10
    LastRedTransitionUtc                :
    LastGreenReportedUtc                : 05.07.2013 05:49:10
    HasReportedGreenEvent               : True
    LastRedReportedUtc                  :
    PreviousTotalRedDuration            : 00:00:00
    TotalRedDuration                    : 00:00:00
    IsTransitioningState                : True
    HasErrorsInHistory                  : False
    CurrentErrorMessages                :
    ErrorHistory                        :
    IsOneDatacenter                     : False
    CurrentRedundancyCountPerSite       : {[Default-First-Site-Name, 2]}
    CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
    Event:4376
    Database one datacenter available copy health check failed.
    Database copy: Users05
    Redundancy count: 2
    Error:
    ================
    Full Copy Status
    ================
    Database Copy : Users05\casmbx02
    VolumeInfoLastError                  :
    LogPathIsOnMountedFolder             : False
    LogVolumeName                        : \\?\Volume{beecae05-53ca-444d-ab5f-dd98510b4776}\
    LogVolumeMountPoint                  : E:\
    DatabasePathIsOnMountedFolder        : False
    DatabaseVolumeName                   : \\?\Volume{b92c9520-905f-4ee4-902d-1e73c26b1717}\
    DatabaseVolumeMountPoint             : F:\
    ExchangeVolumeMountPoint             :
    LastDatabaseVolumeNameTransitionTime : 01.01.1601 00:00:00
    LastDatabaseVolumeName               :
    DiskFreeSpacePercent                 : 90
    DiskTotalSpaceBytes                  : 107237863424
    DiskFreeSpaceBytes                   : 97164902400
    SeedingSource                        : False
    ActivationPreference                 : 2
    LogsCopiedSinceInstanceStart         : 45
    LogsReplayedSinceInstanceStart       : 86
    ExtendedErrorInfo                    :
    ErrorEventId                         : 0
    ErrorMessage                         :
    ReplayQueueNotKeepingUp              : False
    CopyQueueNotKeepingUp                : False
    SnapshotLatestCopyBackup             : False
    SnapshotLatestDifferentialBackup     : False
    SnapshotLatestIncrementalBackup      : False
    SnapshotLatestFullBackup             : True
    LatestCopyBackupTime                 : 01.01.1601 00:00:00
    LatestDifferentialBackupTime         : 01.01.1601 00:00:00
    LatestIncrementalBackupTime          : 01.01.1601 00:00:00
    LatestFullBackupTime                 : 04.07.2013 19:31:34
    LastLogCopyNotified                  : 4100
    CurrentReplayLogTime                 : 05.07.2013 05:24:26
    LastReplayedLogTime                  : 05.07.2013 05:39:26
    LastInspectedLogTime                 : 05.07.2013 05:39:26
    LastCopiedLogTime                    : 05.07.2013 05:39:26
    LastLogInfoFromClusterGen            : 4100
    LastLogInfoFromClusterTime           : 05.07.2013 05:44:01
    LastLogInfoFromCopierTime            : 05.07.2013 05:44:00
    LastLogInfoIsStale                   : False
    LastCopyNotifiedLogTime              : 05.07.2013 05:39:26
    LatestAvailableLogTime               : 05.07.2013 05:39:26
    DumpsterEndTime                      : 01.01.0001 00:00:00
    DumpsterStartTime                    : 01.01.0001 00:00:00
    DumpsterRequired                     : False
    DumpsterServers                      :
    ActionInitiator                      : Service
    SuspendComment                       :
    SinglePageRestoreNumber              : 0
    SinglePageRestore                    : False
    ReplayLagPercentage                  : 0
    ReplayLagPlayDownReason              : None
    ReplayLagEnabled                     : Disabled
    ReplayLagDisabledReason              :
    ActualReplayLagTime                  : 00:04:40.1554322
    ConfiguredReplayLagTime              : 00:00:00
    NodeStatus                           : Up
    WorkerProcessId                      : 8740
    ReseedBlocked                        : False
    ResumeBlocked                        : False
    ReplaySuspended                      : False
    LostWrite                            : False
    Viable                               : True
    ActivationSuspended                  : False
    DbSeedingKBytesWrittenPerSec         : 0
    DbSeedingKBytesReadPerSec            : 0
    DbSeedingKBytesWritten               : 0
    DbSeedingKBytesRead                  : 0
    DbSeedingPercent                     : 0
    ContentIndexSeedingSource            :
    ContentIndexSeedingPercent           :
    ContentIndexMailboxesToCrawl         :
    ContentIndexBacklog                  : 0
    ContentIndexRetryQueueSize           : 0
    ContentIndexErrorMessage             :
    ContentIndexStatus                   : Healthy
    LastStatusTransitionTime             : 04.07.2013 17:46:02
    InstanceStartTime                    : 04.07.2013 17:45:59
    CICurrentness                        : Current
    CopyStatus                           : Healthy
    ServerVersion                        : 1941996140
    LastLogReplayed                      : 4100
    LastLogInspected                     : 4100
    LastLogCopied                        : 4100
    LastLogGenerated                     : 4100
    DataAvailabilityTime                 : 05.07.2013 05:39:26
    DataProtectionTime                   : 05.07.2013 05:39:26
    LastLogGeneratedTime                 : 05.07.2013 05:44:06
    StatusRetrievedTime                  : 05.07.2013 05:44:06
    ActiveDatabaseCopy                   : CASMBX01
    MailboxServer                        : CASMBX02
    DBName                               : Users05
    DBGuid                               : 57da90db-bc6d-4bf3-b508-64d3bff41377
    Database Copy : Users05\casmbx01
    VolumeInfoLastError                  :
    LogPathIsOnMountedFolder             : False
    LogVolumeName                        : \\?\Volume{94937623-3da4-49ab-825e-49c982ec79f1}\
    LogVolumeMountPoint                  : E:\
    DatabasePathIsOnMountedFolder        : False
    DatabaseVolumeName                   : \\?\Volume{73a9913d-1660-487b-8a8b-b53cb017728e}\
    DatabaseVolumeMountPoint             : F:\
    ExchangeVolumeMountPoint             :
    LastDatabaseVolumeNameTransitionTime : 01.01.1601 00:00:00
    LastDatabaseVolumeName               :
    DiskFreeSpacePercent                 : 90
    DiskTotalSpaceBytes                  : 107237863424
    DiskFreeSpaceBytes                   : 96646443008
    SeedingSource                        : False
    ActivationPreference                 : 1
    LogsCopiedSinceInstanceStart         : 0
    LogsReplayedSinceInstanceStart       : 0
    ExtendedErrorInfo                    :
    ErrorEventId                         : 0
    ErrorMessage                         :
    ReplayQueueNotKeepingUp              : False
    CopyQueueNotKeepingUp                : False
    SnapshotLatestCopyBackup             : False
    SnapshotLatestDifferentialBackup     : False
    SnapshotLatestIncrementalBackup      : False
    SnapshotLatestFullBackup             : True
    LatestCopyBackupTime                 : 01.01.1601 00:00:00
    LatestDifferentialBackupTime         : 01.01.1601 00:00:00
    LatestIncrementalBackupTime          : 01.01.1601 00:00:00
    LatestFullBackupTime                 : 03.07.2013 19:30:53
    LastLogCopyNotified                  : 4100
    CurrentReplayLogTime                 : 01.01.0001 00:00:00
    LastReplayedLogTime                  : 01.01.0001 00:00:00
    LastInspectedLogTime                 : 01.01.0001 00:00:00
    LastCopiedLogTime                    : 01.01.0001 00:00:00
    LastLogInfoFromClusterGen            : 4100
    LastLogInfoFromClusterTime           : 05.07.2013 05:44:01
    LastLogInfoFromCopierTime            : 05.07.2013 05:44:06
    LastLogInfoIsStale                   : False
    LastCopyNotifiedLogTime              : 05.07.2013 05:39:26
    LatestAvailableLogTime               : 01.01.0001 00:00:00
    DumpsterEndTime                      : 01.01.0001 00:00:00
    DumpsterStartTime                    : 01.01.0001 00:00:00
    DumpsterRequired                     : False
    DumpsterServers                      :
    ActionInitiator                      : Unknown
    SuspendComment                       :
    SinglePageRestoreNumber              : 0
    SinglePageRestore                    : False
    ReplayLagPercentage                  : 0
    ReplayLagPlayDownReason              : None
    ReplayLagEnabled                     : Disabled
    ReplayLagDisabledReason              :
    ActualReplayLagTime                  : 00:00:00
    ConfiguredReplayLagTime              : 00:00:00
    NodeStatus                           : Up
    WorkerProcessId                      : 7624
    ReseedBlocked                        : False
    ResumeBlocked                        : False
    ReplaySuspended                      : False
    LostWrite                            : False
    Viable                               : False
    ActivationSuspended                  : False
    DbSeedingKBytesWrittenPerSec         : 0
    DbSeedingKBytesReadPerSec            : 0
    DbSeedingKBytesWritten               : 0
    DbSeedingKBytesRead                  : 0
    DbSeedingPercent                     : 0
    ContentIndexSeedingSource            :
    ContentIndexSeedingPercent           :
    ContentIndexMailboxesToCrawl         :
    ContentIndexBacklog                  : 0
    ContentIndexRetryQueueSize           : 0
    ContentIndexErrorMessage             :
    ContentIndexStatus                   : Healthy
    LastStatusTransitionTime             : 01.01.0001 00:00:00
    InstanceStartTime                    : 04.07.2013 17:45:58
    CICurrentness                        : Current
    CopyStatus                           : Mounted
    ServerVersion                        : 1941996140
    LastLogReplayed                      : 0
    LastLogInspected                     : 0
    LastLogCopied                        : 0
    LastLogGenerated                     : 4100
    DataAvailabilityTime                 : 01.01.0001 00:00:00
    DataProtectionTime                   : 01.01.0001 00:00:00
    LastLogGeneratedTime                 : 01.01.0001 00:00:00
    StatusRetrievedTime                  : 05.07.2013 05:44:06
    ActiveDatabaseCopy                   : CASMBX01
    MailboxServer                        : CASMBX01
    DBName                               : Users05
    DBGuid                               : 57da90db-bc6d-4bf3-b508-64d3bff41377
    Event:4133
    Database one datacenter health check failed.
    Database copy: Users05
    Redundancy count: 2
    Error:
    ================
    Full Copy Status
    ================
    Database Copy : Users05\casmbx02
    VolumeInfoLastError                  :
    LogPathIsOnMountedFolder             : False
    LogVolumeName                        : \\?\Volume{beecae05-53ca-444d-ab5f-dd98510b4776}\
    LogVolumeMountPoint                  : E:\
    DatabasePathIsOnMountedFolder        : False
    DatabaseVolumeName                   : \\?\Volume{b92c9520-905f-4ee4-902d-1e73c26b1717}\
    DatabaseVolumeMountPoint             : F:\
    ExchangeVolumeMountPoint             :
    LastDatabaseVolumeNameTransitionTime : 01.01.1601 00:00:00
    LastDatabaseVolumeName               :
    DiskFreeSpacePercent                 : 90
    DiskTotalSpaceBytes                  : 107237863424
    DiskFreeSpaceBytes                   : 97164902400
    SeedingSource                        : False
    ActivationPreference                 : 2
    LogsCopiedSinceInstanceStart         : 45
    LogsReplayedSinceInstanceStart       : 86
    ExtendedErrorInfo                    :
    ErrorEventId                         : 0
    ErrorMessage                         :
    ReplayQueueNotKeepingUp              : False
    CopyQueueNotKeepingUp                : False
    SnapshotLatestCopyBackup             : False
    SnapshotLatestDifferentialBackup     : False
    SnapshotLatestIncrementalBackup      : False
    SnapshotLatestFullBackup             : True
    LatestCopyBackupTime                 : 01.01.1601 00:00:00
    LatestDifferentialBackupTime         : 01.01.1601 00:00:00
    LatestIncrementalBackupTime          : 01.01.1601 00:00:00
    LatestFullBackupTime                 : 04.07.2013 19:31:34
    LastLogCopyNotified                  : 4100
    CurrentReplayLogTime                 : 05.07.2013 05:24:26
    LastReplayedLogTime                  : 05.07.2013 05:39:26
    LastInspectedLogTime                 : 05.07.2013 05:39:26
    LastCopiedLogTime                    : 05.07.2013 05:39:26
    LastLogInfoFromClusterGen            : 4100
    LastLogInfoFromClusterTime           : 05.07.2013 05:44:01
    LastLogInfoFromCopierTime            : 05.07.2013 05:44:00
    LastLogInfoIsStale                   : False
    LastCopyNotifiedLogTime              : 05.07.2013 05:39:26
    LatestAvailableLogTime               : 05.07.2013 05:39:26
    DumpsterEndTime                      : 01.01.0001 00:00:00
    DumpsterStartTime                    : 01.01.0001 00:00:00
    DumpsterRequired                     : False
    DumpsterServers                      :
    ActionInitiator                      : Service
    SuspendComment                       :
    SinglePageRestoreNumber              : 0
    SinglePageRestore                    : False
    ReplayLagPercentage                  : 0
    ReplayLagPlayDownReason              : None
    ReplayLagEnabled                     : Disabled
    ReplayLagDisabledReason              :
    ActualReplayLagTime                  : 00:04:40.1554322
    ConfiguredReplayLagTime              : 00:00:00
    NodeStatus                           : Up
    WorkerProcessId                      : 8740
    ReseedBlocked                        : False
    ResumeBlocked                        : False
    ReplaySuspended                      : False
    LostWrite                            : False
    Viable                               : True
    ActivationSuspended                  : False
    DbSeedingKBytesWrittenPerSec         : 0
    DbSeedingKBytesReadPerSec            : 0
    DbSeedingKBytesWritten               : 0
    DbSeedingKBytesRead                  : 0
    DbSeedingPercent                     : 0
    ContentIndexSeedingSource            :
    ContentIndexSeedingPercent           :
    ContentIndexMailboxesToCrawl         :
    ContentIndexBacklog                  : 0
    ContentIndexRetryQueueSize           : 0
    ContentIndexErrorMessage             :
    ContentIndexStatus                   : Healthy
    LastStatusTransitionTime             : 04.07.2013 17:46:02
    InstanceStartTime                    : 04.07.2013 17:45:59
    CICurrentness                        : Current
    CopyStatus                           : Healthy
    ServerVersion                        : 1941996140
    LastLogReplayed                      : 4100
    LastLogInspected                     : 4100
    LastLogCopied                        : 4100
    LastLogGenerated                     : 4100
    DataAvailabilityTime                 : 05.07.2013 05:39:26
    DataProtectionTime                   : 05.07.2013 05:39:26
    LastLogGeneratedTime                 : 05.07.2013 05:44:06
    StatusRetrievedTime                  : 05.07.2013 05:44:06
    ActiveDatabaseCopy                   : CASMBX01
    MailboxServer                        : CASMBX02
    DBName                               : Users05
    DBGuid                               : 57da90db-bc6d-4bf3-b508-64d3bff41377
    Database Copy : Users05\casmbx01
    VolumeInfoLastError                  :
    LogPathIsOnMountedFolder             : False
    LogVolumeName                        : \\?\Volume{94937623-3da4-49ab-825e-49c982ec79f1}\
    LogVolumeMountPoint                  : E:\
    DatabasePathIsOnMountedFolder        : False
    DatabaseVolumeName                   : \\?\Volume{73a9913d-1660-487b-8a8b-b53cb017728e}\
    DatabaseVolumeMountPoint             : F:\
    ExchangeVolumeMountPoint             :
    LastDatabaseVolumeNameTransitionTime : 01.01.1601 00:00:00
    LastDatabaseVolumeName               :
    DiskFreeSpacePercent                 : 90
    DiskTotalSpaceBytes                  : 107237863424
    DiskFreeSpaceBytes                   : 96646443008
    SeedingSource                        : False
    ActivationPreference                 : 1
    LogsCopiedSinceInstanceStart         : 0
    LogsReplayedSinceInstanceStart       : 0
    ExtendedErrorInfo                    :
    ErrorEventId                         : 0
    ErrorMessage                         :
    ReplayQueueNotKeepingUp              : False
    CopyQueueNotKeepingUp                : False
    SnapshotLatestCopyBackup             : False
    SnapshotLatestDifferentialBackup     : False
    SnapshotLatestIncrementalBackup      : False
    SnapshotLatestFullBackup             : True
    LatestCopyBackupTime                 : 01.01.1601 00:00:00
    LatestDifferentialBackupTime         : 01.01.1601 00:00:00
    LatestIncrementalBackupTime          : 01.01.1601 00:00:00
    LatestFullBackupTime                 : 03.07.2013 19:30:53
    LastLogCopyNotified                  : 4100
    CurrentReplayLogTime                 : 01.01.0001 00:00:00
    LastReplayedLogTime                  : 01.01.0001 00:00:00
    LastInspectedLogTime                 : 01.01.0001 00:00:00
    LastCopiedLogTime                    : 01.01.0001 00:00:00
    LastLogInfoFromClusterGen            : 4100
    LastLogInfoFromClusterTime           : 05.07.2013 05:44:01
    LastLogInfoFromCopierTime            : 05.07.2013 05:44:06
    LastLogInfoIsStale                   : False
    LastCopyNotifiedLogTime              : 05.07.2013 05:39:26
    LatestAvailableLogTime               : 01.01.0001 00:00:00
    DumpsterEndTime                      : 01.01.0001 00:00:00
    DumpsterStartTime                    : 01.01.0001 00:00:00
    DumpsterRequired                     : False
    DumpsterServers                      :
    ActionInitiator                      : Unknown
    SuspendComment                       :
    SinglePageRestoreNumber              : 0
    SinglePageRestore                    : False
    ReplayLagPercentage                  : 0
    ReplayLagPlayDownReason              : None
    ReplayLagEnabled                     : Disabled
    ReplayLagDisabledReason              :
    ActualReplayLagTime                  : 00:00:00
    ConfiguredReplayLagTime              : 00:00:00
    NodeStatus                           : Up
    WorkerProcessId                      : 7624
    ReseedBlocked                        : False
    ResumeBlocked                        : False
    ReplaySuspended                      : False
    LostWrite                            : False
    Viable                               : False
    ActivationSuspended                  : False
    DbSeedingKBytesWrittenPerSec         : 0
    DbSeedingKBytesReadPerSec            : 0
    DbSeedingKBytesWritten               : 0
    DbSeedingKBytesRead                  : 0
    DbSeedingPercent                     : 0
    ContentIndexSeedingSource            :
    ContentIndexSeedingPercent           :
    ContentIndexMailboxesToCrawl         :
    ContentIndexBacklog                  : 0
    ContentIndexRetryQueueSize           : 0
    ContentIndexErrorMessage             :
    ContentIndexStatus                   : Healthy
    LastStatusTransitionTime             : 01.01.0001 00:00:00
    InstanceStartTime                    : 04.07.2013 17:45:58
    CICurrentness                        : Current
    CopyStatus                           : Mounted
    ServerVersion                        : 1941996140
    LastLogReplayed                      : 0
    LastLogInspected                     : 0
    LastLogCopied                        : 0
    LastLogGenerated                     : 4100
    DataAvailabilityTime                 : 01.01.0001 00:00:00
    DataProtectionTime                   : 01.01.0001 00:00:00
    LastLogGeneratedTime                 : 01.01.0001 00:00:00
    StatusRetrievedTime                  : 05.07.2013 05:44:06
    ActiveDatabaseCopy                   : CASMBX01
    MailboxServer                        : CASMBX01
    DBName                               : Users05
    DBGuid                               : 57da90db-bc6d-4bf3-b508-64d3bff41377
    Rinken

    Hi.
    I also ran the CheckDatabaseRedundancy.ps1 script. the output was:
    DatabaseName                        : Users05
    LastRedundancyCount                 : 0
    CurrentRedundancyCount              : 2
    LastState                           : Unknown
    CurrentState                        : Green
    LastStateTransitionUtc              : 11.07.2013 07:34:16
    LastGreenTransitionUtc              : 11.07.2013 07:34:16
    LastRedTransitionUtc                :
    LastGreenReportedUtc                : 11.07.2013 07:34:16
    HasReportedGreenEvent               : True
    LastRedReportedUtc                  :
    PreviousTotalRedDuration            : 00:00:00
    TotalRedDuration                    : 00:00:00
    IsTransitioningState                : True
    HasErrorsInHistory                  : False
    CurrentErrorMessages                :
    ErrorHistory                        :
    IsOneDatacenter                     : False
    CurrentRedundancyCountPerSite       : {[Default-First-Site-Name, 2]}
    CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
    DatabaseName                        : Users04
    LastRedundancyCount                 : 0
    CurrentRedundancyCount              : 2
    LastState                           : Unknown
    CurrentState                        : Green
    LastStateTransitionUtc              : 11.07.2013 07:34:16
    LastGreenTransitionUtc              : 11.07.2013 07:34:16
    LastRedTransitionUtc                :
    LastGreenReportedUtc                : 11.07.2013 07:34:16
    HasReportedGreenEvent               : True
    LastRedReportedUtc                  :
    PreviousTotalRedDuration            : 00:00:00
    TotalRedDuration                    : 00:00:00
    IsTransitioningState                : True
    HasErrorsInHistory                  : False
    CurrentErrorMessages                :
    ErrorHistory                        :
    IsOneDatacenter                     : False
    CurrentRedundancyCountPerSite       : {[Default-First-Site-Name, 2]}
    CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
    DatabaseName                        : Users02
    LastRedundancyCount                 : 0
    CurrentRedundancyCount              : 2
    LastState                           : Unknown
    CurrentState                        : Green
    LastStateTransitionUtc              : 11.07.2013 07:34:17
    LastGreenTransitionUtc              : 11.07.2013 07:34:17
    LastRedTransitionUtc                :
    LastGreenReportedUtc                : 11.07.2013 07:34:17
    HasReportedGreenEvent               : True
    LastRedReportedUtc                  :
    PreviousTotalRedDuration            : 00:00:00
    TotalRedDuration                    : 00:00:00
    IsTransitioningState                : True
    HasErrorsInHistory                  : False
    CurrentErrorMessages                :
    ErrorHistory                        :
    IsOneDatacenter                     : False
    CurrentRedundancyCountPerSite       : {[Default-First-Site-Name, 2]}
    CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
    DatabaseName                        : Users03
    LastRedundancyCount                 : 0
    CurrentRedundancyCount              : 2
    LastState                           : Unknown
    CurrentState                        : Green
    LastStateTransitionUtc              : 11.07.2013 07:34:17
    LastGreenTransitionUtc              : 11.07.2013 07:34:17
    LastRedTransitionUtc                :
    LastGreenReportedUtc                : 11.07.2013 07:34:17
    HasReportedGreenEvent               : True
    LastRedReportedUtc                  :
    PreviousTotalRedDuration            : 00:00:00
    TotalRedDuration                    : 00:00:00
    IsTransitioningState                : True
    HasErrorsInHistory                  : False
    CurrentErrorMessages                :
    ErrorHistory                        :
    IsOneDatacenter                     : False
    CurrentRedundancyCountPerSite       : {[Default-First-Site-Name, 2]}
    CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
    DatabaseName                        : Users01
    LastRedundancyCount                 : 0
    CurrentRedundancyCount              : 2
    LastState                           : Unknown
    CurrentState                        : Green
    LastStateTransitionUtc              : 11.07.2013 07:34:17
    LastGreenTransitionUtc              : 11.07.2013 07:34:17
    LastRedTransitionUtc                :
    LastGreenReportedUtc                : 11.07.2013 07:34:17
    HasReportedGreenEvent               : True
    LastRedReportedUtc                  :
    PreviousTotalRedDuration            : 00:00:00
    TotalRedDuration                    : 00:00:00
    IsTransitioningState                : True
    HasErrorsInHistory                  : False
    CurrentErrorMessages                :
    ErrorHistory                        :
    IsOneDatacenter                     : False
    CurrentRedundancyCountPerSite       : {[Default-First-Site-Name, 2]}
    CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
    Rinken

  • CSM HTTP Health Probe

    Is there any way to configure an HTTP health probe that will test a web page and fail if it takes too long for the server to respond. I have attempted to do this (see below) but the "receive" parameter doesn't seem to help. We are currently having a problem where one of the web servers for whatever reason gets really slow, while the other works fine with about the same number of users, I'd like to fail the slow when this occurrs.
    Here is my probe config:
    probe HTTP-SERVERASP http
    request method get url /server.asp
    expect status 200 299
    interval 5
    failed 30
    receive 5
    Thanks...Jeff

    Jeff,
    receive seems to be the solution for what you need.
    Did you verify how fast/slow the server is responding.
    Currently you allow 5 sec for the response to come back and 3 consecutives must fail before the server is brought down, so if your server resond 1 time fast enough, the server stays up.
    So, use a sniffer trace to verify the response time.
    Send me the trace if you want.
    Gilles.

  • Health Check in Exchange 2007 Scripting

    Hi All,
    I have been looking around for scripts which would help me perform regularised health checks in my enviornment. After lot of googling i was able to get a script which would meet my requirements. However i have a few challenges involved in extracting some
    more information:
    1. Mailbox Store Size, Free Diskspace percentage for mailbox servers
    2. Remote Mail flow Tests & Mailflow test to every exchange 2007 mailbox servers in org.
    3. Automating Email of collected data (in HTML) to Administrator.
    4. Executing the script Automatically without triggering it from Exchange Management Shell.
    Script Below
    param( [string] $auditlist)
    Function Get-CustomHTML ($Header){
    $Report = @"
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
    <html><head><title>$($Header)</title>
    <META http-equiv=Content-Type content='text/html; charset=windows-1252'>
    <meta name="save" content="history">
    <style type="text/css">
    DIV .expando {DISPLAY: block; FONT-WEIGHT: normal; FONT-SIZE: 8pt; RIGHT: 8px; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TEXT-DECORATION: underline}
    TABLE {TABLE-LAYOUT: fixed; FONT-SIZE: 100%; WIDTH: 100%}
    *{margin:0}
    .dspcont { display:none; BORDER-RIGHT: #B1BABF 1px solid; BORDER-TOP: #B1BABF 1px solid; PADDING-LEFT: 16px; FONT-SIZE: 8pt;MARGIN-BOTTOM: -1px; PADDING-BOTTOM: 5px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; WIDTH: 95%; COLOR: #000000; MARGIN-RIGHT:
    0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; BACKGROUND-COLOR: #f9f9f9}
    .filler {BORDER-RIGHT: medium none; BORDER-TOP: medium none; DISPLAY: block; BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN-BOTTOM: -1px; FONT: 100%/8px Tahoma; MARGIN-LEFT: 43px; BORDER-LEFT: medium none; COLOR: #ffffff; MARGIN-RIGHT: 0px; PADDING-TOP:
    4px; BORDER-BOTTOM: medium none; POSITION: relative}
    .save{behavior:url(#default#savehistory);}
    .dspcont1{ display:none}
    a.dsphead0 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
    #FFFFFF; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #CC0000}
    a.dsphead1 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
    #ffffff; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #7BA7C7}
    a.dsphead2 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
    #ffffff; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #7BA7C7}
    a.dsphead1 span.dspchar{font-family:monospace;font-weight:normal;}
    td {VERTICAL-ALIGN: TOP; FONT-FAMILY: Tahoma}
    th {VERTICAL-ALIGN: TOP; COLOR: #CC0000; TEXT-ALIGN: left}
    BODY {margin-left: 4pt}
    BODY {margin-right: 4pt}
    BODY {margin-top: 6pt}
    </style>
    <script type="text/javascript">
    function dsp(loc){
       if(document.getElementById){
          var foc=loc.firstChild;
          foc=loc.firstChild.innerHTML?
             loc.firstChild:
             loc.firstChild.nextSibling;
          foc.innerHTML=foc.innerHTML=='hide'?'show':'hide';
          foc=loc.parentNode.nextSibling.style?
             loc.parentNode.nextSibling:
             loc.parentNode.nextSibling.nextSibling;
          foc.style.display=foc.style.display=='block'?'none':'block';}} 
    if(!document.getElementById)
       document.write('<style type="text/css">\n'+'.dspcont{display:block;}\n'+ '</style>');
    </script>
    </head>
    <body>
    <b><font face="Arial" size="5">$($Header)</font></b><hr size="8" color="#CC0000">
    <font face="Arial" size="1"><b>Version 1  |M & C | <A HREF='http://mail.exchange.com'>mail.exchange.com</A></b></font><br>
    <font face="Arial" size="1">Report created on $(Get-Date)</font>
    <div class="filler"></div>
    <div class="filler"></div>
    <div class="filler"></div>
    <div class="save">
    Return $Report
    Function Get-CustomHeader0 ($Title){
    $Report = @"
     <div class="dspcont0">
     <h1><a href="javascript:void(0)" class="dsphead0" onclick="dsp(this)">
     <span class="expando">show</span>$($Title)</a></h1>
     <div class="dspcont0">
    Return $Report
    Function Get-CustomHeader ($Num, $Title){
    $Report = @"
     <h2><a href="javascript:void(0)" class="dsphead$($Num)" onclick="dsp(this)">
     <span class="expando">show</span>$($Title)</a></h2>
     <div class="dspcont">
    Return $Report
    Function Get-CustomHeaderClose{
     $Report = @"
      </DIV>
      <div class="filler"></div>
    Return $Report
    Function Get-CustomHeader0Close{
     $Report = @"
      </DIV>
      <div class="filler"></div>
    Return $Report
    Function Get-CustomHTMLClose{
     $Report = @"
    </div>
    </body>
    </html>
    Return $Report
    Function Get-HTMLTable{
     param([array]$Content)
     $HTMLTable = $Content | ConvertTo-Html
     $HTMLTable = $HTMLTable -replace '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">', ""
     $HTMLTable = $HTMLTable -replace '<html xmlns="http://www.w3.org/1999/xhtml">', ""
     $HTMLTable = $HTMLTable -replace '<head>', ""
     $HTMLTable = $HTMLTable -replace '<title>HTML TABLE</title>', ""
     $HTMLTable = $HTMLTable -replace '&lt;', "<"
     $HTMLTable = $HTMLTable -replace '&gt;', ">"
     $HTMLTable = $HTMLTable -replace '</head><body>', ""
     $HTMLTable = $HTMLTable -replace '</body></html>', ""
     Return $HTMLTable
    Function Get-HTMLLink ($activeURL){
    $Report = @"
    <a href=$activeURL>$activeURL</a>
    Return $Report
    Function Get-Ink ([String]$inData){
    [String]$inclPercentage = @(35..100)
    $positive = ($inclPercentage, 'Success', 'Ready', 'Running', 'OK', 'True', 'Information')
    If ($positive -match $inData)
    $Report = @"
    <font color='#009900'>$inData</font>
    Else
    $Report = @"
    <font color='#FF0000'>$inData</font>
    Return $Report
    Function Get-HTMLBasic ($Detail){
    $Report = @"
    <TABLE>
     <tr>
      <td width='75%'>$($Detail)</td>
     </tr>
    </TABLE>
    Return $Report
    Function Get-HTMLDetail ($Heading, $Detail){
    $Report = @"
    <TABLE>
     <tr>
     <th width='25%'><b>$Heading</b></font></th>
     <td width='75%'>$($Detail)</td>
     </tr>
    </TABLE>
    Return $Report
    $input | foreach {$targets += @($_)}
    If ((Test-Path variable:\targets) -eq $True){
       Write-Host "Server list input detected on pipeline" -ForegroundColor Yellow
    Else{
     if ($auditlist -eq ""){
       Write-Host "No server list specified, getting all Exchange 2007 servers" -ForegroundColor Yellow
       $targets = Get-ExchangeServer | Where-Object {$_.IsExchange2007OrLater -eq $True}
      else
       if ((Test-Path $auditlist) -eq $false)
        Write-Host "Invalid server list specified: $auditlist" -ForegroundColor DarkRed
        exit
       else
        Write-Host "Using Audit list: $auditlist" -ForegroundColor Cyan
        $Targets = Get-Content $auditlist
    $now = Get-Date
    #Custom Expressions
    $latencyMS = @{Name="Latency(MS)";expression={[Math]::Round(([TimeSpan] $_.Latency).TotalMilliSeconds)}}
    $MessageLatencyTime = @{Name="MessageLatencyTime";expression={[Math]::Round(([TimeSpan] $_.Latency).TotalMilliSeconds)}}
    $hotLink = @{Name="URL";expression={Get-HTMLLink ($_.URL)}}
    $colourResult = @{Name="Result";expression={Get-Ink ($_.Result)}}
    $colourStatus = @{Name="Status";expression={Get-Ink ($_.Status)}}
    $colourType = @{Name="Status";expression={Get-Ink ($_.Type)}}
    $newResult = @{Name="Result";expression={If ($_.Result.ToString() -ne 'Success'){Get-Ink ('Failure')} Else {Get-Ink ('Success') }}}
    $fullReport = Get-CustomHTML "Exchange 2007 "
    $fullReport += Get-CustomHTMLClose
    Foreach ($Target in $Targets){
    Write-Host "Collating Detail for $Target" -ForegroundColor Yellow
     Write-Host "..getting basic computer configuration"
     $ComputerSystem = Get-WmiObject -computername $Target Win32_ComputerSystem
     switch ($ComputerSystem.DomainRole){
      0 { $ComputerRole = "Standalone Workstation" }
      1 { $ComputerRole = "Member Workstation" }
      2 { $ComputerRole = "Standalone Server" }
      3 { $ComputerRole = "Member Server" }
      4 { $ComputerRole = "Domain Controller" }
      5 { $ComputerRole = "Domain Controller" }
      default { $ComputerRole = "Information not available" }
     $OperatingSystems = Get-WmiObject -computername $Target Win32_OperatingSystem
     $TimeZone = Get-WmiObject -computername $Target Win32_Timezone
     $Keyboards = Get-WmiObject -computername $Target Win32_Keyboard
     $SchedTasks = Get-WmiObject -computername $Target Win32_ScheduledJob
     $BootINI = $OperatingSystems.SystemDrive + "boot.ini"
     $RecoveryOptions = Get-WmiObject -computername $Target Win32_OSRecoveryConfiguration
     $exServer = Get-ExchangeServer | where {$_.Name -eq "$Target"}
     $exVersion = "Version " + $exServer.AdminDisplayVersion.Major + "." + $exServer.AdminDisplayVersion.Minor + " (Build " + $exServer.AdminDisplayVersion.Build + "." + $exServer.AdminDisplayVersion.Revision + ")"
     switch ($ComputerRole){
      "Member Workstation" { $CompType = "Computer Domain"; break }
      "Domain Controller" { $CompType = "Computer Domain"; break }
      "Member Server" { $CompType = "Computer Domain"; break }
      default { $CompType = "Computer Workgroup"; break }
     $LBTime=$OperatingSystems.ConvertToDateTime($OperatingSystems.Lastbootuptime)
     $MyReport += Get-CustomHeader0  "$Target - Role(s): $($exServer.ServerRole)"
     $MyReport += Get-CustomHeader "2" "Basic Server Information"
      $MyReport += Get-HTMLDetail "Computer Name" ($ComputerSystem.Name)
      $MyReport += Get-HTMLDetail "Computer Role" ($ComputerRole)
      $MyReport += Get-HTMLDetail "Exchange Role(s)" ($exServer.ServerRole)
      $MyReport += Get-HTMLDetail "Last System Boot" ($LBTime)
      $MyReport += Get-CustomHeaderClose
      Write-Host "..getting logical disk configuration"
      $Disks = Get-WmiObject -ComputerName $Target Win32_LogicalDisk
      $MyReport += Get-CustomHeader "2" "Logical Disk Configuration"
       $LogicalDrives = @()
       Foreach ($LDrive in ($Disks | Where {$_.DriveType -eq 3})){
        $Details = "" | Select "Drive Letter", Label, "File System", "Disk Size (GB)", "Disk Free Space", "% Free Space"
        $Details."Drive Letter" = $LDrive.DeviceID
        $Details.Label = $LDrive.VolumeName
        $Details."File System" = $LDrive.FileSystem
        $Details."Disk Size (GB)" = [math]::round(($LDrive.size / 1GB))
        $Details."Disk Free Space" = [math]::round(($LDrive.FreeSpace / 1GB))
        $Details."% Free Space" = Get-Ink ([Math]::Round(($LDrive.FreeSpace /1GB) / ($LDrive.Size / 1GB) * 100))
        $LogicalDrives += $Details
       $MyReport += Get-HTMLTable ($LogicalDrives)
      $MyReport += Get-CustomHeaderClose
      if ($exServer.ServerRole -like "*ClientAccess*")
      {$MyReport += Get-CustomHeader "2" "OWA Connectivity"
       Write-Host "..performing OWA connectivity test"
       $colOWAResults = Test-OwaConnectivity -ClientAccessServer $Target
       $MyReport += Get-HTMLTable ($colOWAResults | select MailboxServer, $hotLink, Scenario, $colourResult, $latencyMS, Error)
       $MyReport += Get-CustomHeaderClose
    Write-Host "..getting queue details"
      if ($exServer.ServerRole -like "*HubTransport*")
      $MyReport += Get-CustomHeader "2" "Queue Information"
      $colQs = Get-Queue -server $Target
      $MyReport += Get-HTMLTable ($colQs | Select-Object NextHopDomain, $colourStatus, MessageCount, NextRetryTime)
      $MyReport += Get-CustomHeaderClose
      Write-Host "..getting mailbox database information"
      $spaceLog=[System.Diagnostics.EventLog]::GetEventLogs($target) | where {($_.LogDisplayName -eq "Application")}
      $db = @{Name="database";Expression={$_.ReplacementStrings[1]}}
      $freeMB = @{Name="MB";Expression={[int]$_.ReplacementStrings[0]}}
      $whiteSpace = $spaceLog.entries | where {($_.TimeWritten -ge $now.AddDays(-1))} | where {($_.EventID -eq "1221")} | select $db,$freeMB
      $ws = @{Name="White Space";expression={}}
      if ($exServer.ServerRole -like "*Mailbox*")
       $MyReport += Get-CustomHeader "2" "Mailbox Stores"
       $colMailboxStores = Get-MailboxDatabase -Server $Target -Status | Sort-Object Name
       $storeTable = @()
       Foreach ($objMailboxStore in $colMailboxStores)
        [string]$totalUsers = (get-mailbox -database $objMailboxStore).count
        [string]$empty = $totalUsers.Length -eq 0
        if ($empty -eq 'True')
         [string]$totalUsers = "0"
        $storeDetails = "" | Select Name, Mounted, "Total Users", "White Space", LastFullBackup
        $storeDetails.Name = $objMailboxStore.Name
        $storeDetails.Mounted = Get-Ink ($objMailboxStore.Mounted)
        $storeDetails."Total Users" = $totalUsers
        $storeDetails."White Space" = (($whitespace | where {$_.database -match $objMailboxStore.Name} | select -last 1).mb)
        $storeDetails.LastFullBackup = $objMailboxStore.LastFullBackup
        $storeTable += $storeDetails
        $MyReport += Get-HTMLTable ($storeTable)
       $MyReport += Get-CustomHeaderClose
       $MyReport += Get-CustomHeader "2" "MAPI Connectivity"
       Write-Host "..performing MAPI connectivity test"
       $colMAPIResults = Test-MAPIConnectivity -Server $Target
        $MyReport += Get-HTMLTable ($colMAPIResults | select Database, $newResult, $latencyMS, Error)
       $MyReport += Get-CustomHeaderClose
       $MyReport += Get-CustomHeader "2" "Mailflow Test"
       Write-Host "..performing Mailflow test"
       $colMailflowResults = Test-Mailflow -Server $Target
        $MyReport += Get-HTMLTable ($colMailflowResults | select TestMailflowResult, $MessageLatencyTime)
       $MyReport += Get-CustomHeaderClose
      Write-Host "..getting Exchange services"
      $ListOfServices = (gwmi -computer $Target -query "select * from win32_service where Name like 'MSExchange%' or Name like 'IIS%' or Name like 'SMTP%' or Name like 'POP%' or Name like 'W3SVC%'")
      $MyReport += Get-CustomHeader "2" "Exchange Services"
       $Services = @()
       Foreach ($Service in $ListOfServices){
        $Details = "" | Select Name,Account,"Start Mode",State,"Expected State"
        $Details.Name = $Service.Caption
        $Details.Account = $Service.Startname
        $Details."Start Mode" = $Service.StartMode
        If ($Service.StartMode -eq "Auto")
          if ($Service.State -eq "Stopped")
           $Details.State = $Service.State
           $Details."Expected State" = Get-Ink ("Unexpected")
         If ($Service.StartMode -eq "Auto")
          if ($Service.State -eq "Running")
           $Details.State = $Service.State
           $Details."Expected State" = Get-Ink ("OK")
         If ($Service.StartMode -eq "Disabled")
          If ($Service.State -eq "Running")
           $Details.State = $Service.State
           $Details."Expected State" = Get-Ink ("Unexpected")
         If ($Service.StartMode -eq "Disabled")
          if ($Service.State -eq "Stopped")
           $Details.State = $Service.State
           $Details."Expected State" = Get-Ink ("OK")
         If ($Service.StartMode -eq "Manual")
          $Details.State = $Service.State
          $Details."Expected State" = Get-Ink ("OK")
         If ($Service.State -eq "Paused")
          $Details.State = $Service.State
          $Details."Expected State" = Get-Ink ("OK")
        $Services += $Details
        $MyReport += Get-HTMLTable ($Services)
       $MyReport += Get-CustomHeaderClose
        $eventLogs=[System.Diagnostics.EventLog]::GetEventLogs($Target) | where {($_.LogDisplayName -eq "Application") -OR ($_.LogDisplayName -eq "System")}
        $warningEvents = @()
        $errorEvents = @()
        $LogSettings = @()
     $MyReport += Get-CustomHTMLClose
     $fullReport += $MyReport
     $MyReport = $null
     $Date = Get-Date
     $Filename = ".\" + "Exchange_Health" + "_" + $date.Hour + $date.Minute + "_" + $Date.Day + "-" + $Date.Month + "-" + $Date.Year + ".htm"
     $fullReport | out-file -encoding ASCII -filepath $Filename
     Write "Audit saved as $Filename"
    Invoke-Item $Filename

    please refer to my scripts below, it should get you started.
    http://www.myexchangeworld.com/2010/03/powershell-disk-space-html-email-report/
    http://www.myexchangeworld.com/2010/07/powershell-script-to-monitor-exchange-server-2010-services-email-report/
    you can customsise this to your needs and add relevant information.
    cheers
    thiyagu
    Thiyagu | MCTS/MCITP - Exchange 2007 | MCSE 2003[Messaging] | http://www.myExchangeWorld.com. This posting is provided "AS IS" with no warranties, and confers no rights.

  • Exchange 2010 Org Health check telling me I need Enterprise CALs, bug?

    My new install of Exchange 2010 Enterprise organizational health check  is telling me I also need Enterprise CALs for all of my test users. This does not seem right since I have not enabled any features listed as ecal features at http://www.microsoft.com/exchange/en-us/licensing-exchange-server-email.aspx#Exchange2010CAL
    in fact the setup is a very basic one. The test users were migrated from an existing exchange 2007 server but again no enterprise features were enabled there. Is there a way to tell what it thinks I need enterprise CALs for? Is this a bug? I saw a notice that
    the RTM version had counted the default exchange active sync policy as an ecal requirement but I figured this would have been fixed by now.

    looks like it has reared its head in update rollup 8-v2 for sp3. Last year I was playing around with the archive mailbox to see if it was something we may want to implement. At the time our enterprise cal requirements went from 0 to 1 for the test system
    I was using. This ended up being something we did not want to pursue at the time so I disabled the option on the account. Happened to run the organizational health link today and now it says that all accounts need enterprise cals. Did not appear to be an issue
    in update 7. 

Maybe you are looking for

  • It doesn�t work lazy loading with remote client (toplink)

    I am trying to use lazy loading in a @ManyToOne field but I get an exception. I have been reading in some oracle tutorials that it's necesary use -javaagent:.../lib/toplink-essentials-agent.jar for that it works because this argument activate dynamic

  • Can I set parental control on firefox for a specific user only?

    I'm using windows 7 and firefox 18.0.2. On my PC I have my Admin account and my kids account. Now as they're coming to an age they're needing Internet access for projects and so on, I wonder if I can set parental control on firefox (by add-on?) as I

  • HT3945 Aperture 2 library "cannot be upgraded" to work with Aperture 3; why not?

    Just bought and installed Aperture 3,latest version. Before loading new program, I unplugged external hard drive where my Aperture library is stored. Just wanted to make sure nothing happened to the content, in excess of 60,000 images. After booting

  • Sendmail with domain error

    On my sendmail 8.12.8 server, when someone from a domain other than .com domain sends mail, they get the following error. Mar 12 12:24:13 sunnyboy sendmail[15913]: [ID 801593 mail.notice] h2CKODFx015913: ruleset=check_mail, arg1=<[email protected]>,

  • Virtual KF using BADI

    Dear all, My requirement is to create a virtual KF using BADI to populate a keyfigure ZWKDAY value in the bex query. Condition -  I need to read 0calday from the cube and find it whether its a workday or not. If its working day then my KF ZWKDAY shou