Bonjour,
je cherche actuellement à écrire un script powershell qui exécute une requête SQL sur un serveur SQL-Server pour faire le backup des fichiers de log d'une ferme SharePoint.
Je vous mets en copie le script complet :
Au début je n'avais que sqlcmd -s localhost -Q "la requête" et faisait '$($_.name)' dans la requête (au niveau de cmd2). Ce qui marchait bien en ISE et invite de commande, mais retournait une erreur de nom sur SQL-Server.
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 C:\Program` Files\Common` Files\Microsoft` Shared\Web` Server` Extensions\14\CONFIG\POWERSHELL\Registration\\sharepoint.ps1 2>$null Get-SPDatabase | foreach { $cmd1 = "DECLARE @time varchar(2) DECLARE @name varchar(256) DECLARE @dbname varchar(256) SET @dbname = '" $cmd2 = $_.name $cmd3 ="' SET @time = replace(convert(varchar, getdate(), 108), ':', '.') SET @name = 'E:\Backup\H'+@time+'_'+@dbname+'_log' BACKUP LOG @dbname TO DISK = @name " sqlcmd -s localhost -Q "$cmd1$cmd2$cmd3" }
Le script tourne très bien sur PS ISE, tout aussi bien sur PS.
MAIS, quand il tourne en job sur SQL-Server, il me dit que Get-SPDatabase n'est pas reconnu...
Et j'avoue ne pas du tout comprendre pourquoi alors que le script tourne très bien sur un invite PS standard.
Partager