User Tools

Site Tools


windows:powershell:insertinstance

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
windows:powershell:insertinstance [2013/11/05 03:20] – Change SysMetrics to JiMetrics haidongwindows:powershell:insertinstance [2018/05/15 03:00] (current) – external edit 127.0.0.1
Line 6: Line 6:
  
 <code powershell insertInstance.ps1> <code powershell insertInstance.ps1>
-function getSqlInstanceName($ComputerName) +function getSqlInstanceName($ComputerName) { 
-+    $SqlInstances = Get-Service -ComputerName $ComputerName | where {($_.Name -like
-        $SqlInstances = Get-Service -ComputerName $ComputerName | where {($_.Name -like+
     'mssql$*') -or ($_.Name -eq 'mssqlserver')}     'mssql$*') -or ($_.Name -eq 'mssqlserver')}
-    $instanceNameArray New-Object System.Collections.ArrayList+    $instanceArray @()
     if ($SqlInstances -ne $null) {     if ($SqlInstances -ne $null) {
         $SqlInstances | foreach {         $SqlInstances | foreach {
-            if ($_.Name -eq 'mssqlserver') { + $sqlName = $_.Name 
-                [void] + $service = Get-WmiObject win32_service -ComputerName $ComputerName | where {$_.Name -eq $sqlName} 
-                $instanceNameArray.add(@{InstanceName=$ComputerName;Status=$_.Status}) +            if ($sqlName -eq 'mssqlserver') { 
-            }+                $instanceArray = $instanceArray + @(@{InstanceName=$ComputerName; StartupAcct=$service.StartName; Status=$_.Status})}
             else {             else {
-                [void] +                $instanceArray = $instanceArray + @(@{InstanceName=$ComputerName + "\"
-                $instanceNameArray.add(@{InstanceName=$ComputerName + "\"+ $sqlName.split("$")[1];StartupAcct=$service.StartName; Status=$_.Status})}}} 
-                $_.Name.split("$")[1];Status=$_.Status}) +    return $instanceArray} 
-            + 
-        } +function insertInstanceSQL($i, $HostID) { 
-    +    $InstanceName = $i.InstanceName 
-    $instanceNameArray +    $StartupAcct = $i.StartupAcct 
-}+    if ($InstanceName -ne $null) { 
 +        if ($i.Status -eq 'running') { 
 +            $IsActive = "Y"
 +        else {$IsActive = "N"
 +        $sql = "EXEC Windows.Instance_Insert $HostID, '$InstanceName', '$StartupAcct', '$IsActive'" 
 + return $sql}
 $HostList = Invoke-Sqlcmd -ServerInstance "sql1" -Query "EXEC $HostList = Invoke-Sqlcmd -ServerInstance "sql1" -Query "EXEC
 Windows.Host_Select_HostID_HostName" -Database "JiMetrics" Windows.Host_Select_HostID_HostName" -Database "JiMetrics"
 $HostList | foreach { $HostList | foreach {
     $HostID = $_.HostID     $HostID = $_.HostID
-    Try { +    Try {$SqlInstances = getSqlInstanceName($_.HostName)} 
-        $SqlInstances = getSqlInstanceName($_.HostName) } +    Catch {Return}
-    Catch { +
-        Return }+
     $SqlInstances | foreach {     $SqlInstances | foreach {
-        $InstanceName = $_.InstanceName + $sql insertInstanceSQL $_ $HostID 
-        if ($InstanceName -ne $null) { +        Invoke-Sqlcmd -Query $sql -ServerInstance "sql1" -Database "JiMetrics"}}
-            if ($_.Status -eq 'running') { +
-                $IsActive = "Y"+
-            else { +
-                $IsActive = "N"+
-            $sql = "EXEC Windows.Instance_Insert $HostID, '$InstanceName', +
-'$IsActive'" +
-            Invoke-Sqlcmd -Query $sql -ServerInstance "sql1" -Database +
-            "JiMetrics" +
-        } +
-    } +
-}+
 </code> </code>
windows/powershell/insertinstance.1383621657.txt.gz · Last modified: (external edit)