Guest User

ex2k3_report.xsl

a guest
Aug 26th, 2013
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 29.73 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3.                xmlns:ex="http://schemas.microsoft.com/powershell/2004/04">
  4.   <xsl:attribute-set name="tablestyle01">
  5.     <xsl:attribute name="border">1</xsl:attribute>
  6.     <xsl:attribute name="cellspacing">0</xsl:attribute>
  7.     <xsl:attribute name="cellpadding">0</xsl:attribute>
  8.     <!--<xsl:attribute name="width">100%</xsl:attribute>-->
  9.   </xsl:attribute-set>
  10.   <xsl:template name="booltorus">
  11.     <xsl:param name="value">true</xsl:param>
  12.     <xsl:if test="$value='true' or $value='1'">
  13.       Да
  14.     </xsl:if>
  15.     <xsl:if test="$value='false' or $value='0'">
  16.       Нет
  17.     </xsl:if>
  18.   </xsl:template>
  19.   <xsl:template name="getsize">
  20.     <xsl:param name="value">0</xsl:param>
  21.     <xsl:choose>
  22.       <xsl:when test="round($value div (1024*1024*1024)) > 0">
  23.         <xsl:value-of select="round($value div (1024*1024*1024))"/> GB
  24.       </xsl:when>
  25.       <xsl:when test="round($value div (1024*1024*1024)) = 0">
  26.         <xsl:value-of select="round($value div (1024*1024))"/> MB
  27.       </xsl:when>
  28.       <xsl:otherwise>
  29.         -
  30.       </xsl:otherwise>
  31.     </xsl:choose>
  32.   </xsl:template>
  33.   <xsl:template name="getdays">
  34.     <xsl:param name="value">0</xsl:param>
  35.     <xsl:value-of select="round($value div (60*60*24))"/>
  36.   </xsl:template>
  37.   <xsl:template name="ExchSchema">
  38.     <xsl:param name="num1" select="0"/>
  39.     <xsl:param name="num2" select="0"/>
  40.     <xsl:choose>
  41.       <xsl:when test="$num1='4397'">Exchange 2000 RTM</xsl:when>
  42.       <xsl:when test="$num1='4406'">Exchange 2000 SP3</xsl:when>
  43.       <xsl:when test="$num1='6870'">Exchange 2003</xsl:when>
  44.       <xsl:when test="$num1='10637' and $num2='10666'">Exchange 2007 RTM</xsl:when>
  45.       <xsl:when test="$num1='11116' and $num2='11221'">Exchange 2007 SP1</xsl:when>
  46.       <xsl:when test="$num1='14622' and $num2='11222'">Exchange 2007 SP2</xsl:when>
  47.       <xsl:when test="$num1='14625' and $num2='11222'">Exchange 2007 SP3</xsl:when>
  48.       <xsl:when test="$num1='14622' and $num2='12640'">Exchange 2010 RTM</xsl:when>
  49.       <xsl:when test="$num1='14726' and $num2='13214'">Exchange 2010 SP1</xsl:when>
  50.       <xsl:when test="$num1='14732' and $num2='14247'">Exchange 2010 SP2</xsl:when>
  51.       <xsl:otherwise>Unknown</xsl:otherwise>
  52.     </xsl:choose>
  53.   </xsl:template>
  54.   <xsl:template name="ServerRole">
  55.     <xsl:param name="value" select="0"/>
  56.     <xsl:choose>
  57.       <xsl:when test="$value='0'">All</xsl:when>
  58.       <xsl:otherwise>Unknown</xsl:otherwise>
  59.     </xsl:choose>
  60.   </xsl:template>
  61.   <xsl:template name="ExchMode">
  62.     <xsl:param name="value">true</xsl:param>
  63.     <xsl:if test="$value='true' or $value='1'">
  64.       Смешанный
  65.     </xsl:if>
  66.     <xsl:if test="$value='false' or $value='0'">
  67.       Основной
  68.     </xsl:if>
  69.   </xsl:template>
  70.   <xsl:template match="/">
  71.     <html>
  72.       <head>
  73.         <title>Exchange 2003.</title>
  74.         <style>
  75.           td {
  76.           border-top:solid black 1.0pt;border-left:solid black 1.0pt;border-bottom:solid black 1.0pt;
  77.           border-right:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;
  78.           font-size:12.0pt;font-family:"Times New Roman","serif";color:black;
  79.           margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal
  80.           }
  81.           table {
  82.           <!--width:100.0%;border-collapse:collapse;border:none;-->
  83.           border-collapse:collapse;border:none;
  84.           }
  85.           <!--p {
  86.            margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal
  87.          }-->
  88.         </style>
  89.       </head>
  90.       <body>
  91.         <h1>1. Exchange 2003.</h1>
  92.         <xsl:apply-templates select="//ex:Obj[@N='OrganizationInfo']"/>
  93.         <xsl:apply-templates select="//ex:Obj[@N='AdmGroupInfo']"/>
  94.         <xsl:apply-templates select="//ex:Obj[@N='RoutingGroupInfo']"/>
  95.         <xsl:apply-templates select="//ex:Obj[@N='ServerInfo']"/>
  96.         <xsl:apply-templates select="//ex:Obj[@N='RGConnectorInfo']"/>
  97.         <xsl:apply-templates select="//ex:Obj[@N='SMTPConnectorInfo']"/>
  98.         <xsl:apply-templates select="//ex:Obj[@N='SGInfo']"/>
  99.         <xsl:apply-templates select="//ex:Obj[@N='DBInfo']"/>
  100.         <xsl:apply-templates select="//ex:Obj[@N='AddrPolicyInfo']"/>
  101.       </body>
  102.     </html>
  103.   </xsl:template>
  104.   <xsl:template name="OrgTemp">
  105.     <tr>
  106.       <td>
  107.         <xsl:value-of select="position()"/>
  108.       </td>
  109.       <td>
  110.         <xsl:value-of select="ex:S[@N='Name']"/>
  111.       </td>
  112.       <td>
  113.         <xsl:call-template name="ExchMode">
  114.           <xsl:with-param name="value">
  115.             <xsl:value-of select="ex:B[@N='MixedMode']"/>
  116.           </xsl:with-param>
  117.         </xsl:call-template>
  118.       </td>
  119.       <td>
  120.         <xsl:call-template name="ExchSchema">
  121.           <xsl:with-param name="num1" select="ex:I32[@N='SchemaVer']"/>
  122.           <xsl:with-param name="num2" select="ex:I32[@N='ObjVer']"/>
  123.         </xsl:call-template>
  124.       </td>
  125.       <td>
  126.         <xsl:value-of select="ex:S[@N='Forest']"/>
  127.       </td>
  128.       <td>
  129.         <!--<xsl:value-of select="count(//ex:Obj[@N='ServerInfo']/ex:LST/ex:Obj[ex:MS/ex:S[@N='OrgName']=./ex:S[@N='Name']])"/>-->
  130.         <!--<xsl:value-of select="count(//ex:Obj[@N='ServerInfo']/ex:LST/ex:Obj[ex:MS/ex:S[@N='OrgName']=self::node()/ex:S[@N='Name']])"/>-->
  131.         <!--<xsl:value-of select="count(//ex:Obj[@N='ServerInfo']/ex:LST/ex:Obj)"/>-->
  132.         <xsl:value-of select="ex:I32[@N='ServerCount']"/>
  133.       </td>
  134.       <td>
  135.         <xsl:value-of select="ex:I32[@N='MbxCount']"/>
  136.       </td>
  137.       <td>
  138.         <xsl:for-each select="ex:Obj[@N='Admins']/ex:LST/ex:S">
  139.           <xsl:value-of select="."/>
  140.           <br/>
  141.         </xsl:for-each>
  142.       </td>
  143.       <td>
  144.  
  145.       </td>
  146.     </tr>
  147.   </xsl:template>
  148.   <xsl:template name="AdmGroupTemp">
  149.     <tr>
  150.       <td>
  151.         <xsl:value-of select="position()"/>
  152.       </td>
  153.       <td>
  154.         <xsl:value-of select="ex:S[@N='Name']"/>
  155.       </td>
  156.       <td>
  157.         <xsl:value-of select="ex:I32[@N='ServerCount']"/>
  158.       </td>
  159.       <td>
  160.         <xsl:for-each select="ex:Obj[@N='Admins']/ex:LST/ex:S">
  161.           <xsl:if test=".=''">
  162.             Default admins
  163.           </xsl:if>
  164.           <xsl:value-of select="."/>
  165.           <br/>
  166.         </xsl:for-each>
  167.       </td>
  168.       <td>
  169.         <xsl:value-of select="ex:S[@N='OrgName']"/>
  170.       </td>
  171.       <td>
  172.  
  173.       </td>
  174.     </tr>
  175.   </xsl:template>
  176.   <xsl:template name="RGTemp">
  177.     <tr>
  178.       <td>
  179.         <xsl:value-of select="position()"/>
  180.       </td>
  181.       <td>
  182.         <xsl:value-of select="ex:S[@N='Name']"/>
  183.       </td>
  184.       <td>
  185.         <xsl:value-of select="ex:I32[@N='ServerCount']"/>
  186.       </td>
  187.       <td>
  188.         <xsl:value-of select="ex:I32[@N='ConnectorCount']"/>
  189.       </td>
  190.       <td>
  191.         <xsl:value-of select="ex:S[@N='AdmGroup']"/>
  192.       </td>
  193.       <td>
  194.         <xsl:value-of select="ex:S[@N='OrgName']"/>
  195.       </td>
  196.       <td>
  197.  
  198.       </td>
  199.     </tr>
  200.   </xsl:template>
  201.   <xsl:template name="ServerTemp">
  202.     <tr>
  203.       <td>
  204.         <xsl:value-of select="position()"/>
  205.       </td>
  206.       <td>
  207.         <xsl:value-of select="ex:S[@N='Name']"/>
  208.       </td>
  209.       <td>
  210.         <xsl:value-of select="ex:S[@N='Version']"/>
  211.       </td>
  212.       <td>
  213.         <xsl:value-of select="ex:S[@N='DomainName']"/>
  214.       </td>
  215.       <td>
  216.         <xsl:value-of select="ex:I32[@N='SGCount']"/>
  217.       </td>
  218.       <td>
  219.         <xsl:value-of select="ex:I32[@N='MDBCount']"/>
  220.       </td>
  221.       <td>
  222.         <xsl:value-of select="ex:I32[@N='MbxCount']"/>
  223.       </td>
  224.       <td>
  225.         <xsl:value-of select="ex:S[@N='AdmGroup']"/>
  226.       </td>
  227.       <td>
  228.         <xsl:value-of select="ex:S[@N='RG']"/>
  229.       </td>
  230.       <td>
  231.         <xsl:call-template name="ServerRole">
  232.           <xsl:with-param name="value">
  233.             <xsl:value-of select="ex:I32[@N='ServerRole']"/>
  234.           </xsl:with-param>
  235.         </xsl:call-template>
  236.       </td>
  237.       <td>
  238.         -
  239.       </td>
  240.       <td>
  241.         <xsl:value-of select="ex:S[@N='LegacyDN']"/>
  242.       </td>
  243.       <td>
  244.         <xsl:call-template name="booltorus">
  245.           <xsl:with-param name="value">
  246.             <xsl:value-of select="ex:B[@N='MessTrackEnabled']"/>
  247.           </xsl:with-param>
  248.         </xsl:call-template>
  249.       </td>
  250.       <td>
  251.         <xsl:value-of select="ex:S[@N='ExchInstallPath']"/>
  252.       </td>
  253.       <td>
  254.         <xsl:value-of select="ex:S[@N='ExchDataPath']"/>
  255.       </td>
  256.       <td>
  257.         <xsl:value-of select="ex:S[@N='OrgName']"/>
  258.       </td>
  259.       <td>
  260.  
  261.       </td>
  262.     </tr>
  263.   </xsl:template>
  264.   <xsl:template name="RGConTemp">
  265.     <tr>
  266.       <td>
  267.         <xsl:value-of select="position()"/>
  268.       </td>
  269.       <td>
  270.         <xsl:value-of select="ex:S[@N='Name']"/>
  271.       </td>
  272.       <td>
  273.         <xsl:value-of select="ex:S[@N='SourceRG']"/>
  274.       </td>
  275.       <td>
  276.         <xsl:for-each select="ex:Obj[@N='SourceBHNames']/ex:LST/ex:S">
  277.           <xsl:if test=".=''">
  278.             All
  279.           </xsl:if>
  280.           <xsl:value-of select="."/>
  281.         </xsl:for-each>
  282.       </td>
  283.       <td>
  284.         <xsl:value-of select="ex:S[@N='DestRG']"/>
  285.       </td>
  286.       <td>
  287.         <xsl:for-each select="ex:Obj[@N='TargetBHNames']/ex:LST/ex:S">
  288.           <xsl:value-of select="."/>
  289.         </xsl:for-each>
  290.       </td>
  291.       <td>
  292.         <xsl:value-of select="ex:I32[@N='Cost']"/>
  293.       </td>
  294.       <td>
  295.         <xsl:call-template name="booltorus">
  296.           <xsl:with-param name="value">
  297.             <xsl:value-of select="ex:B[@N='NoPFConnection']"/>
  298.           </xsl:with-param>
  299.         </xsl:call-template>
  300.       </td>
  301.       <td>
  302.         По умолчанию,
  303.         <xsl:choose>
  304.           <xsl:when test="ex:Nil[@N='dlMemDefault']">разрешить</xsl:when>
  305.           <xsl:when test="ex:I32[@N='dlMemDefault']='1'">разрешить</xsl:when>
  306.           <xsl:otherwise>запретить</xsl:otherwise>
  307.         </xsl:choose>
  308.         использовать коннектор
  309.         <br/>
  310.         <xsl:if test="ex:Obj[@N='authOrigin']/ex:LST[/ex:S]">
  311.           Есть список разрешенных
  312.         </xsl:if>
  313.         <br/>
  314.         <xsl:if test="ex:Obj[@N='unauthOrigin']/ex:LST[/ex:S]">
  315.           Есть список разрешенных
  316.         </xsl:if>
  317.       </td>
  318.       <td>
  319.         <xsl:if test="self::node()[ex:I32[@N='delivContLength']]">
  320.           Ограничение на письмо: <xsl:value-of select="ex:I32[@N='delivContLength']"/> KB
  321.           <br/>
  322.         </xsl:if>
  323.         Разрешенные типы сообщений:
  324.         <xsl:choose>
  325.           <xsl:when test="ex:I32[@N='heuristics']='4096'">
  326.             Non-systems<br/>
  327.           </xsl:when>
  328.           <xsl:when test="ex:I32[@N='heuristics']='8192'">
  329.             Systems<br/>
  330.           </xsl:when>
  331.           <xsl:when test="ex:I32[@N='heuristics']='12288'">
  332.             -<br/>
  333.           </xsl:when>
  334.           <xsl:otherwise>
  335.             Systems and non-systems<br/>
  336.           </xsl:otherwise>
  337.         </xsl:choose>
  338.         <xsl:if test="self::node()[exI32[@N='DisallowPriority']]">
  339.           Отключены приоритеты:
  340.           <xsl:if test="ex:I32[@N='DisallowPriority'] and 1 = 1">
  341.             High
  342.           </xsl:if>
  343.           <xsl:if test="ex:I32[@N='DisallowPriority'] and 2 = 2">
  344.             Normal
  345.           </xsl:if>
  346.           <xsl:if test="ex:I32[@N='DisallowPriority'] and 4 = 4">
  347.             Low
  348.           </xsl:if>
  349.         </xsl:if>
  350.       </td>
  351.       <td>
  352.         -
  353.       </td>
  354.       <td>
  355.         <xsl:value-of select="ex:S[@N='OrgName']"/>
  356.       </td>
  357.       <td>
  358.         -
  359.       </td>
  360.     </tr>
  361.   </xsl:template>
  362.   <xsl:template name="SMTPConTemp">
  363.     <tr>
  364.       <td>
  365.         <xsl:value-of select="position()"/>
  366.       </td>
  367.       <td>
  368.         <xsl:value-of select="ex:S[@N='Name']"/>
  369.       </td>
  370.       <td>
  371.         <xsl:value-of select="ex:S[@N='SourceRG']"/>
  372.       </td>
  373.       <td>
  374.         <xsl:for-each select="ex:Obj[@N='SourceBHNames']/ex:LST/ex:S">
  375.           <xsl:if test=".=''">
  376.             All
  377.           </xsl:if>
  378.           <xsl:value-of select="."/>
  379.         </xsl:for-each>
  380.       </td>
  381.       <td>
  382.         <xsl:choose>
  383.           <xsl:when test="self::node()[ex:S[@N='DeliveryTo']]">
  384.             Smart-host <xsl:value-of select="ex:S[@N='DeliveryTo']"/>
  385.           </xsl:when>
  386.           <xsl:otherwise>Использовать DNS</xsl:otherwise>
  387.         </xsl:choose>
  388.       </td>
  389.       <td>
  390.         <xsl:call-template name="booltorus">
  391.           <xsl:with-param name="value">
  392.             <xsl:value-of select="ex:B[@N='NoPFConnection']"/>
  393.           </xsl:with-param>
  394.         </xsl:call-template>
  395.       </td>
  396.       <td>
  397.         <xsl:choose>
  398.           <xsl:when test="starts-with(ex:Obj[@N='RoutingList']/ex:LST/ex:S,'Local:')">
  399.             Только эта группа маршрутизации
  400.           </xsl:when>
  401.           <xsl:otherwise>
  402.             Вся организация
  403.           </xsl:otherwise>
  404.         </xsl:choose>
  405.       </td>
  406.       <td>
  407.         <xsl:for-each select="ex:Obj[@N='RoutingList']/ex:LST/ex:S">
  408.           <xsl:value-of select="."/>
  409.           <br/>
  410.         </xsl:for-each>
  411.       </td>
  412.       <td>
  413.         <xsl:choose>
  414.           <xsl:when test="ex:I32[@N='msEXchSmtpOutboundSecurityFlag'] and 4096 = 4096">Да</xsl:when>
  415.           <xsl:otherwise>Нет</xsl:otherwise>
  416.         </xsl:choose>
  417.       </td>
  418.       <td>
  419.         По умолчанию,
  420.         <xsl:choose>
  421.           <xsl:when test="ex:Nil[@N='dlMemDefault']">разрешить</xsl:when>
  422.           <xsl:when test="ex:I32[@N='dlMemDefault']='1'">разрешить</xsl:when>
  423.           <xsl:otherwise>запретить</xsl:otherwise>
  424.         </xsl:choose>
  425.         использовать коннектор
  426.         <br/>
  427.         <xsl:if test="ex:Obj[@N='authOrigin']/ex:LST[/ex:S]">
  428.           Есть список разрешенных
  429.         </xsl:if>
  430.         <br/>
  431.         <xsl:if test="ex:Obj[@N='unauthOrigin']/ex:LST[/ex:S]">
  432.           Есть список разрешенных
  433.         </xsl:if>
  434.       </td>
  435.       <td>
  436.         <xsl:if test="self::node()[ex:I32[@N='delivContLength']]">
  437.           Ограничение на письмо: <xsl:value-of select="ex:I32[@N='delivContLength']"/> KB
  438.           <br/>
  439.         </xsl:if>
  440.         Разрешенные типы сообщений:
  441.         <xsl:choose>
  442.           <xsl:when test="ex:I32[@N='heuristics']='4096'">
  443.             Non-systems<br/>
  444.           </xsl:when>
  445.           <xsl:when test="ex:I32[@N='heuristics']='8192'">
  446.             Systems<br/>
  447.           </xsl:when>
  448.           <xsl:when test="ex:I32[@N='heuristics']='12288'">
  449.             -<br/>
  450.           </xsl:when>
  451.           <xsl:otherwise>
  452.             Systems and non-systems<br/>
  453.           </xsl:otherwise>
  454.         </xsl:choose>
  455.  
  456.         <xsl:if test="self::node()[exI32[@N='DisallowPriority']]">
  457.           Отключены приоритеты:
  458.           <xsl:if test="ex:I32[@N='DisallowPriority'] and 1 = 1">
  459.             High
  460.           </xsl:if>
  461.           <xsl:if test="ex:I32[@N='DisallowPriority'] and 2 = 2">
  462.             Normal
  463.           </xsl:if>
  464.           <xsl:if test="ex:I32[@N='DisallowPriority'] and 4 = 4">
  465.             Low
  466.           </xsl:if>
  467.         </xsl:if>
  468.       </td>
  469.       <td>
  470.         Delivery Option
  471.       </td>
  472.       <td>
  473.         Advanced
  474.       </td>
  475.       <td>
  476.         <xsl:value-of select="ex:S[@N='OrgName']"/>
  477.       </td>
  478.       <td>
  479.         Notes
  480.       </td>
  481.     </tr>
  482.   </xsl:template>
  483.   <xsl:template name="SGTemp">
  484.     <tr>
  485.       <td>
  486.         <xsl:value-of select="position()"/>
  487.       </td>
  488.       <td>
  489.         <xsl:value-of select="ex:S[@N='Name']"/>
  490.       </td>
  491.       <td>
  492.         <xsl:value-of select="ex:S[@N='Server']"/>
  493.       </td>
  494.       <td>
  495.         <xsl:value-of select="ex:I32[@N='MDBCount']"/>
  496.       </td>
  497.       <td>
  498.         <xsl:value-of select="ex:S[@N='LogFilePath']"/>
  499.       </td>
  500.       <td>
  501.         <xsl:value-of select="ex:S[@N='LogBaseName']"/>
  502.       </td>
  503.       <td>
  504.         <xsl:call-template name="getsize">
  505.           <xsl:with-param name="value">
  506.             <xsl:choose>
  507.               <xsl:when test="self::node()[ex:I64[@N='LogSize']]">
  508.                 <xsl:value-of select="ex:I64[@N='LogSize']"/>
  509.               </xsl:when>
  510.               <xsl:otherwise>
  511.                 <xsl:value-of select="ex:I32[@N='LogSize']"/>
  512.               </xsl:otherwise>
  513.             </xsl:choose>
  514.           </xsl:with-param>
  515.         </xsl:call-template>
  516.       </td>
  517.       <td>
  518.         <xsl:value-of select="ex:S[@N='LogSysPath']"/>
  519.       </td>
  520.       <td>
  521.         <xsl:call-template name="booltorus">
  522.           <xsl:with-param name="value">
  523.             <xsl:value-of select="ex:I32[@N='CircularLogging']"/>
  524.           </xsl:with-param>
  525.         </xsl:call-template>
  526.       </td>
  527.       <td>
  528.         <!--<xsl:if test="self::node()[ex:DT[@N='LastLogDate']]">
  529.          <xsl:value-of select="ms:format-date(ex:DT[@N='LastLogDate'],'dd.MM.yyyy')"/>
  530.        </xsl:if>-->
  531.         <xsl:value-of select="ex:DT[@N='LastLogDate']"/>
  532.       </td>
  533.       <td>
  534.         <xsl:value-of select="ex:S[@N='OrgName']"/>
  535.       </td>
  536.       <td>
  537.  
  538.       </td>
  539.     </tr>
  540.   </xsl:template>
  541.   <xsl:template name="DBTemp">
  542.     <tr>
  543.       <td>
  544.         <xsl:value-of select="position()"/>
  545.       </td>
  546.       <td>
  547.         <xsl:value-of select="ex:S[@N='Name']"/>
  548.       </td>
  549.       <td>
  550.         <xsl:value-of select="ex:S[@N='Server']"/>
  551.       </td>
  552.       <td>
  553.         <xsl:value-of select="ex:S[@N='SGName']"/>
  554.       </td>
  555.       <td>
  556.         <xsl:value-of select="ex:I32[@N='MbxCount']"/>
  557.       </td>
  558.       <td>
  559.         <xsl:value-of select="ex:S[@N='EDBFile']"/>
  560.       </td>
  561.       <td>
  562.         <xsl:call-template name="getsize">
  563.           <xsl:with-param name="value">
  564.             <xsl:choose>
  565.               <xsl:when test="self::node()[ex:I64[@N='EDBSize']]">
  566.                 <xsl:value-of select="ex:I64[@N='EDBSize']"/>
  567.               </xsl:when>
  568.               <xsl:otherwise>
  569.                 -
  570.               </xsl:otherwise>
  571.             </xsl:choose>
  572.           </xsl:with-param>
  573.         </xsl:call-template>
  574.       </td>
  575.       <td>
  576.         <xsl:value-of select="ex:S[@N='STMFile']"/>
  577.       </td>
  578.       <td>
  579.         <xsl:call-template name="getsize">
  580.           <xsl:with-param name="value">
  581.             <xsl:choose>
  582.               <xsl:when test="self::node()[ex:I64[@N='STMSize']]">
  583.                 <xsl:value-of select="ex:I64[@N='STMSize']"/>
  584.               </xsl:when>
  585.               <xsl:otherwise>
  586.                 -
  587.               </xsl:otherwise>
  588.             </xsl:choose>
  589.           </xsl:with-param>
  590.         </xsl:call-template>
  591.       </td>
  592.       <td>
  593.         <xsl:if test="self::node()[ex:I32[@N='IssueWarning']]">
  594.           IssueWarning: <xsl:value-of select="ex:I32[@N='IssueWarning']"/>KB <br/>
  595.         </xsl:if>
  596.         <xsl:if test="self::node()[ex:I32[@N='ProhibitSend']]">
  597.           ProhibitSend: <xsl:value-of select="ex:I32[@N='ProhibitSend']"/>KB <br/>
  598.         </xsl:if>
  599.         <xsl:if test="self::node()[ex:I32[@N='ProhibitSendReceive']]">
  600.           ProhibitSendReceive: <xsl:value-of select="ex:I32[@N='ProhibitSendReceive']"/>KB <br/>
  601.         </xsl:if>
  602.         Keep Deleted Items:
  603.         <xsl:call-template name="getdays">
  604.           <xsl:with-param name="value" select="ex:I32[@N='KeepDelItems']"/>
  605.         </xsl:call-template><br/>
  606.         Keep Deleted Mailbox:
  607.         <xsl:call-template name="getdays">
  608.           <xsl:with-param name="value" select="ex:I32[@N='KeepMBX']"/>
  609.         </xsl:call-template><br/>
  610.         <xsl:if test="ex:I32[@N='NotPermanentlyDelete']=3">
  611.           Do not permanently delete Mbx until backup
  612.         </xsl:if>
  613.       </td>
  614.       <td>
  615.         <xsl:if test="ex:B[@N='NotStartupMount']='true'">
  616.           Do not mount on startup<br/>
  617.         </xsl:if>
  618.         <xsl:if test="ex:B[@N='NoOverride']='true'">Can be overwritten by a restore </xsl:if>
  619.         Default PFDB: <xsl:value-of select="ex:S[@N='PFDB']"/><br/>
  620.         OAB: <xsl:value-of select="ex:S[@N='OAB']"/>
  621.       </td>
  622.       <td>
  623.         <xsl:value-of select="ex:S[@N='OrgName']"/>
  624.       </td>
  625.       <td>
  626.  
  627.       </td>
  628.     </tr>
  629.   </xsl:template>
  630.   <xsl:template name="AddrPolicyTemp">
  631.     <tr>
  632.       <td>
  633.         <xsl:value-of select="position()"/>
  634.       </td>
  635.       <td>
  636.         <xsl:value-of select="ex:S[@N='Name']"/>
  637.       </td>
  638.       <td>
  639.         <xsl:for-each select="ex:Obj[@N='Info']/ex:LST/ex:S">
  640.           <xsl:value-of select="."/>
  641.           <br/>
  642.         </xsl:for-each>
  643.       </td>
  644.       <td>
  645.         <xsl:value-of select="ex:S[@N='Filter']"/>
  646.       </td>
  647.       <td>
  648.         <xsl:value-of select="ex:I32[@N='PolicyOrder']"/>
  649.       </td>
  650.       <td>
  651.         <xsl:value-of select="ex:S[@N='OrgName']"/>
  652.       </td>
  653.       <td>
  654.  
  655.       </td>
  656.     </tr>
  657.   </xsl:template>
  658.   <xsl:template match="//ex:Obj[@N='OrganizationInfo']">
  659.     <h2>1.1. Организация Exchange 2003</h2>
  660.     <table xsl:use-attribute-sets="tablestyle01">
  661.       <tr>
  662.         <td>
  663.           <p>#</p>
  664.         </td>
  665.         <td>
  666.           Наименование
  667.         </td>
  668.         <td>
  669.           Режим
  670.         </td>
  671.         <td>
  672.           Схема
  673.         </td>
  674.         <td>
  675.           Лес
  676.         </td>
  677.         <td>
  678.           # серверов
  679.         </td>
  680.         <td>
  681.           # п/я
  682.         </td>
  683.         <td>
  684.           Делегирование
  685.         </td>
  686.         <td>
  687.           Примечание
  688.         </td>
  689.       </tr>
  690.       <xsl:for-each select="ex:LST/ex:Obj/ex:MS">
  691.         <xsl:call-template name="OrgTemp"/>
  692.       </xsl:for-each>
  693.     </table>
  694.   </xsl:template>
  695.   <xsl:template match="//ex:Obj[@N='AdmGroupInfo']">
  696.     <h2>1.2. Административные группы</h2>
  697.     <table xsl:use-attribute-sets="tablestyle01">
  698.       <tr>
  699.         <td>
  700.           <p>#</p>
  701.         </td>
  702.         <td>
  703.           Наименование
  704.         </td>
  705.         <td>
  706.           # серверов
  707.         </td>
  708.         <td>
  709.           Делегирование
  710.         </td>
  711.         <td>
  712.           Организация
  713.         </td>
  714.         <td>
  715.           Примечание
  716.         </td>
  717.       </tr>
  718.       <xsl:for-each select="ex:LST/ex:Obj/ex:MS">
  719.         <xsl:call-template name="AdmGroupTemp"/>
  720.       </xsl:for-each>
  721.     </table>
  722.   </xsl:template>
  723.   <xsl:template match="//ex:Obj[@N='RoutingGroupInfo']">
  724.     <h2>1.3. Группы маршрутизации</h2>
  725.     <table xsl:use-attribute-sets="tablestyle01">
  726.       <tr>
  727.         <td>
  728.           <p>#</p>
  729.         </td>
  730.         <td>
  731.           Наименование
  732.         </td>
  733.         <td>
  734.           # серверов
  735.         </td>
  736.         <td>
  737.           # коннекторов
  738.         </td>
  739.         <td>
  740.           Адм. группа
  741.         </td>
  742.         <td>
  743.           Организация
  744.         </td>
  745.         <td>
  746.           Примечание
  747.         </td>
  748.       </tr>
  749.       <xsl:for-each select="ex:LST/ex:Obj/ex:MS">
  750.         <xsl:call-template name="RGTemp"/>
  751.       </xsl:for-each>
  752.     </table>
  753.   </xsl:template>
  754.   <xsl:template match="//ex:Obj[@N='ServerInfo']">
  755.     <h2>1.4. Серверы</h2>
  756.     <table xsl:use-attribute-sets="tablestyle01">
  757.       <tr>
  758.         <td>
  759.           <p>#</p>
  760.         </td>
  761.         <td>
  762.           Наименование
  763.         </td>
  764.         <td>
  765.           Версия
  766.         </td>
  767.         <td>
  768.           Домен
  769.         </td>
  770.         <td>
  771.           # групп хранения
  772.         </td>
  773.         <td>
  774.           # баз данных
  775.         </td>
  776.         <td>
  777.           # п/я
  778.         </td>
  779.         <td>
  780.           Адм. группа
  781.         </td>
  782.         <td>
  783.           Группа маршрутизации
  784.         </td>
  785.         <td>
  786.           Роль
  787.         </td>
  788.         <td>
  789.           RUS
  790.         </td>
  791.         <td>
  792.           LegacyExchangeDN
  793.         </td>
  794.         <td>
  795.           MessageTrkEnabled
  796.         </td>
  797.         <td>
  798.           Путь установки
  799.         </td>
  800.         <td>
  801.           Путь БД
  802.         </td>
  803.         <td>
  804.           Организация
  805.         </td>
  806.         <td>
  807.           Примечание
  808.         </td>
  809.       </tr>
  810.       <xsl:for-each select="ex:LST/ex:Obj/ex:MS">
  811.         <xsl:call-template name="ServerTemp"/>
  812.       </xsl:for-each>
  813.     </table>
  814.   </xsl:template>
  815.   <xsl:template match="//ex:Obj[@N='RGConnectorInfo']">
  816.     <h2>1.5. RG-коннекторы</h2>
  817.     <table xsl:use-attribute-sets="tablestyle01">
  818.       <tr>
  819.         <td>
  820.           <p>#</p>
  821.         </td>
  822.         <td>
  823.           Наименование
  824.         </td>
  825.         <td>
  826.           RG-источник
  827.         </td>
  828.         <td>
  829.           Серверы источники
  830.         </td>
  831.         <td>
  832.           RG-назначение
  833.         </td>
  834.         <td>
  835.           Целевые серверы
  836.         </td>
  837.         <td>
  838.           Стоимость
  839.         </td>
  840.         <td>
  841.           Отключение PF Referrals
  842.         </td>
  843.         <td>
  844.           Ограничения доставки
  845.         </td>
  846.         <td>
  847.           Ограничение содержимого
  848.         </td>
  849.         <td>
  850.           Параметры доставки
  851.         </td>
  852.         <td>
  853.           Организация
  854.         </td>
  855.         <td>
  856.           Примечание
  857.         </td>
  858.       </tr>
  859.       <xsl:for-each select="ex:LST/ex:Obj/ex:MS">
  860.         <xsl:call-template name="RGConTemp"/>
  861.       </xsl:for-each>
  862.     </table>
  863.   </xsl:template>
  864.   <xsl:template match="//ex:Obj[@N='SMTPConnectorInfo']">
  865.     <h2>1.6. SMTP-коннекторы</h2>
  866.     <table xsl:use-attribute-sets="tablestyle01">
  867.       <tr>
  868.         <td>
  869.           <p>#</p>
  870.         </td>
  871.         <td>
  872.           Наименование
  873.         </td>
  874.         <td>
  875.           RG-источник
  876.         </td>
  877.         <td>
  878.           Серверы-источники
  879.         </td>
  880.         <td>
  881.           Способ доставки
  882.         </td>
  883.         <td>
  884.           Отключение PF Referrals
  885.         </td>
  886.         <td>
  887.           Область действия
  888.         </td>
  889.         <td>
  890.           Адресное пространство
  891.         </td>
  892.         <td>
  893.           Разрешить пересылку (relay)
  894.         </td>
  895.         <td>
  896.           Ограничение доставки
  897.         </td>
  898.         <td>
  899.           Ограничение содержимого
  900.         </td>
  901.         <td>
  902.           Параметры доставки
  903.         </td>
  904.         <td>
  905.           Дополнительные параметры
  906.         </td>
  907.         <td>
  908.           Организация
  909.         </td>
  910.         <td>
  911.           Примечание
  912.         </td>
  913.       </tr>
  914.       <xsl:for-each select="ex:LST/ex:Obj/ex:MS">
  915.         <xsl:call-template name="SMTPConTemp"/>
  916.       </xsl:for-each>
  917.     </table>
  918.   </xsl:template>
  919.   <xsl:template match="//ex:Obj[@N='SGInfo']">
  920.     <h2>1.7. Группы хранения</h2>
  921.     <table xsl:use-attribute-sets="tablestyle01">
  922.       <tr>
  923.         <td>
  924.           <p>#</p>
  925.         </td>
  926.         <td>
  927.           Наименование
  928.         </td>
  929.         <td>
  930.           Сервер
  931.         </td>
  932.         <td>
  933.           # databases
  934.         </td>
  935.         <td>
  936.           Log Path
  937.         </td>
  938.         <td>
  939.           Log Prefix
  940.         </td>
  941.         <td>
  942.           Logs Size
  943.         </td>
  944.         <td>
  945.           System Path
  946.         </td>
  947.         <td>
  948.           Circular Logging
  949.         </td>
  950.         <td>
  951.           First Log Creation Time
  952.         </td>
  953.         <td>
  954.           Организация
  955.         </td>
  956.         <td>
  957.           Примечание
  958.         </td>
  959.       </tr>
  960.       <xsl:for-each select="ex:LST/ex:Obj/ex:MS">
  961.         <xsl:call-template name="SGTemp"/>
  962.       </xsl:for-each>
  963.     </table>
  964.   </xsl:template>
  965.   <xsl:template match="//ex:Obj[@N='DBInfo']">
  966.     <h2>1.8. БД Почтовых ящиков</h2>
  967.     <table xsl:use-attribute-sets="tablestyle01">
  968.       <tr>
  969.         <td>
  970.           <p>#</p>
  971.         </td>
  972.         <td>
  973.           Наименование
  974.         </td>
  975.         <td>
  976.           Сервер
  977.         </td>
  978.         <td>
  979.           Группа хранения
  980.         </td>
  981.         <td>
  982.           # mailboxes
  983.         </td>
  984.         <td>
  985.           EDB Path
  986.         </td>
  987.         <td>
  988.           EDB Size
  989.         </td>
  990.         <td>
  991.           STM Path
  992.         </td>
  993.         <td>
  994.           STM Size
  995.         </td>
  996.         <td>
  997.           Ограничения
  998.         </td>
  999.         <td>
  1000.           Дополнительные параметры
  1001.         </td>
  1002.         <td>
  1003.           Организация
  1004.         </td>
  1005.         <td>
  1006.           Примечание
  1007.         </td>
  1008.       </tr>
  1009.       <xsl:for-each select="ex:LST/ex:Obj/ex:MS">
  1010.         <xsl:call-template name="DBTemp"/>
  1011.       </xsl:for-each>
  1012.     </table>
  1013.   </xsl:template>
  1014.   <xsl:template match="//ex:Obj[@N='AddrPolicyInfo']">
  1015.     <h2>1.9. Политики получателей</h2>
  1016.     <table xsl:use-attribute-sets="tablestyle01">
  1017.       <tr>
  1018.         <td>
  1019.           <p>#</p>
  1020.         </td>
  1021.         <td>
  1022.           Наименование
  1023.         </td>
  1024.         <td>
  1025.           Почтовые домены
  1026.         </td>
  1027.         <td>
  1028.           Фильтр
  1029.         </td>
  1030.         <td>
  1031.           Порядковый номер
  1032.         </td>
  1033.         <td>
  1034.           Организация
  1035.         </td>
  1036.         <td>
  1037.           Примечание
  1038.         </td>
  1039.       </tr>
  1040.       <xsl:for-each select="ex:LST/ex:Obj/ex:MS">
  1041.         <xsl:call-template name="AddrPolicyTemp"/>
  1042.       </xsl:for-each>
  1043.     </table>
  1044.   </xsl:template>
  1045. </xsl:stylesheet>
Advertisement
Add Comment
Please, Sign In to add comment