Powershell a jednoduchý dotaz do databáze

Před časem jsem zkoušel pomocí příkazového řádku Command  Shell v systému Operations Manager 2007 zjistit podrobnosti k definicím alertů a zjistil jsem, že nejjednodušší cestou bude číst informaci přímo z databáze OperationsManager. Jak se jednoduše připojit k databázím? Následující příklad ukazuje nejprve dva dotazy do databáze ACS, tj. OperationsManagerAC a třetí dotaz je směrován do databáze OperationsManager. Pomocí prostředků .Net definujeme dotaz, připojení, kanál a datovou sadu. Jakmile se úspěšně připojíme, můžeme získaná data zpracovat:

$query= "SELECT * FROM [OperationsManagerAC].[dbo].[dtConfig]"
$connection = "server=SCOM07;trusted_connection=true;database=OperationsManagerAC"
$set = New-Object "System.Data.Dataset" "myData"
$channel = New-Object "System.Data.SQLclient.SQLdataAdapter" ($query,$connection)
$channel.fill($set)
$set.tables | fl 

#### druhy dotaz
$query2= "SELECT * FROM [OperationsManagerAC].[dbo].[dtMachine]"
$set2 = New-Object "System.Data.Dataset" "myData2"
$channel2 = New-Object "System.Data.SQLclient.SQLdataAdapter" ($query2,$connection)
$channel2.fill($set2)
$set2.tables | fl 

#### treti dotaz
$query3 = "SELECT top 10 [RuleModuleId]
      ,[RuleModuleName]
      ,[RuleModuleRole]
      ,[ModuleTypeId]
      ,[RuleId]
      ,[TargetTypeId]
      ,[RuleModuleConfiguration]
      ,[RuleModuleOrder]
  FROM [OperationsManager].[dbo].[RuleModule]"
$connection3 = "server=SCOM07;trusted_connection=true;database=OperationsManager"
$set3 = New-Object "System.Data.Dataset" "myData3"
$channel3 = New-Object "System.Data.SQLclient.SQLdataAdapter" ($query3,$connection3)
$channel3.fill($set3)
$set3.tables | fl rulemoduleconfiguration

Výpis výstupů všech tří dotazů následuje:

1) nejprve kofigurace ACS:


Id      : 1
Value   : 1
Comment : convert timestamps to local time

Id      : 2
Value   : 6
Comment : database schema version

Id      : 3
Value   : 1
Comment : perform index maintenance

Id      : 4
Value   : 0
Comment : table switch offset in seconds since midnight UTC

Id      : 5
Value   : 86400
Comment : table switch interval in seconds

Id      : 6
Value   : 15
Comment : number of partitions

2) seznam serverů (forwarders) ACS:


Id                : 0
CreationTime      : 9.8.2010 15:38:25
Sid               : S-1-5-21-1056727167-2314404654-873565541-1103
Description       : TRIAL\SCOM07$
DistinguishedName : CN=SCOM07,CN=Computers,DC=trial,DC=net

Id                : 1
CreationTime      : 20.8.2010 22:10:24
Sid               : S-1-5-21-1056727167-2314404654-873565541-1000
Description       : TRIAL\DC01$
DistinguishedName : CN=DC01,OU=Domain Controllers,DC=trial,DC=net

3) výpis z konfigurace pravidel:

RuleModuleConfiguration : <Query>select sum(HitCount), SourceEntityId from AemC
                          rashCounters AC join MT_WatsonBucket WB on AC.SourceE
                          ntityId = WB.BaseManagedEntityId where EntityTypeId =
                           1 group by SourceEntityId</Query><ObjectName>Bucket<
                          /ObjectName><CounterName>BucketErrorCount</CounterNam
                          e><Value>Columns/Column[1]</Value><ManagedEntityId>Co
                          lumns/Column[2]</ManagedEntityId><RuleId>$MPElement[N
                          ame="AEMViewsInternal!Microsoft.SystemCenter.CM.AEM.V
                          iews.Internal.BucketTotalHitCountPerfCollector"]$</Ru
                          leId>

RuleModuleConfiguration : <Scheduler><SimpleReccuringSchedule><Interval Unit="M
                          inutes">15</Interval></SimpleReccuringSchedule><Exclu
                          deDates/></Scheduler>

.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *