Quantcast
Channel: Windows PowerShell forum
Viewing all articles
Browse latest Browse all 21975

Help with string functions

$
0
0

I'm trying to figure out how to change how the table insert works.  Right now, it's just populating 2 columns.  I would like to break up the first column into several columns using substring or something like take the next 3 characters after the"(".  Any help would be appreciated.

#$destserver = "SESQLDEV01"
#$destDB = "Monitor"
param ($destserver, $destDB)
$destserver = "BEAST"
$destDB = "SSIMS_Prod"
###########################################################################################
function Get-SqlData 
{
    param([string]$serverName=$(throw 'serverName is required.'), 
          [string]$databaseName=$(throw 'databaseName is required.'),
          [string]$query=$(throw 'query is required.'))
    Write-Verbose "Get-SqlData serverName:$serverName databaseName:$databaseName query:$query"
    $connString = "Server=$serverName;Database=$databaseName;Integrated Security=SSPI;"
    $da = New-Object "System.Data.SqlClient.SqlDataAdapter" ($query,$connString)
    $dt = New-Object "System.Data.DataTable"
    [void]$da.fill($dt)
    $dt
}
###########################################################################################
function out-DataTable
{
  $dt = new-object Data.datatable  
  $First = $true  

  foreach ($item in $input){  
    $DR = $DT.NewRow()  
    $Item.PsObject.get_properties() | foreach {  
      if ($first) {  
        $Col =  new-object Data.DataColumn  
        $Col.ColumnName = $_.Name.ToString()  
        $DT.Columns.Add($Col)       }  
      if ($_.value -eq $null) {  
        $DR.Item($_.Name) = "[empty]"  
      }  
      elseif ($_.IsArray) {  
        $DR.Item($_.Name) =[string]::Join($_.value ,";")  
      }  
      else {  
        $DR.Item($_.Name) = $_.value  
      }  
    }  
    $DT.Rows.Add($DR)  
    $First = $false  
  } 

  return @(,($dt))

}
###########################################################################################
function Get-WMIInfo 
{ 
param($serverName)
@("\\$serverName\PhysicalDisk(*)\Avg. Disk Read Queue Length", "\\$serverName\PhysicalDisk(*)\Avg. Disk Write Queue Length", "\\$serverName\PhysicalDisk(*)\Avg. Disk sec/Read", "\\$serverName\PhysicalDisk(*)\Avg. Disk sec/Write","\\$serverName\PhysicalDisk(*)\Disk Read Bytes/sec","\\$serverName\PhysicalDisk(*)\Disk Reads/sec","\\$serverName\PhysicalDisk(*)\Disk Write Bytes/sec","\\$serverName\PhysicalDisk(*)\Disk Writes/sec") |% { 
    (Get-Counter $_.replace("*","1 c:")).CounterSamples } | 
    Select-Object Path, CookedValue | `
    add-Member -memberType noteProperty -name Server -value $servername -passThru

} 
###########################################################################################
function Write-DataTableToDatabase 
{ 
    param ($dataTable,$destTbl) 
    $connectionString = "Data Source=$destServer;Integrated Security=true;Initial Catalog=$destdb;" 
    $bulkCopy = new-object ("Data.SqlClient.SqlBulkCopy") $connectionString 
    $bulkCopy.DestinationTableName = "$destTbl" 
    $bulkCopy.WriteToServer($dataTable) 
} 
###########################################################################################
Get-SqlData $destserver $destDb "Select ServerName From ServerNames" |
foreach {
    $dataTable = Get-WMIInfo $_.servername | out-datatable 
    if ($dataTable) 
    { Write-DataTableToDatabase $dataTable 'PhysicalDisk' } 
}


Viewing all articles
Browse latest Browse all 21975

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>