Bonjour.
J'ai quelques difficultés avec PowerShell.
J'ai fait un script qui interroge une base de données.
Renvoie les adresse mails contenues dans une table.
Envoie un mail à un résultat choisi du dataset.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# Force le type d'execution
Set-ExecutionPolicy Unrestricted

Import-Module sqlps


$file = 'C:\MonRep\logShell.txt' 

$color = "#009900"
$Conn = new-object system.data.sqlclient.sqlconnection
$Conn.connectionstring = "Monserveur"
$Conn.Open()

# On interroge une vue système de SQL Server 2005
$Requete = "SELECT mail FROM MaTable"

$cmd = New-object system.data.sqlclient.SqlCommand
$cmd.connection = $conn
$cmd.commandtext = $Requete

  # Exécute la requête et retourne le nombre de lignes
$cmd.Executenonquery()

$DataAdapter = new-object System.Data.SqlClient.SQLDataAdapter($cmd)
$DataSet = new-object System.Data.DataSet
$DataAdapter.Fill($DataSet)


	$emailSmtpServer = "serveur de messagerie"
	$emailSmtpServerPort = "25"	 
	$emailFrom =  "expediteur"
	$emailTo = $dataset.tables[0].rows[0]["mail"] 
	
	
	$emailMessage = New-Object System.Net.Mail.MailMessage($emailFrom , $emailTo)
	
	$emailMessage.Subject = "Test"
	$emailMessage.Priority = "Normal"
	

	
	$emailMessage.Body = "Bonjour"

	$SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer , $emailSmtpServerPort )
	$SMTPclient.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
	 
	$SMTPClient.Send( $emailMessage ) > $file

# On libére la connexion, etc.

$Conn.Close() 
read-host 'Pause !'
Mais je souhaiterai faire une concaténation de tous les mails contenus dans le dataset, logguer cette concaténation et envoyer un mail à tous les destinataires, et là, grand moment de solitude.
J'ai essayé pas mal de truc donc ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
$emailTo = $DataSet.Tables[0].Rows[0][0]
 for ($i=0;$i -le $dataset.tables[0].rows.count;$i++)
 {
   $emailto = $emailto + "," + $dataset.tables[0].rows[i]["mail"] > $logfile
 }
Write-Host $emailto
Mail la par contre plus rien ne fonctionne...
Merci de votre aide.