Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

CMDBQryGetDiag

Publié le par damcuvelier

param($siteServer,$siteCode,$query)

# $siteServer = "NomDuServeurSCCM"
# $siteCode = "CodeDuSiteSCCM"

function QryDB{
param($srv,$DB,$Qry)

# Exécution de la requête SQL
$results = Invoke-Sqlcmd -ServerInstance $srv -Database $DB -Query $Qry

# Affichage des résultats
return $results
}

function getCMDBInfos{
    param($Server,$siteCode)

# Créer une instance de gestionnaire SCCM
$providerMachine = New-Object Microsoft.ConfigurationManagement.ManagementProvider.WqlConnectionManager -ArgumentList @($siteServer,$siteCode)
$providerMachine.Connect()

# Récupérer le nom du serveur SQL de la base de données SCCM
$siteClass = $providerMachine.GetClass("SMS_ProviderLocation")
$siteObject = $providerMachine.GetInstance($siteClass)
[string]$SQLServerName = $siteObject.Machine

# Obtenir l'objet de connexion à la base de données SCCM
$connection = [Microsoft.ConfigurationManagement.ManagementProvider.WqlConnectionManager]::new()
$connection.Connect($siteCode)

# Obtenir le nom de la base de données SCCM
[string]$databaseName = $connection.GetDatabaseName()

# Déconnexion de la base de données SCCM
$connection.Disconnect()

return "$SQLServerName,$databaseName"
}

function CMDBQry{
param($siteServer,$siteCode,$query,[switch]$Export)
$here = $PSScriptRoot
if(!$here){$here = (Get-Location).path}

if(!$query){$query = "SELECT * FROM TEL_TelemetryResults"}

# Charger l'assembly nécessaire pour accéder aux informations SCCM
Add-Type -AssemblyName "Microsoft.ConfigurationManagement.ManagementProvider"
Add-Type -AssemblyName "Microsoft.ConfigurationManagement.ManagementProvider, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

    
[string]$CMDBInfos = getCMDBInfos -Server $siteServer -siteCode $siteCode
$CMDBSrvName = $CMDBInfos.split(',')[0]
$CMDBdbName = $CMDBInfos.split(',')[1]


$QryDBresult = QryDB -srv $CMDBSrvName -DB $CMDBdbName -Qry $query

if($Export){$QryDBresult | Export-Csv -Append -Delimiter ';' -Encoding UTF8 -Force -NoTypeInformation -Path "$here\CMDBDiagDatas.csv"}else{return $QryDBresult}
}


CMDBQry -siteServer $siteServer -siteCode $siteCode -query $query -Export
 

Commenter cet article