Bonjour !

Je cherche à enregistrer les programmes installés sur la machine dans une table sql server. Une colonne pour l'id qui est un auto incrément , une autre pour le nom du programmes et une dernière pour la version. Le problème est que je n'arrive pas a récupérer uniquement la ligne quand je parcours ma variable. Donc ExecuteNonQuery ne marche pas ( problème de syntaxe). Je ne sais pas si je suis clair , peut être que mon bout de code sera plus parlant. Merci d'avance

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
33
34
35
# Récupération du nom d'utilisateur
$IdUser = [Environment]::UserName
# Récupération du nom de la machine
$NomCalif = [Environment]::MachineName 
#Récupération dans le registre de la liste (nom et version) des softwares installés sur le Pc.
$SoftName = gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Format-Wide DisplayName -Column 1 | Out-String
$SoftVersion = gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Format-Wide DisplayVersion -Column 1 
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$sqlConnection.ConnectionString = "Data Source=********/********;database=logicielsPc;Uid=*****;Pwd=******"
$SqlConnection.Open()
 
#Supprimer la table
$qSQL = " IF OBJECT_ID('logicielsPc..$NomCalif') IS NOT NULL DROP TABLE $NomCalif "
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand;
$SqlCmd.CommandText = $qSQL
$SqlCmd.Connection = $SqlConnection
$SqlCmd.ExecuteNonQuery()

 
#Création de la table
$qSQL = "IF OBJECT_ID('logicielsPc..$NomCalif') IS NULL CREATE TABLE $NomCalif (id int IDENTITY(1,1) PRIMARY KEY, nomLogiciel varchar(99) NOT NULL, versionLogiciel varchar(99))"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand;
$SqlCmd.CommandText = $qSQL
$SqlCmd.Connection = $SqlConnection
$SqlCmd.ExecuteNonQuery()

foreach ($line in $soft) {
$qSQL = "INSERT INTO $NomCalif VALUES '$($softName)', '$($softVersion)'"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand;
$SqlCmd.CommandText = $qSQL
$SqlCmd.Connection = $SqlConnection
$SqlCmd.ExecuteNonQuery()
}
$sqlConnection.Close()
Start-Sleep -Milliseconds 360000