Migrating ACL, Groups, Classes...

Dears,
I would like to know if he is possible migrate groups, acls and classrooms between two servers with cmsdk 9,0,4
Somebody can help-me?
Grateful,
Marcelo

Use the following documents for your help. Cisco Security Manager Install and Upgrade Guides
http://www.cisco.com/en/US/products/ps6498/prod_installation_guides_list.html

Similar Messages

  • User group [$CLASS] not an Org level field in IA, whereas it is in DA

    Hi All,
    We have an authorization problem that we faced while SAP Upgrade. In the development system while we upgraded all the roles, we did not face any issue. User group field [$CLASS] was actually an org level field in that system and the roles were upgraded based on that condition.
    When the Integration system was up and the upgraded roles were transported to IA, we noticed that they ended with a warning. On checking the logs we found out that User group [CLASS] actually was not an Org level value in the INtegration system, whereas it was an org level field in the development system.
    Can someone tell me the reason why it is different? Is there any settings we have to change to make User group  an org level field in IA. Thanks a lot for your help.
    Vijith

    Hello, I ran into this also and found these notes to explain why this is suddenly an org value and how to fix it:
    http://search.sap.com/notes?id=0001580048
    http://search.sap.com/notes?id=0001739055
    Basically, GRC 10 add-on makes the user group an org value and the note instructs how to undo this manually, but there is a required pre-requisite because you cannot modify this for SAP delivered fields normally.
    You know what else would be nice.... maybe there's a note that explains why Account Type is an org value.  It REALLY should not be, IMO.

  • Migrating Response Groups

    Hi everyone,
    Migrating from lync 2010 to lync 2013 using this guide http://technet.microsoft.com/en-us/library/jj204854.aspx 
    Now i have run the Move-CsRgsConfiguration 
    command and now i can see the response group created in lync 2013 and still exist in lync 2010 for roll back purposes as the guide specified.
    Now i want to turn of the lync 2010 sql, so how can i decommission the
    old lync response groups in lync 2010 before i remove the whole lync 2010
    ammarhasayen

    I would not remove the Workflows from 2010. The article states "If any Lync Server 2010 response groups have been migrated to a Lync Server 2013 deployment, do not remove the contact objects of the migrated response groups. If you remove the contact object
    of a migrated response group, the new response group will stop working. The response groups that remained in Lync Server 2010 after the migration will be removed when the Lync Server 2010 deployment is decommissioned."
    If you remove the Service Contact Object, it will be removed from AD and the workflow will no longer be valid. When you decomision 2010 server, the duplicates will no longer appear. 
    Drago
    http://www.lynclog.com

  • Migrating Distribution groups error

    hi all experts,
    I am trying to migrate user/computers/groups from one domain to another... I have migrated users and computers are fine..when migrating distribution groups one is success and another is getting failed error 7422 access is denied
    what could be the issue
    great full for help
    Adnan

    Check the Access Control List on the group you are having problems.  Odds are, someone has changed them for some reason and the account you are using doesn't have the rights it needs.  Fix that and it should come across fine.
    If it answered your question, remember to “Mark as Answer”.
    If you found this post helpful, please “Vote as Helpful”.
    Postings are provided “AS IS” with no warranties, and confers no rights.
    Active Directory: Ultimate Reading Collection

  • How to move(migrate) OAF files(class files,PG files) using tool(Kintana)

    Hi,
    How to move(migrate) OAF files(class files,PG files) using tools(Kintana).
    Just want to know process for moving(migrating) OAF Files(class,PG) one instance to over instance(i.e dev to testing) using tools like kintana. We are planning to PVCS as versioning tool.
    Thanks

    New Line Types need to be added to Kintana Workflows and these line types should be able to use the xmlimport/xmlexport scripts.
    We have customized Kintana to migrate forms personalizations using FNDLOAD.
    I think, Change Management team should be able to address this.
    Srini

  • Weblogic implementation of java.security.acl.Group

    hi guys
    Do you know of any specific reason why there isnt a implementation of the
    java.security.acl.Group interface in the weblogic jar.
    I am trying to create a simple user manager service which uses the mbeans
    exposed by weblogic. However the interface I am coding to expects me to return
    java.security.acl.Group when I create a Group. This has resulted in a deadlock
    as I havent been able to locate a non deprecated implementation.
    Thanks
    anand

    Yes, you can do this.
    Alexandre Vauthey wrote:
    Hi,
    If I write my own securrity realm, am I able to use my own implementaion of
    'java.security.acl.Acl' and 'java.security.acl.AclEntry' or do I have to use
    the implementation provided by weblogic ? When Security.checkPermission() is
    called, does it solely rely on APIs defined in 'java.security.acl' or does
    it really expect to talk to an instance of weblogic 'AclImpl' ?
    Thanks, Alexandre.
    Alexandre Vauthey
    Software Engineer
    Application Networks
    444 Ramona street
    Palo Alto, CA 94301

  • Migrate function group from 4.6 to 6.0 ecc

    how can we migrate function group and modules from 4.6 to 6.0 ecc
    please reply

    Hello Yogesh
    If you do not want to replace any functionality with new functions from ECC 6.0 but just "move" it to the higher release then import your custom function group into the ECC 6.0 system and remove any Unicode errors.
    Unfortunately, transaction UCCHECK appears to be not available on release 4.6.
    Further reading: [ABAP and Unicode|http://help.sap.com/saphelp_nw04/helpdata/en/62/3f2cadb35311d5993800508b6b8b11/frameset.htm]
    Regards
      Uwe

  • How to migrate Data groups

    How to migrate data groups?? Is there any script for migrating datagroups using fndload ?? Or is there any special procedure to migrate them? Please help me.
    Thanks in advance.

    As per the FNDLOAD docs, you cannot use this tool to migrate the data groups and you will need to do it manually.
    You could log a SR to confirm this with Oracle Support.
    Thanks,
    Hussein

  • Custom User and Group classes

    Hi,
    I have a login custom module which does the authentication for my application.
    Till now I was using WLSUserImpl and WLSGroupIpml and everything was working fine.
    Now to make the LoginModule weblogic independent , I replaced the User and Group
    classes with my own classes which extend from java.security.Principal.
    But for some reason this isnt working. Am I missing something obvious.??
    This the exception stack trace which I get
    java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[com.isone.security.providers.authentication.ISOUser@1698cbe,
    com.isone.security.providers.authentication.ISOGroup@9719f4, com.isone.security.providers.authentication.ISOGroup@28ebb4,
    com.isone.security.providers.authentication.ISOGroup@8ab721, com.isone.security.providers.authentication.ISOGroup@fcf06c,
    com.isone.security.providers.authentication.ISOGroup@c7539, com.isone.security.providers.authentication.ISOGroup@1e41830,
    com.isone.security.providers.authentication.ISOGroup@1f01b29, com.isone.security.providers.authentication.ISOGroup@8721bd,
    com.isone.security.providers.authentication.ISOGroup@1b81d4f, com.isone.security.providers.authentication.ISOGroup@8c6e04,
    com.isone.security.providers.authentication.ISOGroup@18aeabe, com.isone.security.providers.authentication.ISOGroup@13968f1,
    com.isone.security.providers.authentication.ISOGroup@18c28a, com.isone.security.providers.authentication.ISOGroup@18bff68,
    com.isone.security.providers.authentication.ISOGroup@2d2da4]
         at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:682)
         at weblogic.security.service.RoleManager.getRoles(RoleManager.java:279)
         at weblogic.security.service.AuthorizationManager.isAccessAllowed(AuthorizationManager.java:694)
         at weblogic.servlet.security.internal.WebAppSecurity.hasPermission(WebAppSecurity.java:567)
         at weblogic.servlet.security.internal.SecurityModule.checkPerm(SecurityModule.java:134)
         at weblogic.servlet.security.internal.FormSecurityModule.checkUserPerm(FormSecurityModule.java:327)
         at weblogic.servlet.security.internal.SecurityModule.beginCheck(SecurityModule.java:182)
         at weblogic.servlet.security.internal.FormSecurityModule.checkA(FormSecurityModule.java:181)
         at weblogic.servlet.security.internal.ServletSecurityManager.checkAccess(ServletSecurityManager.java:145)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3539)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

    And this will explain you why there is no way to do this right now:
    (CR125681 -- although it says 7.0SP1 it is not fixed even in 8.1 SP2 and
    there is no time frame for the fix)
    http://support.bea.com/application?namespace=askbea&origin=ask_bea_answer.jsp&event=link.view_answer_page_clfydoc&answerpage=solution&page=wls/S-21705.htm
    We've had the same issue and even have an open support case and for now
    the only way to workaround the bug is to
    use the WLSUserImpl and WLSGroupImpl classes.
    HTH,
    Dejan
    Pavel wrote:
    See if this will help:
    http://edocs.bea.com/wls/docs81/dvspisec/pv.html
    Pavel.
    "Anil" <[email protected]> wrote:
    I actually extended PrincipalValidatorImpl and returned java.security.Principal
    as the base class.
    But still I got the same exception.
    PaulF <paulf@reply_in_newsgroup.com> wrote:
    On 25 Feb 2004 06:45:50 -0800, Anil <[email protected]> wrote:
    Hi,
    I have a login custom module which does the authentication for my
    application.
    Till now I was using WLSUserImpl and WLSGroupIpml and everything was
    working fine.
    Now to make the LoginModule weblogic independent , I replaced the
    User
    and Group
    classes with my own classes which extend from java.security.Principal.
    But for some reason this isnt working. Am I missing something obvious.??
    This the exception stack trace which I get
    java.lang.SecurityException: [Security:090398]Invalid Subject:
    principals=[com.isone.security.providers.authentication.ISOUser@1698cbe,
    com.isone.security.providers.authentication.ISOGroup@9719f4,
    com.isone.security.providers.authentication.ISOGroup@28ebb4,
    com.isone.security.providers.authentication.ISOGroup@8ab721,
    com.isone.security.providers.authentication.ISOGroup@fcf06c,
    com.isone.security.providers.authentication.ISOGroup@c7539,
    com.isone.security.providers.authentication.ISOGroup@1e41830,
    com.isone.security.providers.authentication.ISOGroup@1f01b29,
    com.isone.security.providers.authentication.ISOGroup@8721bd,
    com.isone.security.providers.authentication.ISOGroup@1b81d4f,
    com.isone.security.providers.authentication.ISOGroup@8c6e04,
    com.isone.security.providers.authentication.ISOGroup@18aeabe,
    com.isone.security.providers.authentication.ISOGroup@13968f1,
    com.isone.security.providers.authentication.ISOGroup@18c28a,
    com.isone.security.providers.authentication.ISOGroup@18bff68,
    com.isone.security.providers.authentication.ISOGroup@2d2da4]
         at
    weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:682)
         at weblogic.security.service.RoleManager.getRoles(RoleManager.java:279)
         at
    weblogic.security.service.AuthorizationManager.isAccessAllowed(AuthorizationManager.java:694)
         at
    weblogic.servlet.security.internal.WebAppSecurity.hasPermission(WebAppSecurity.java:567)
         at
    weblogic.servlet.security.internal.SecurityModule.checkPerm(SecurityModule.java:134)
         at
    weblogic.servlet.security.internal.FormSecurityModule.checkUserPerm(FormSecurityModule.java:327)
         at
    weblogic.servlet.security.internal.SecurityModule.beginCheck(SecurityModule.java:182)
         at
    weblogic.servlet.security.internal.FormSecurityModule.checkA(FormSecurityModule.java:181)
         at
    weblogic.servlet.security.internal.ServletSecurityManager.checkAccess(ServletSecurityManager.java:145)
         at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3539)
         at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    I think that you need to extend WLSAbstractPrincipal I think instead
    of
    WLSPrincipal if you aren't going to implement your own
    PrincipalValidator. The default PrincipalValidator is going to expect
    a
    principal that extends WLSAbstractPrincipal.
    PaulF
    Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/

  • Acl in class-map

    Hi
    i'm a little unsure of how using ACL's works within a class map.
    I want to allow access to a web server 1.1.1.1 and deny all othetraffic coming from the outside zone to the inside zone, so i have created an acl with a
    permit http to 1.1.1.1 and a deny ip any any statement and applied it to the class map.
    when i apply this to the policy map i can either inspect, drop or pass the traffic.
    what i don't understand is how this works with the ACL permit or deny statements or the implicit deny functionality of the ACL.
    for example if I apply the pass action to this class-map/ACL how does it handle the deny ip any any statement in the ACL?
    If i am passing the traffic in the policy, does it still deny any deny statements in the ACL?
    ​​also what about multiple class maps in a policy map, wouldn't a deny statement in the first acl stop further processing in the policy map
    hope this makes sense..
    thanks for any help

    When using ACLs in a class map, a permit entry causes the ACL condition to match and a deny entry does not. So, for your ACL "permit tcp any host 1.1.1.1 eq www", any HTTP traffic to 1.1.1.1 on 80/tcp will be matched by the class map and the implicit "deny ip any any" will not be matched. There is no action implied by the ACL when used this way, only a match or no match.
    ip access-list extended ACL_HTTP
    permit tcp any host 1.1.1.1 eq www
    class-map type inspect match-any CM_HTTP
    match access-group name ACL_HTTP
    In order to actually deny the traffic, you have to specify a drop in the policy map.
    policy-map PM_HTTP
    class CM_HTTP
    inspect
    class class-default
    drop
    To illustrate the point a bit further, let's say you were going to allow HTTP and HTTPS with two ACLs and did it like this:
    ip access-list extended ACL_HTTP
    permit tcp any host 1.1.1.1 eq www
    ip access-list extended ACL_HTTPS
    permit tcp any host 1.1.1.1 eq 443
    class-map type inspect match-any CM_HTTP
    match access-group name ACL_HTTP
    match access-group name ACL_HTTPS
    policy-map PM_HTTP
    class CM_HTTP
    inspect
    class class-default
    drop
    In the above case, HTTP traffic to 1.1.1.1 is a hit on ACL_HTTP's permit statement, is matched by the class map and is inspected by the policy map. HTTPS traffic to 1.1.1.1 is a hit on ACL_HTTPS's permit statement, is likewise matched by the class map and is inspected by the policy map. The implicit deny statements (and any other deny statements you may add) only ensure that the packet doesn't match that element of the class map and doesn't prevent it from being matched against another.

  • DMS Migration (DIR, charateristics, classes)

    Hi All,
    I have a requirement to migrate the Document Info Records, characteristics, classes, classification and the original documents from R/3 4.7 to ECC 6 Server, as well as move the original docs from the old KPRO server to the new KPRO Server.
    So far i was able to find the IDOC type that i can use for characteristics, classes and classification as well as the reports to do a mass distribution.
    My biggest problem is migrating the documents and to also ensure that, the links point to the new server. Your help would be really appreciated.
    Thank you in Advance,
    Danny

    Hi,
    U can use the message class DOCMAS.
    Also consider that you would need to transfer the following message types where applicable:
    Classification data needs to be ALEu2019d to the new system, in the sequence set out below:
    1.     Characteristics and Characteristic Values
    Most objects for variant configuration are dependent on characteristics. For this reason, characteristics must be transferred first.
    u2022     Characteristics with value hierarchies, long texts for characteristic values, or linked documents may lead to problems during transfer.
    u2022     Message type: CHRMAS
    u2022     Availability: as of R/3 3.0
    2.     Classes
    When you use ALE to distribute classes, the characteristic assignments are also transferred.
    u2022     Message type: CLSMAS
    u2022     Availability: as of R/3 3.0
    3.     Variant Table Structures
    These are the variant tables that are created to support data maintenance.
    u2022     Message type: VTAMAS
    u2022     Availability: as of R/3 3.1
    4.     Variant Table Contents
    Once the structures of the variant tables have been distributed, their contents can be transferred.
    u2022     Message type: VTMMAS
    u2022     Availability: as of R/3 3.1
    5.     User-Defined Functions (Variant Functions, VC Functions)
    User-defined functions in variant configuration let you use function modules that you have written, to check and infer characteristic values.
    The distribution of functions only transfers the framework (texts, characteristics, and so on). The function modules that belong to the functions must be transferred first, using the usual R/3 transport system.
    u2022     Message type: VFNMAS
    u2022     Availability: as of R/3 4.5
    6.     Object Dependencies (Except Constraints)
    Dependencies (preconditions, selection conditions, procedures, and actions) usually refer to characteristics, characteristic values, variant tables, and variant functions. For this reason, dependencies must be distributed after this other master data. The dependencies transferred here are global dependencies. Local dependencies are transferred with the objects to which they are assigned. For example, if you created a selection condition as a local dependency for a BOM item, this dependency is transferred when you use ALE to distribute the BOM (bill of material).
    u2022     Message type: KNOMAS
    u2022     Availability: as of R/3 3.1
    7.     Constraints
    Constraints can only be distributed as of R/3 4.5.
    u2022     Message type: KNOMAS
    u2022     Availability: as of R/3 4.5
    8.     Constraint Nets
    Constraint nets can only be distributed as of R/3 4.5.
    u2022     Message type: DEPNET
    u2022     Availability: as of R/3 4.5
    9.     Assignment of Dependencies to Characteristics and Characteristic Values
    u2022     The characteristics are transferred once more to do this. Start ALE distribution for characteristics again, and the system transfers the assignments.
    See point 1: Characteristics and Characteristic Values
    Regards,
    Freddie.

  • Migrating OID groups to OIM

    We have been given the task of migrating our existing identity management systems to OIM (Oracle Identity Manager).
    Part of our existing system uses OID (Oracle Internet Directory). All users have an entry in OID. Some of our systems use OID for authentication.
    We also use OID to hold users' entitlements/privileges that control access to our applications. We use OID groups (represented by entries based on groupOfUniqueNames and orclGroup objects) to do this. For example we might have an application called 'Finance' with three levels of access represented by OID groups e.g. 'finance_enquiry', 'finance_updater', 'finance_superuser'. Those groups would all belong to a parent group called 'finance_application'. To access the application the user needs to be a member of 'finance_application' group or one of its child groups. Access to features of the application are controlled by membership of the 3 child groups. We have an application that maintains groups, group membership, and user entitlements in OID.
    As part of the migration project we want to move maintenance of groups and group membership from our own application into OIM. The above scenario seems quite basic.
    My main question is how would this be done in OIM? Do our current OID groups become OIM Groups? Do they become entries in some lookup table in OIM? Are there any case studies or other documentation that describes this kind of requirement?
    I've looked at the OIM Connector for OID documentation but it doesn't describe typical scenarios. It assumes that you know what you are doing.
    We also want to give users the ability to request entitlements, and to provide an approval process. So we could have a user who approves/rejects entitlement requests to access to the applications they control. But that's a another topic.
    Cheers,
    Eric

    PeachEye wrote:
    We have been given the task of migrating our existing identity management systems to OIM (Oracle Identity Manager).
    As part of the migration project we want to move maintenance of groups and group membership from our own application into OIM. The above > scenario seems quite basic.You're about to find out otherwise.
    >
    My main question is how would this be done in OIM? Do our current OID groups become OIM Groups? Do they become entries in some lookup table > in OIM? Are there any case studies or other documentation that describes this kind of requirement?You'll need a custom connector and lots of OIM tweaks. Your groups will stay in OID, OIM will replace the current application you use to maintain them. That's one way of doing it, no impact to OID schema is the benefit of this way, there are other ways.

  • ACL group permissions not propagating

    I have a group of designers that are connected to X Server running Snow Leopard.
    I have placed them in a group, "MarComm"
    I have granted everyone full read/write access. ( I can trust them all)
    I have tried to propagate these permissions..I saved the changes and restarted server.
    For some reason there are 2 sets of permissions.
    1) full access (desired configuration)
    2) "custom" access
    This "custom" access does erratic things..for ex:
    Allows the designer to pull off a job folder containing 12 items. He has permission to use 8 items, but not the remaining 4.
    Perhaps I need a step by step tutorial on how to create a proper "group" and to propagate permissions. I understand that the ACL should take precedence over the POSIX. I am not well-versed in using the terminal, but I am a careful person, and willing to try it.
    Thank you in advance

    Setting up groups in WGM is pretty fool proof.  What I would try first is to remove all of the ACL's for the folder in question first.
    Ensure that all of the files and folders within your folder have ACL's that can be removed.  If not, then you'll have to clear the ACL's on each, one at a time.
    The command to clear the ACL's from a folder and it's subfile and folders looks like this:
    sudo chmod -R -N /path/to/folder
    If you want to just remove an ACL from one file or folder, remove the -R from the command.
    To write an ACL and have it apply to all folders within looks like this: (two commands, one to add read and one to add write permissions)
    sudo chmod -R +a "groupname allow read" /path/to/file/
    sudo chmod -R +a "groupname allow write" /path/to/file/
    HTH!
    -Graham

  • SCOM SP1 Groups, Classes and SNMP

    I've been working on a management pack using some of the examples on the net (Kristopher Bash from the operating-quadrantin has been a huge inspiration) to monitor an Isilon cluster.  This had lead me to a number of interesting challenges to over come since I have to design this within the confines of SP1 and I have a unique networking to device configuration. 
    Device Overview:
    The Isilon cluster itself is a number of FreeBSD systems (nodes) joined together via and infiniband backend to create a single NAS.  While normally this would not be an issue, network connectivity to the device and SNMP response from the cluster have been.  In my configuration I have a total of 8 nodes each node has 2 network interfaces.  Of these 16 network interfaces only 2 are accessible/on the same network as my RMS (em1 node2, em1 node4).
    Device SNMP Design:
    While the cluster is highly dynamic the SNMP sub-systems are not.  The MIB created by Isilon does not join the whole of the cluster into an index for SNMP polling.  I can only poll a single nodes OID's.  To over come this limitation Isilon implemented SNMP-Proxy or comtosec within the system.  This allowed me to poll node 3 by changing the community name for the OID I was polling from the discovered name to <discoveredname>_node_3.
    MP Design:
    Now I'm not the best at MP design since I rarely work within SCOM so don't laugh too hard...  I reused items from Kristopher's Cisco MP and created a number of classes for discovery and item hosting.  To address the limitation I found within SCOM for dynamic discovery and 1 IP address 1 Community Name, I created a class property within the root called ConfiguredNodes.  I can poll the Isilon an populate this value (8).  Then I created a sub-class property value called NodeCommStr to fill in all the custom community names I generate using a VB script with Base64 encode/decode, the discovery community name and the ConfiguredNodes value, in the data source for sub-class discovery. public_node_1 public_node_2 etc...
    All in all this is working well however I have run into a few design roadblocks and I have some questions.
    1.  When I discover a set of items within the Isilon cluster the health explorer is not sorting this information alphabetically.  Is there a value I can include in the dependency roll-up to correct this?
    2.  I have run into an issue with the Isilon MIB and I'm looking for the best way to overcome the MIB's design.  They included a fan table with fan information and speed of the fans however there is no status (success{0}, warning{1}, error{2}).  I created a monitor type to compensate for this and included overrides for the warning and critical event points.  This is where I found the curve ball, seems that the fans are not the same....  There are 2 sets of fans - Chassis and Power Supply - and they have different thresholds *rolls eyes*.  Some I'm asking for the best design advice, should I create 2 classes, discoveries, monitor types, etc.?  Or can I address this issue by creating 2 monitor types with a string filter?
    3.  I've been successful in creating this MP and displaying the information as a single device however I was wondering if there was a way to create dynamic groups with sub groups.  This would have to be 100% dynamic since I can add a 9th 10th 192nd (yes 192) node to the cluster.
    Cluster
    -ClusterNode1
    -ClusterNode1Power
    -ClusterNode1Fans
    -etc
    The information is there in the NodeCommStr, I'm just in brain lock on how to design it right now.
    Again, code is raw and a work in progress so please no giggling.  Oh this is a multi post...  Code is too long.
    <Manifest>
    <Identity>
    <ID>IsilonSNMP</ID>
    <Version>1.0.1.2</Version>
    </Identity>
    <Name>IsilonSNMP</Name>
    <References>
    <Reference Alias="MicrosoftSystemCenterNetworkDeviceLibrary">
    <ID>Microsoft.SystemCenter.NetworkDevice.Library</ID>
    <Version>6.0.6278.0</Version>
    <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
    </Reference>
    <Reference Alias="Snmp">
    <ID>System.Snmp.Library</ID>
    <Version>6.0.6278.0</Version>
    <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
    </Reference>
    <Reference Alias="SystemHardwareLibrary">
    <ID>System.Hardware.Library</ID>
    <Version>6.0.6278.0</Version>
    <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
    </Reference>
    <Reference Alias="Windows">
    <ID>Microsoft.Windows.Library</ID>
    <Version>6.0.6278.0</Version>
    <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
    </Reference>
    <Reference Alias="SystemPerformanceLibrary">
    <ID>System.Performance.Library</ID>
    <Version>6.0.6278.0</Version>
    <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
    </Reference>
    <Reference Alias="System">
    <ID>System.Library</ID>
    <Version>6.0.6278.0</Version>
    <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
    </Reference>
    <Reference Alias="SC">
    <ID>Microsoft.SystemCenter.Library</ID>
    <Version>6.0.6278.0</Version>
    <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
    </Reference>
    <Reference Alias="Health">
    <ID>System.Health.Library</ID>
    <Version>6.0.6278.0</Version>
    <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
    </Reference>
    </References>
    </Manifest>
    <TypeDefinitions>
    <EntityTypes>
    <ClassTypes>
    <ClassType ID="IsilonSNMP.Class.IsilonCluster" Accessibility="Public" Abstract="false" Base="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice" Hosted="false" Singleton="false">
    <Property ID="Hostname" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
    <Property ID="ConfiguredNodes" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
    <!-- <Property ID="NodeCommStr" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" /> -->
    </ClassType>
    <ClassType ID="IsilonSNMP.Class.IsilonCluster.Nodes" Accessibility="Public" Abstract="false" Base="SystemHardwareLibrary!System.Chassis" Hosted="true" Singleton="false">
    <Property ID="Name" Type="string" Key="true" CaseSensitive="false" Length="256" MinLength="0" />
    </ClassType>
    <ClassType ID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" Accessibility="Public" Abstract="false" Base="SystemHardwareLibrary!System.PhysicalDisk" Hosted="true" Singleton="false">
    <Property ID="Index" Type="string" Key="true" CaseSensitive="false" Length="256" MinLength="0" />
    <!-- <Property ID="ConfiguredNodes" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" /> -->
    <Property ID="NodeCommStr" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
    <Property ID="BayIndex" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
    </ClassType>
    <ClassType ID="IsilonSNMP.Class.IsilonCluster.PhysicalFan" Accessibility="Public" Abstract="false" Base="SystemHardwareLibrary!System.Fan" Hosted="true" Singleton="false">
    <Property ID="Index" Type="string" Key="true" CaseSensitive="false" Length="256" MinLength="0" />
    <Property ID="NodeCommStr" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
    <Property ID="FanNumber" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
    </ClassType>
    <ClassType ID="IsilonSNMP.Group.IsilonClusters" Accessibility="Public" Abstract="false" Base="System!System.Group" Hosted="false" Singleton="true" />
    </ClassTypes>
    <RelationshipTypes>
    <RelationshipType ID="IsilonSNMP.Relationship.ClusterHostsNodes" Accessibility="Internal" Abstract="false" Base="System!System.Hosting">
    <Source>IsilonSNMP.Class.IsilonCluster</Source>
    <Target>IsilonSNMP.Class.IsilonCluster.Nodes</Target>
    </RelationshipType>
    <RelationshipType ID="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters" Accessibility="Public" Abstract="false" Base="System!System.Containment">
    <Source>IsilonSNMP.Group.IsilonClusters</Source>
    <Target>IsilonSNMP.Class.IsilonCluster</Target>
    </RelationshipType>
    <RelationshipType ID="IsilonSNMP.Relationship.NodesHostsPhysicalDisk" Accessibility="Public" Abstract="false" Base="System!System.Hosting">
    <Source>IsilonSNMP.Class.IsilonCluster.Nodes</Source>
    <Target>IsilonSNMP.Class.IsilonCluster.PhysicalDisk</Target>
    </RelationshipType>
    <RelationshipType ID="IsilonSNMP.Relationship.NodesHostsPhysicalFan" Accessibility="Public" Abstract="false" Base="System!System.Hosting">
    <Source>IsilonSNMP.Class.IsilonCluster.Nodes</Source>
    <Target>IsilonSNMP.Class.IsilonCluster.PhysicalFan</Target>
    </RelationshipType>
    </RelationshipTypes>
    </EntityTypes>
    <ModuleTypes>
    <DataSourceModuleType ID="IsilonSNMP.DataSource.BasicSNMPProbe" Accessibility="Internal" Batching="false">
    <Configuration>
    <xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="CommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="OID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    </Configuration>
    <OverrideableParameters>
    <OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
    </OverrideableParameters>
    <ModuleImplementation Isolation="Any">
    <Composite>
    <MemberModules>
    <DataSource ID="Scheduler" TypeID="System!System.Scheduler">
    <Scheduler>
    <SimpleReccuringSchedule>
    <Interval>$Config/Interval$</Interval>
    <SyncTime />
    </SimpleReccuringSchedule>
    <ExcludeDates />
    </Scheduler>
    </DataSource>
    <ProbeAction ID="SNMPProbe" TypeID="Snmp!System.SnmpProbe">
    <IsWriteAction>false</IsWriteAction>
    <IP>$Config/IPAddress$</IP>
    <CommunityString>$Config/CommStr$</CommunityString>
    <SnmpVarBinds>
    <SnmpVarBind>
    <OID>$Config/OID$</OID>
    <Syntax>0</Syntax>
    <Value VariantType="8" />
    </SnmpVarBind>
    </SnmpVarBinds>
    </ProbeAction>
    <ConditionDetection ID="ValueFilter" TypeID="System!System.ExpressionFilter">
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>NotEqual</Operator>
    <ValueExpression>
    <Value Type="String" />
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    </ConditionDetection>
    </MemberModules>
    <Composition>
    <Node ID="ValueFilter">
    <Node ID="SNMPProbe">
    <Node ID="Scheduler" />
    </Node>
    </Node>
    </Composition>
    </Composite>
    </ModuleImplementation>
    <OutputType>Snmp!System.SnmpData</OutputType>
    </DataSourceModuleType>
    <DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverContainmentClasses" Accessibility="Internal" Batching="false">
    <Configuration>
    <IncludeSchemaTypes>
    <SchemaType>System!System.ParamListSchema</SchemaType>
    <SchemaType>System!System.Discovery.MapperSchema</SchemaType>
    </IncludeSchemaTypes>
    <xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="ClassID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="InstanceSettings" type="SettingsType" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    </Configuration>
    <ModuleImplementation Isolation="Any">
    <Composite>
    <MemberModules>
    <DataSource ID="Scheduler" TypeID="System!System.Scheduler">
    <Scheduler>
    <SimpleReccuringSchedule>
    <Interval>60</Interval>
    <SyncTime />
    </SimpleReccuringSchedule>
    <ExcludeDates />
    </Scheduler>
    </DataSource>
    <ConditionDetection ID="Mapper" TypeID="System!System.Discovery.ClassSnapshotDataMapper">
    <ClassId>$Config/ClassID$</ClassId>
    <InstanceSettings>$Config/InstanceSettings$</InstanceSettings>
    </ConditionDetection>
    </MemberModules>
    <Composition>
    <Node ID="Mapper">
    <Node ID="Scheduler" />
    </Node>
    </Composition>
    </Composite>
    </ModuleImplementation>
    <OutputType>System!System.Discovery.Data</OutputType>
    </DataSourceModuleType>
    <DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverCluster" Accessibility="Internal" Batching="false">
    <Configuration>
    <xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="IP" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="CommunityString" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="SystemOID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    </Configuration>
    <OverrideableParameters>
    <OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
    </OverrideableParameters>
    <ModuleImplementation Isolation="Any">
    <Composite>
    <MemberModules>
    <DataSource ID="Scheduler" TypeID="System!System.Scheduler">
    <Scheduler>
    <SimpleReccuringSchedule>
    <Interval Unit="Seconds">$Config/Interval$</Interval>
    </SimpleReccuringSchedule>
    <ExcludeDates />
    </Scheduler>
    </DataSource>
    <ProbeAction ID="Probe" TypeID="Snmp!System.SnmpProbe">
    <IsWriteAction>false</IsWriteAction>
    <IP>$Config/IP$</IP>
    <CommunityString>$Config/CommunityString$</CommunityString>
    <SnmpVarBinds>
    <SnmpVarBind>
    <OID>.1.3.6.1.4.1.12124.1.1.4.0</OID>
    <Syntax>0</Syntax>
    <Value VariantType="8" />
    </SnmpVarBind>
    <SnmpVarBind>
    <OID>.1.3.6.1.4.1.12124.1.1.1.0</OID>
    <Syntax>0</Syntax>
    <Value VariantType="8" />
    </SnmpVarBind>
    <SnmpVarBind>
    <OID>.1.3.6.1.2.1.1.5.0</OID>
    <Syntax>0</Syntax>
    <Value VariantType="8" />
    </SnmpVarBind>
    <SnmpVarBind>
    <OID>.1.3.6.1.2.1.1.1.0</OID>
    <Syntax>0</Syntax>
    <Value VariantType="8" />
    </SnmpVarBind>
    <SnmpVarBind>
    <OID>.1.3.6.1.2.1.1.4.0</OID>
    <Syntax>0</Syntax>
    <Value VariantType="8" />
    </SnmpVarBind>
    <SnmpVarBind>
    <OID>.1.3.6.1.2.1.1.6.0</OID>
    <Syntax>0</Syntax>
    <Value VariantType="8" />
    </SnmpVarBind>
    <SnmpVarBind>
    <OID>.1.3.6.1.2.1.1.2.0</OID>
    <Syntax>0</Syntax>
    <Value VariantType="8" />
    </SnmpVarBind>
    </SnmpVarBinds>
    </ProbeAction>
    <ConditionDetection ID="Mapper" TypeID="System!System.Discovery.FilteredClassSnapshotDataMapper">
    <Expression>
    <RegExExpression>
    <ValueExpression>
    <XPathQuery>/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>ContainsSubstring</Operator>
    <Pattern>1.3.6.1.4.1.12124.</Pattern>
    </RegExExpression>
    </Expression>
    <ClassId>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]$</ClassId>
    <InstanceSettings>
    <Settings>
    <Setting>
    <Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Name>
    <Value>$Data/Source$</Value>
    </Setting>
    <Setting>
    <Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/Name$</Name>
    <Value>$Data/SnmpVarBinds/SnmpVarBind[5]/Value$</Value>
    </Setting>
    <Setting>
    <Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemDescription$</Name>
    <Value>$Data/SnmpVarBinds/SnmpVarBind[4]/Value$</Value>
    </Setting>
    <Setting>
    <Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemContact$</Name>
    <Value>$Data/SnmpVarBinds/SnmpVarBind[3]/Value$</Value>
    </Setting>
    <Setting>
    <Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemLocation$</Name>
    <Value>$Data/SnmpVarBinds/SnmpVarBind[2]/Value$</Value>
    </Setting>
    <Setting>
    <Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemOID$</Name>
    <Value>$Data/SnmpVarBinds/SnmpVarBind[1]/Value$</Value>
    </Setting>
    <Setting>
    <Name>$MPElement[Name="System!System.Entity"]/DisplayName$</Name>
    <Value>$Data/SnmpVarBinds/SnmpVarBind[5]/Value$</Value>
    </Setting>
    <Setting>
    <Name>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]/Hostname$</Name>
    <Value>$Data/SnmpVarBinds/SnmpVarBind[6]/Value$</Value>
    </Setting>
    <Setting>
    <Name>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]/ConfiguredNodes$</Name>
    <Value>$Data/SnmpVarBinds/SnmpVarBind[7]/Value$</Value>
    </Setting>
    </Settings>
    </InstanceSettings>
    </ConditionDetection>
    <ConditionDetection ID="SystemOIDFilter" TypeID="System!System.ExpressionFilter">
    <Expression>
    <RegExExpression>
    <ValueExpression>
    <Value>$Config/SystemOID$</Value>
    </ValueExpression>
    <Operator>ContainsSubstring</Operator>
    <Pattern>1.3.6.1.4.1.12124.</Pattern>
    </RegExExpression>
    </Expression>
    </ConditionDetection>
    </MemberModules>
    <Composition>
    <Node ID="Mapper">
    <Node ID="Probe">
    <Node ID="SystemOIDFilter">
    <Node ID="Scheduler" />
    </Node>
    </Node>
    </Node>
    </Composition>
    </Composite>
    </ModuleImplementation>
    <OutputType>System!System.Discovery.Data</OutputType>
    </DataSourceModuleType>
    <DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverPhysicalDisk" Accessibility="Internal" Batching="false">
    <Configuration>
    <xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="CommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="ConfiguredNodes" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="BayIndex" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    </Configuration>
    <OverrideableParameters>
    <OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
    </OverrideableParameters>
    <ModuleImplementation Isolation="Any">
    <Composite>
    <MemberModules>
    <DataSource ID="Scheduler" TypeID="System!System.Scheduler">
    <Scheduler>
    <SimpleReccuringSchedule>
    <Interval>$Config/Interval$</Interval>
    <SyncTime />
    </SimpleReccuringSchedule>
    <ExcludeDates />
    </Scheduler>
    </DataSource>
    <ProbeAction ID="ScriptDiscovery" TypeID="Windows!Microsoft.Windows.ScriptDiscoveryProbe">
    <ScriptName>DiscoverIsilonDisk.vbs</ScriptName>
    <Arguments>$Config/IPAddress$ $Config/CommStr$ $MPElement$ $Target/Id$ $Config/ConfiguredNodes$</Arguments>
    <ScriptBody>
    <![CDATA['Discover PhysicalDisk
    Dim oAPI, oDiscoveryData, oInst, objWMIServices, objWMILocator, oArgs
    set oArgs = Wscript.Arguments
    if oArgs.Count <5 Then
    Wscript.Quit -1
    End If
    DeviceIP = oArgs(0)
    CommStr = oArgs(1)
    SourceID = oArgs(2)
    ManagedEntityId = oArgs(3)
    StrConfiguredNodes = oArgs(4)
    CommStr = Decode(CommStr)
    ConfiguredNodesCommStr = cstr(CommStr)
    wscript.echo CommStr
    Set oAPI = CreateObject("MOM.ScriptAPI")
    set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
    Set objWMILocator = CreateObject("WbemScripting.SWbemLocator")
    Set objWMIServices = objWMiLocator.ConnectServer("","root\snmp\localhost")
    'Name community name
    GetPhysicalDisks
    'Created community names
    For i = 1 to StrConfiguredNodes
    CommStr = ConfiguredNodesCommStr & "_node_" & i
    GetPhysicalDisks
    Next
    'Return all data to SCOM
    Call oAPI.Return(oDiscoveryData)
    Sub GetPhysicalDisks
    on error resume next
    Set objWmiNamedValueSet = CreateObject("WbemScripting.SWbemNamedValueSet")
    objWmiNamedValueSet.Add "AgentAddress", cstr(DeviceIP)
    objWmiNamedValueSet.Add "AgentReadCommunityName", cstr(CommStr)
    Set colPhysicalDisk = objWmiServices.InstancesOf("SNMP_ISILON_MIB_diskTable", , objWMINamedValueset)
    For each objItem in colPhysicalDisk
    nIndex = objItem.diskBay
    sDesc = objItem.diskSerialNumber
    if nIndex > 0 then
    set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']$")
    call oInst.AddProperty("$MPElement[Name='MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice']/IPAddress$", DeviceIP)
    call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']/Index$", cstr(CommStr) & "-" & cdbl(nIndex))
    call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']/NodeCommStr$", Encode(CommStr))
    call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']/BayIndex$", cdbl(nIndex))
    call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.Nodes']/Name$", "Cluster")
    call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "SNMP Host " & cstr(CommStr) & " - Bay " & nIndex & " - Serial Number " & HexToString(sDesc))
    'call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", HexToString(sDesc))
    call oDiscoveryData.AddInstance(oInst)
    'Test Section
    'wscript.echo Base64Encode(CommStr)
    'wscript.echo Base64Encoder(CommStr)
    'wscript.Echo CommStr
    'wscript.Echo nIndex
    'Wscript.Echo HexToString(sDesc)
    'wscript.echo cdbl(nIndex) & cstr(CommStr)
    end if
    Next
    on error goto 0
    End Sub
    Function Decode(strB64)
    strXML = "<B64DECODE xmlns:dt=" & Chr(34) & _
    "urn:schemas-microsoft-com:datatypes" & Chr(34) & " " & _
    "dt:dt=" & Chr(34) & "bin.base64" & Chr(34) & ">" & _
    strB64 & "</B64DECODE>"
    Set oXMLDoc = CreateObject("MSXML2.DOMDocument.3.0")
    oXMLDoc.LoadXML(strXML)
    decode = oXMLDoc.selectsinglenode("B64DECODE").nodeTypedValue
    set oXMLDoc = nothing
    End Function
    Function Encode(Str)
    'Use ADODB.Stream to write Ansi string to Unicode stream
    Set objStream = CreateObject("ADODB.Stream")
    objStream.Type = 2
    objStream.Open
    objStream.Charset = "unicode"
    objStream.WriteText Str
    objstream.Flush
    'Read the stream back as a byte array
    objStream.Position = 0
    objStream.Type = 1
    temp = objstream.read(2) 'read two bytes of the stream to discard the byte order mark
    bArray = objStream.Read
    objStream.Close
    'Convert byte array to Base64
    set objXML = createobject("MSXML2.DOMDocument.3.0")
    Set objNode = objXML.createElement("b64")
    objNode.dataType = "bin.base64"
    objNode.nodeTypedValue = bArray
    Encode = objNode.Text
    Set Stream = Nothing
    set objNode = nothing
    set objXML = nothing
    End Function
    Function HexToString(str)
    on error resume next
    sOutput = ""
    For x = 1 To len(str) Step 2
    sChar = Chr(Clng("&h" & Mid(str,x,2)))
    sOutput = sOutput & sChar
    Next
    if err.number = 0 then
    HexToString = sOutput
    Else
    HexToString = str
    end if
    End Function
    set oInst = nothing
    set oDiscoveryData = nothing
    set oArgs = nothing
    set oAPI = nothing
    set objWMILocator = nothing
    set objWMIServices = nothing
    set objWMINamedValueSet = nothing
    ]]>
    </ScriptBody>
    <TimeoutSeconds>120</TimeoutSeconds>
    </ProbeAction>
    </MemberModules>
    <Composition>
    <Node ID="ScriptDiscovery">
    <Node ID="Scheduler" />
    </Node>
    </Composition>
    </Composite>
    </ModuleImplementation>
    <OutputType>System!System.Discovery.Data</OutputType>
    </DataSourceModuleType>

    <DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverPhysicalFan" Accessibility="Internal" Batching="false">
    <Configuration>
    <xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="CommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="ConfiguredNodes" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="FanNumber" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="FanSpeedHighCritical" type="xsd:integer" />
    <xsd:element minOccurs="1" name="FanSpeedLowWarn" type="xsd:integer" />
    <xsd:element minOccurs="1" name="FanSpeedLowCritical" type="xsd:integer" />
    </Configuration>
    <OverrideableParameters>
    <OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
    <OverrideableParameter ID="FanSpeedHighCritical" Selector="$Config/FanSpeedHighCritical$" ParameterType="int" />
    <OverrideableParameter ID="FanSpeedLowWarn" Selector="$Config/FanSpeedLowWarn$" ParameterType="int" />
    <OverrideableParameter ID="FanSpeedLowCritical" Selector="$Config/FanSpeedLowCritical$" ParameterType="int" />
    </OverrideableParameters>
    <ModuleImplementation Isolation="Any">
    <Composite>
    <MemberModules>
    <DataSource ID="Scheduler" TypeID="System!System.Scheduler">
    <Scheduler>
    <SimpleReccuringSchedule>
    <Interval>$Config/Interval$</Interval>
    <SyncTime />
    </SimpleReccuringSchedule>
    <ExcludeDates />
    </Scheduler>
    </DataSource>
    <ProbeAction ID="ScriptDiscovery" TypeID="Windows!Microsoft.Windows.ScriptDiscoveryProbe">
    <ScriptName>DiscoverIsilonPhysicalFan.vbs</ScriptName>
    <Arguments>$Config/IPAddress$ $Config/CommStr$ $MPElement$ $Target/Id$ $Config/ConfiguredNodes$</Arguments>
    <ScriptBody>
    <![CDATA['Discover PhysicalFan
    Dim oAPI, oDiscoveryData, oInst, objWMIServices, objWMILocator, oArgs
    set oArgs = Wscript.Arguments
    if oArgs.Count <5 Then
    Wscript.Quit -1
    End If
    DeviceIP = oArgs(0)
    CommStr = oArgs(1)
    SourceID = oArgs(2)
    ManagedEntityId = oArgs(3)
    StrConfiguredNodes = oArgs(4)
    CommStr = Decode(CommStr)
    ConfiguredNodesCommStr = cstr(CommStr)
    wscript.echo CommStr
    Set oAPI = CreateObject("MOM.ScriptAPI")
    set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
    Set objWMILocator = CreateObject("WbemScripting.SWbemLocator")
    Set objWMIServices = objWMiLocator.ConnectServer("","root\snmp\localhost")
    'Name community name
    GetPhysicalFan
    'Created community names
    For i = 1 to StrConfiguredNodes
    CommStr = ConfiguredNodesCommStr & "_node_" & i
    GetPhysicalFan
    Next
    'Return all data to SCOM
    Call oAPI.Return(oDiscoveryData)
    Sub GetPhysicalFan
    on error resume next
    Set objWmiNamedValueSet = CreateObject("WbemScripting.SWbemNamedValueSet")
    objWmiNamedValueSet.Add "AgentAddress", cstr(DeviceIP)
    objWmiNamedValueSet.Add "AgentReadCommunityName", cstr(CommStr)
    Set colPhysicalFan = objWmiServices.InstancesOf("SNMP_ISILON_MIB_FanTable", , objWMINamedValueset)
    For each objItem in colPhysicalFan
    nIndex = objItem.fanNumber
    sDesc = objItem.fanDescription
    if nIndex > 0 then
    set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']$")
    call oInst.AddProperty("$MPElement[Name='MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice']/IPAddress$", DeviceIP)
    call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']/Index$", cstr(CommStr) & "-" & cdbl(nIndex))
    call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']/NodeCommStr$", Encode(CommStr))
    call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']/FanNumber$", cdbl(nIndex))
    call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.Nodes']/Name$", "Cluster")
    'call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "SNMP Host " & cstr(CommStr) & " - Bay " & nIndex & " - Serial Number " & HexToString(sDesc))
    call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "SNMP Host " & cstr(CommStr) & " - " & HexToString(sDesc))
    call oDiscoveryData.AddInstance(oInst)
    'Test Section
    'wscript.echo Base64Encode(CommStr)
    'wscript.echo Base64Encoder(CommStr)
    'wscript.Echo CommStr
    'wscript.Echo nIndex
    'Wscript.Echo HexToString(sDesc)
    'wscript.echo cdbl(nIndex) & cstr(CommStr)
    end if
    Next
    on error goto 0
    End Sub
    Function Decode(strB64)
    strXML = "<B64DECODE xmlns:dt=" & Chr(34) & _
    "urn:schemas-microsoft-com:datatypes" & Chr(34) & " " & _
    "dt:dt=" & Chr(34) & "bin.base64" & Chr(34) & ">" & _
    strB64 & "</B64DECODE>"
    Set oXMLDoc = CreateObject("MSXML2.DOMDocument.3.0")
    oXMLDoc.LoadXML(strXML)
    decode = oXMLDoc.selectsinglenode("B64DECODE").nodeTypedValue
    set oXMLDoc = nothing
    End Function
    Function Encode(Str)
    'Use ADODB.Stream to write Ansi string to Unicode stream
    Set objStream = CreateObject("ADODB.Stream")
    objStream.Type = 2
    objStream.Open
    objStream.Charset = "unicode"
    objStream.WriteText Str
    objstream.Flush
    'Read the stream back as a byte array
    objStream.Position = 0
    objStream.Type = 1
    temp = objstream.read(2) 'read two bytes of the stream to discard the byte order mark
    bArray = objStream.Read
    objStream.Close
    'Convert byte array to Base64
    set objXML = createobject("MSXML2.DOMDocument.3.0")
    Set objNode = objXML.createElement("b64")
    objNode.dataType = "bin.base64"
    objNode.nodeTypedValue = bArray
    Encode = objNode.Text
    Set Stream = Nothing
    set objNode = nothing
    set objXML = nothing
    End Function
    Function HexToString(str)
    on error resume next
    sOutput = ""
    For x = 1 To len(str) Step 2
    sChar = Chr(Clng("&h" & Mid(str,x,2)))
    sOutput = sOutput & sChar
    Next
    if err.number = 0 then
    HexToString = sOutput
    Else
    HexToString = str
    end if
    End Function
    set oInst = nothing
    set oDiscoveryData = nothing
    set oArgs = nothing
    set oAPI = nothing
    set objWMILocator = nothing
    set objWMIServices = nothing
    set objWMINamedValueSet = nothing
    ]]>
    </ScriptBody>
    <TimeoutSeconds>120</TimeoutSeconds>
    </ProbeAction>
    </MemberModules>
    <Composition>
    <Node ID="ScriptDiscovery">
    <Node ID="Scheduler" />
    </Node>
    </Composition>
    </Composite>
    </ModuleImplementation>
    <OutputType>System!System.Discovery.Data</OutputType>
    </DataSourceModuleType>
    </ModuleTypes>
    <MonitorTypes>
    <UnitMonitorType ID="IsilonSNMP.MonitorType.PhysicalDiskStatus" Accessibility="Internal">
    <MonitorTypeStates>
    <MonitorTypeState ID="PhysicalDiskOK" NoDetection="false" />
    <MonitorTypeState ID="PhysicalDiskNotOK" NoDetection="false" />
    </MonitorTypeStates>
    <Configuration>
    <xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="OID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    </Configuration>
    <MonitorImplementation>
    <MemberModules>
    <DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.BasicSNMPProbe">
    <Interval>$Config/Interval$</Interval>
    <IPAddress>$Config/IPAddress$</IPAddress>
    <CommStr>$Config/NodeCommStr$</CommStr>
    <OID>$Config/OID$</OID>
    </DataSource>
    <ConditionDetection ID="CDPhysicalDiskOK" TypeID="System!System.ExpressionFilter">
    <Expression>
    <RegExExpression>
    <ValueExpression>
    <XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>ContainsSubstring</Operator>
    <Pattern>HEALTHY</Pattern>
    </RegExExpression>
    </Expression>
    </ConditionDetection>
    <ConditionDetection ID="CDPhysicalDiskNotOK" TypeID="System!System.ExpressionFilter">
    <Expression>
    <RegExExpression>
    <ValueExpression>
    <XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>DoesNotContainSubstring</Operator>
    <Pattern>HEALTHY</Pattern>
    </RegExExpression>
    </Expression>
    </ConditionDetection>
    </MemberModules>
    <RegularDetections>
    <RegularDetection MonitorTypeStateID="PhysicalDiskOK">
    <Node ID="CDPhysicalDiskOK">
    <Node ID="DS1" />
    </Node>
    </RegularDetection>
    <RegularDetection MonitorTypeStateID="PhysicalDiskNotOK">
    <Node ID="CDPhysicalDiskNotOK">
    <Node ID="DS1" />
    </Node>
    </RegularDetection>
    </RegularDetections>
    </MonitorImplementation>
    </UnitMonitorType>
    <UnitMonitorType ID="IsilonSNMP.MonitorType.PhysicalFanStatus" Accessibility="Internal">
    <MonitorTypeStates>
    <MonitorTypeState ID="PhysicalFanOK" NoDetection="false" />
    <MonitorTypeState ID="PhysicalFanWarn" NoDetection="false" />
    <MonitorTypeState ID="PhysicalFanCritical" NoDetection="false" />
    </MonitorTypeStates>
    <Configuration>
    <xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="OID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="FanSpeedHighCritical" type="xsd:integer" />
    <xsd:element minOccurs="1" name="FanSpeedLowWarn" type="xsd:integer" />
    <xsd:element minOccurs="1" name="FanSpeedLowCritical" type="xsd:integer" />
    </Configuration>
    <OverrideableParameters>
    <OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
    <OverrideableParameter ID="FanSpeedHighCritical" Selector="$Config/FanSpeedHighCritical$" ParameterType="int" />
    <OverrideableParameter ID="FanSpeedLowWarn" Selector="$Config/FanSpeedLowWarn$" ParameterType="int" />
    <OverrideableParameter ID="FanSpeedLowCritical" Selector="$Config/FanSpeedLowCritical$" ParameterType="int" />
    </OverrideableParameters>
    <MonitorImplementation>
    <MemberModules>
    <DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.BasicSNMPProbe">
    <Interval>$Config/Interval$</Interval>
    <IPAddress>$Config/IPAddress$</IPAddress>
    <CommStr>$Config/NodeCommStr$</CommStr>
    <OID>$Config/OID$</OID>
    </DataSource>
    <ConditionDetection ID="CDPhysicalFanOK" TypeID="System!System.ExpressionFilter">
    <Expression>
    <And>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>Less</Operator>
    <ValueExpression>
    <Value Type="Integer">$Config/FanSpeedHighCritical$</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>Greater</Operator>
    <ValueExpression>
    <Value Type="Integer">$Config/FanSpeedLowWarn$</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    </And>
    </Expression>
    </ConditionDetection>
    <ConditionDetection ID="CDPhysicalFanWarn" TypeID="System!System.ExpressionFilter">
    <Expression>
    <And>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>LessEqual</Operator>
    <ValueExpression>
    <Value Type="Integer">$Config/FanSpeedLowWarn$</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>Greater</Operator>
    <ValueExpression>
    <Value Type="Integer">$Config/FanSpeedLowWarn$</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    </And>
    </Expression>
    </ConditionDetection>
    <ConditionDetection ID="CDPhysicalFanCritical" TypeID="System!System.ExpressionFilter">
    <Expression>
    <Or>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>GreaterEqual</Operator>
    <ValueExpression>
    <Value Type="Integer">$Config/FanSpeedHighCritical$</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>LessEqual</Operator>
    <ValueExpression>
    <Value Type="Integer">$Config/FanSpeedLowCritical$</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    </Or>
    </Expression>
    </ConditionDetection>
    </MemberModules>
    <RegularDetections>
    <RegularDetection MonitorTypeStateID="PhysicalFanOK">
    <Node ID="CDPhysicalFanOK">
    <Node ID="DS1" />
    </Node>
    </RegularDetection>
    <RegularDetection MonitorTypeStateID="PhysicalFanWarn">
    <Node ID="CDPhysicalFanWarn">
    <Node ID="DS1" />
    </Node>
    </RegularDetection>
    <RegularDetection MonitorTypeStateID="PhysicalFanCritical">
    <Node ID="CDPhysicalFanCritical">
    <Node ID="DS1" />
    </Node>
    </RegularDetection>
    </RegularDetections>
    </MonitorImplementation>
    </UnitMonitorType>
    </MonitorTypes>
    </TypeDefinitions>
    <Monitoring>
    <Discoveries>
    <Discovery ID="IsilonSNMP.Discovery.Cluster" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster" ConfirmDelivery="true" Remotable="true" Priority="Normal">
    <Category>Discovery</Category>
    <DiscoveryTypes>
    <DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster.Nodes" />
    <DiscoveryRelationship TypeID="IsilonSNMP.Relationship.ClusterHostsNodes" />
    </DiscoveryTypes>
    <DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverContainmentClasses">
    <IPAddress>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
    <ClassID>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.Nodes"]$</ClassID>
    <InstanceSettings>
    <Settings>
    <Setting>
    <Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Name>
    <Value>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Value>
    </Setting>
    <Setting>
    <Name>$MPElement[Name="System!System.Entity"]/DisplayName$</Name>
    <Value>Cluster</Value>
    </Setting>
    <Setting>
    <Name>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.Nodes"]/Name$</Name>
    <Value>Cluster</Value>
    </Setting>
    </Settings>
    </InstanceSettings>
    </DataSource>
    </Discovery>
    <Discovery ID="IsilonSNMP.Discovery.IsilonCluster" Enabled="true" Target="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice" ConfirmDelivery="true" Remotable="true" Priority="Normal">
    <Category>Discovery</Category>
    <DiscoveryTypes>
    <DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster" />
    </DiscoveryTypes>
    <DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverCluster">
    <Interval>600</Interval>
    <IP>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IP>
    <CommunityString>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</CommunityString>
    <SystemOID>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemOID$</SystemOID>
    </DataSource>
    </Discovery>
    <Discovery ID="IsilonSNMP.Discovery.IsilonClustersGroup" Enabled="true" Target="IsilonSNMP.Group.IsilonClusters" ConfirmDelivery="true" Remotable="true" Priority="Normal">
    <Category>Discovery</Category>
    <DiscoveryTypes>
    <DiscoveryRelationship TypeID="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters" />
    </DiscoveryTypes>
    <DataSource ID="GP1" TypeID="SC!Microsoft.SystemCenter.GroupPopulator">
    <RuleId>$MPElement$</RuleId>
    <GroupInstanceId>$MPElement[Name="IsilonSNMP.Group.IsilonClusters"]$</GroupInstanceId>
    <MembershipRules>
    <MembershipRule>
    <MonitoringClass>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]$</MonitoringClass>
    <RelationshipClass>$MPElement[Name="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters"]$</RelationshipClass>
    <Expression>
    <RegExExpression>
    <ValueExpression>
    <Property>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Property>
    </ValueExpression>
    <Operator>ContainsSubstring</Operator>
    <Pattern>.</Pattern>
    </RegExExpression>
    </Expression>
    </MembershipRule>
    </MembershipRules>
    </DataSource>
    </Discovery>
    <Discovery ID="IsilonSNMP.Discovery.PhysicalDisk" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ConfirmDelivery="true" Remotable="true" Priority="Normal">
    <Category>Discovery</Category>
    <DiscoveryTypes>
    <DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" />
    <DiscoveryRelationship TypeID="IsilonSNMP.Relationship.NodesHostsPhysicalDisk" />
    </DiscoveryTypes>
    <DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverPhysicalDisk">
    <IPAddress>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
    <CommStr>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</CommStr>
    <Interval>7800</Interval>
    <ConfiguredNodes>$Target/Host/Property[Type="IsilonSNMP.Class.IsilonCluster"]/ConfiguredNodes$</ConfiguredNodes>
    <BayIndex>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/BayIndex$</BayIndex>
    <NodeCommStr>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/NodeCommStr$</NodeCommStr>
    </DataSource>
    </Discovery>
    <Discovery ID="IsilonSNMP.Discovery.PhysicalFan" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ConfirmDelivery="true" Remotable="true" Priority="Normal">
    <Category>Discovery</Category>
    <DiscoveryTypes>
    <DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster.PhysicalFan" />
    <DiscoveryRelationship TypeID="IsilonSNMP.Relationship.NodesHostsPhysicalFan" />
    </DiscoveryTypes>
    <DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverPhysicalFan">
    <IPAddress>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
    <CommStr>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</CommStr>
    <Interval>8000</Interval>
    <ConfiguredNodes>$Target/Host/Property[Type="IsilonSNMP.Class.IsilonCluster"]/ConfiguredNodes$</ConfiguredNodes>
    <FanNumber>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/FanNumber$</FanNumber>
    <NodeCommStr>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/NodeCommStr$</NodeCommStr>
    <FanSpeedHighCritical>14500</FanSpeedHighCritical>
    <FanSpeedLowWarn>3400</FanSpeedLowWarn>
    <FanSpeedLowCritical>3000</FanSpeedLowCritical>
    </DataSource>
    </Discovery>
    </Discoveries>
    <Monitors>
    <UnitMonitor ID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70" Accessibility="Public" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Snmp!System.SnmpTrapProvider.2SingleEvent2StateMonitorType" ConfirmDelivery="false">
    <Category>Custom</Category>
    <AlertSettings AlertMessage="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70_AlertMessageResourceID">
    <AlertOnState>Warning</AlertOnState>
    <AutoResolve>true</AutoResolve>
    <AlertPriority>Normal</AlertPriority>
    <AlertSeverity>MatchMonitorHealth</AlertSeverity>
    </AlertSettings>
    <OperationalStates>
    <OperationalState ID="UIGeneratedOpStateId843498792d7d4fbf80d83f3939255dd9" MonitorTypeStateID="SecondEventRaised" HealthState="Success" />
    <OperationalState ID="UIGeneratedOpStateId9fd776cd21a747c5994738e863b31fb9" MonitorTypeStateID="FirstEventRaised" HealthState="Warning" />
    </OperationalStates>
    <Configuration>
    <FirstIP>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</FirstIP>
    <FirstCommunityString>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</FirstCommunityString>
    <FirstAllTraps>false</FirstAllTraps>
    <FirstVersion>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/Version$</FirstVersion>
    <FirstOIDProps>
    <OIDProp>.1.3.6.1.4.1.12124.1.1.2.0</OIDProp>
    </FirstOIDProps>
    <FirstExpression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>Equal</Operator>
    <ValueExpression>
    <Value Type="String">1</Value>
    </ValueExpression>
    </SimpleExpression>
    </FirstExpression>
    <SecondIP>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</SecondIP>
    <SecondCommunityString>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</SecondCommunityString>
    <SecondAllTraps>false</SecondAllTraps>
    <SecondVersion>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/Version$</SecondVersion>
    <SecondOIDProps>
    <OIDProp>.1.3.6.1.4.1.12124.1.1.2.0</OIDProp>
    </SecondOIDProps>
    <SecondExpression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
    </ValueExpression>
    <Operator>NotEqual</Operator>
    <ValueExpression>
    <Value Type="String">1</Value>
    </ValueExpression>
    </SimpleExpression>
    </SecondExpression>
    </Configuration>
    </UnitMonitor>
    <UnitMonitor ID="IsilonSNMP.Monitor.PhysicalDiskStatus" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="IsilonSNMP.MonitorType.PhysicalDiskStatus" ConfirmDelivery="true">
    <Category>AvailabilityHealth</Category>
    <AlertSettings AlertMessage="IsilonSNMP.Monitor.PhysicalDiskStatus_AlertMessageResourceID">
    <AlertOnState>Warning</AlertOnState>
    <AutoResolve>true</AutoResolve>
    <AlertPriority>Normal</AlertPriority>
    <AlertSeverity>MatchMonitorHealth</AlertSeverity>
    <AlertParameters>
    <AlertParameter1>$Target/Property[Type="System!System.Entity"]/DisplayName$</AlertParameter1>
    <AlertParameter2>$Data/Context/SnmpVarBinds/SnmpVarBind[1]/Value$</AlertParameter2>
    </AlertParameters>
    </AlertSettings>
    <OperationalStates>
    <OperationalState ID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskOK" MonitorTypeStateID="PhysicalDiskOK" HealthState="Success" />
    <OperationalState ID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskNotOK" MonitorTypeStateID="PhysicalDiskNotOK" HealthState="Warning" />
    </OperationalStates>
    <Configuration>
    <Interval>120</Interval>
    <IPAddress>$Target/Host/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
    <OID>.1.3.6.1.4.1.12124.2.52.1.5.$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/BayIndex$</OID>
    <NodeCommStr>$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/NodeCommStr$</NodeCommStr>
    </Configuration>
    </UnitMonitor>
    <UnitMonitor ID="IsilonSNMP.Monitor.PhysicalFanStatus" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.PhysicalFan" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="IsilonSNMP.MonitorType.PhysicalFanStatus" ConfirmDelivery="true">
    <Category>AvailabilityHealth</Category>
    <AlertSettings AlertMessage="IsilonSNMP.Monitor.PhysicalFanStatus_AlertMessageResourceID">
    <AlertOnState>Warning</AlertOnState>
    <AutoResolve>true</AutoResolve>
    <AlertPriority>Normal</AlertPriority>
    <AlertSeverity>MatchMonitorHealth</AlertSeverity>
    <AlertParameters>
    <AlertParameter1>$Target/Property[Type="System!System.Entity"]/DisplayName$</AlertParameter1>
    <AlertParameter2>$Data/Context/SnmpVarBinds/SnmpVarBind[1]/Value$</AlertParameter2>
    </AlertParameters>
    </AlertSettings>
    <OperationalStates>
    <OperationalState ID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanOK" MonitorTypeStateID="PhysicalFanOK" HealthState="Success" />
    <OperationalState ID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanWarn" MonitorTypeStateID="PhysicalFanWarn" HealthState="Warning" />
    <OperationalState ID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanCritical" MonitorTypeStateID="PhysicalFanCritical" HealthState="Error" />
    </OperationalStates>
    <Configuration>
    <Interval>120</Interval>
    <IPAddress>$Target/Host/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
    <OID>.1.3.6.1.4.1.12124.2.53.1.4.$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/FanNumber$</OID>
    <NodeCommStr>$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/NodeCommStr$</NodeCommStr>
    <FanSpeedHighCritical>14500</FanSpeedHighCritical>
    <FanSpeedLowWarn>3400</FanSpeedLowWarn>
    <FanSpeedLowCritical>3000</FanSpeedLowCritical>
    </Configuration>
    </UnitMonitor>
    <DependencyMonitor ID="IsilonSNMP.Monitor.ClusterPhysicalDiskAvailabilityDependency" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RelationshipType="IsilonSNMP.Relationship.NodesHostsPhysicalDisk" MemberMonitor="IsilonSNMP.Monitor.PhysicalDiskStatus">
    <Category>AvailabilityHealth</Category>
    <Algorithm>WorstOf</Algorithm>
    <MemberUnAvailable>Error</MemberUnAvailable>
    </DependencyMonitor>
    <DependencyMonitor ID="IsilonSNMP.Monitor.ClusterPhysicalFanAvailabilityDependency" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RelationshipType="IsilonSNMP.Relationship.NodesHostsPhysicalFan" MemberMonitor="IsilonSNMP.Monitor.PhysicalFanStatus">
    <Category>AvailabilityHealth</Category>
    <Algorithm>WorstOf</Algorithm>
    <MemberUnAvailable>Error</MemberUnAvailable>
    </DependencyMonitor>
    <DependencyMonitor ID="IsilonSNMP.Monitor.ClusterClusterAvailabilityDependency" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RelationshipType="IsilonSNMP.Relationship.ClusterHostsNodes" MemberMonitor="Health!System.Health.AvailabilityState">
    <Category>AvailabilityHealth</Category>
    <Algorithm>WorstOf</Algorithm>
    <MemberUnAvailable>Error</MemberUnAvailable>
    </DependencyMonitor>
    </Monitors>
    </Monitoring>
    <Presentation>
    <StringResources>
    <StringResource ID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70_AlertMessageResourceID" />
    <StringResource ID="AlertMessageIDb1a3848769824949889fcc4c159cf462" />
    <StringResource ID="IsilonSNMP.Monitor.PhysicalDiskStatus_AlertMessageResourceID" />
    <StringResource ID="IsilonSNMP.Monitor.PhysicalFanStatus_AlertMessageResourceID" />
    </StringResources>
    </Presentation>
    <LanguagePacks>
    <LanguagePack ID="ENU" IsDefault="true">
    <DisplayStrings>
    <DisplayString ElementID="IsilonSNMP">
    <Name>Isilon SNMP MP</Name>
    <Description>Management pack to discover a Isilon cluster running OneFS 5.5</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Class.IsilonCluster">
    <Name>Isilon Cluster</Name>
    <Description>Isilon SNMP Device</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Class.IsilonCluster" SubElementID="Hostname">
    <Name>Hostname</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Class.IsilonCluster" SubElementID="ConfiguredNodes">
    <Name>ConfiguredNodes</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.Nodes" SubElementID="Name">
    <Name>Name</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.Nodes">
    <Name>Isilon Cluster Hosts Nodes</Name>
    <Description>Containment class for the Isilon cluster with components such as hard disks, fans, power supplies, etc.</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Relationship.ClusterHostsNodes">
    <Name>Isilon Cluster Hosts Nodes</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Discovery.IsilonCluster">
    <Name>Discover Isilon Cluster</Name>
    <Description>Discovery of the Isilon Cluster using OID strings from RFC1213.</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.DataSource.BasicSNMPProbe">
    <Name>Isilon Basic Probe Data Source</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.DataSource.DiscoverCluster">
    <Name>Discover Isilon Cluster</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters">
    <Name>Isilon Devices Group Contains Isilon Cluster</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Discovery.Cluster">
    <Name>Discover Isilon Cluster Containment Class</Name>
    <Description>Discovers the Cluster containment class, which hosts managed objects such as fans</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Discovery.IsilonClustersGroup">
    <Name>Isilon Deivce Group Populator</Name>
    </DisplayString>
    <DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70">
    <Name>PlaceHolder</Name>
    <Description>Place Holder to detect isilon cluster</Description>
    </DisplayString>
    <DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70" SubElementID="UIGeneratedOpStateId843498792d7d4fbf80d83f3939255dd9">
    <Name>Second Event Raised</Name>
    </DisplayString>
    <DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70" SubElementID="UIGeneratedOpStateId9fd776cd21a747c5994738e863b31fb9">
    <Name>First Event Raised</Name>
    </DisplayString>
    <DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70_AlertMessageResourceID">
    <Name>PlaceHolder</Name>
    <Description>placeholder alert to detect isilon</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus">
    <Name>Isilon PhysicalDisk Status Monitor</Name>
    <Description>Monitor that generates an alert when the PhysicalDisk status is not ok.</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus" SubElementID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskOK">
    <Name>PhysicalDiskOK</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus" SubElementID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskNotOK">
    <Name>PhysicalDiskOK</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus_AlertMessageResourceID">
    <Name>Isilon PhysicalDisk Status</Name>
    <Description>The Disk ({0}) is in a warning or error state. The Disk state is: {1}.</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk">
    <Name>Isilon Disk</Name>
    <Description>Disk</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" SubElementID="Index">
    <Name>Index</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Relationship.NodesHostsPhysicalDisk">
    <Name>Isilon Cluster Hosts PhysicalDisk</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Discovery.PhysicalDisk">
    <Name>Discover Isilon Cluster Physical Disks</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.DataSource.DiscoverPhysicalDisk">
    <Name>Discover Isilon Cluster PhysicalDisk</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.ClusterPhysicalDiskAvailabilityDependency">
    <Name>Isilon Disk</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus">
    <Name>Isilon PhysicalFan Status Monitor</Name>
    <Description>Monitor that generates an alert when the PhysicalFan speed is not within a premited range.</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus" SubElementID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanOK">
    <Name>PhysicalFanOK</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus" SubElementID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanWarn">
    <Name>PhysicalFanWarn</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus" SubElementID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanCritical">
    <Name>PhysicalFanCritical</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus_AlertMessageResourceID">
    <Name>Isilon PhysicalFan Status</Name>
    <Description>The Fan ({0}) is in a warning or error state. Current Fan speed is: {1}.</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalFan">
    <Name>Isilon Fan</Name>
    <Description>Fan</Description>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalFan" SubElementID="Index">
    <Name>Index</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Relationship.NodesHostsPhysicalFan">
    <Name>Isilon Cluster Hosts PhysicalFan</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Discovery.PhysicalFan">
    <Name>Discover Isilon Cluster Physical Fans</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.DataSource.DiscoverPhysicalFan">
    <Name>Discover Isilon Cluster PhysicalFan</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.ClusterPhysicalFanAvailabilityDependency">
    <Name>Isilon Fan</Name>
    </DisplayString>
    <DisplayString ElementID="IsilonSNMP.Monitor.ClusterClusterAvailabilityDependency">
    <Name>Cluster</Name>
    </DisplayString>
    </DisplayStrings>
    </LanguagePack>
    </LanguagePacks>

  • Migrating User Groups

    I successfully migrated the GDS and Database from ES to ES2. However, I am unable to retain the user groups created in DefaultDom.
    The migration was a fresh install of ES2 with the ES database and GDS. Is there a way to migrate the uer settings?
    Aditya

    Check the Oracle reference I have provided earlier. Concept goes like this:
    Important difference is that upgrading from 10g to 11g is called an "out-of-place upgrade" while upgrading to another 11g is called an "in-place upgrade," because the upgrade operates on existing files. Moving from one 11g release to another 11g release is sometimes referred to as "patching."
    http://download.oracle.com/docs/cd/E21764_01/bi.1111/e16452/bi_plan.htm#BABECJJH
    Follow patching and not out-of-place upgrade as you are required to upgrade component
    http://download.oracle.com/docs/cd/E21764_01/doc.1111/e16793/patch_set_installer.htm#PATCH789
    Hope this is clear now

Maybe you are looking for