Bonjour,

J'ai un script powershell dans lequel j'ai une fonction qui fait des requetes SQL et qui retourne une table.

Dans SQL server, lorsque j'execute chaque requete sur mes differentes db mon resultat s'affiche bien.

Dans PS, ma premiere requete passe bien, mais les suivantes me retourne l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Exception calling "Fill" with "1" argument(s): "Invalid object name 'ArchivePoint'."+
 $SqlAdapter.Fill <<<< ($DataSet) + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
 FullyQualifiedErrorId : DotNetMethodException


Voici le script :



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$Sqlserver = "dss0000139\DX_SV_XK1KVS"
$SqlevDir = "EnterpriseVaultDirectory"
$SqlKVSdb = "SELECT ComputerNameAlternate as Server, DatabaseDSN, VaultStoreEntryId FROM View_Computer_VaultStore"
$SqlStat = "SELECT COUNT(*) as VaultCount,SUM(ArchivedItems) as ArchivedItems, SUM(CAST(ArchivedItemsSize as decimal(20, 0))) as ArchivedItemsSize From ArchivePoint"

function SqlExec( $Server, $Database, $Query ){ 
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionString = "Server = $Server; Database = $Database; Integrated Security = True" 

$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $Query
$SqlCmd.Connection = $SqlConnection

$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $SqlCmd

$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlAdapter | Out-Null

$SqlConnection.Close() 

return $DataSet.Tables[0]
}

$KVS = SqlExec -Server $Sqlserver -Database $SqlevDir -Query $SqlKVSdb
$KVS

$KVS | foreach { 
# Requete sur les statistiques pour chaque serveur KVS 
$stat = SqlExec -Server $Sqlserver -Database $_.DatabaseDSN -Query $SqlStat 
$stat 
}
Merci de vos retours