Microsoft Powershell

En résumé : WOW!

Depuis quelques temps je vois de plus en plus d’articles ou de scripts destinés à Powershell, mais je ne m’y étais pas encore attardé : quelle erreur!  Étant un amateur du terminal de linux et un irréductible du shell de Windows, Microsoft n’aurait pu me faire une plus belle surprise que cet outil.

Afin de démystifier un peu le sujet je vous suggère d’écouter le TechNet Webcast: An Overview of Windows PowerShell (Level 200) de Don Jones; en 40 minutes cela vous donnera une idée générale des possibilités de l’outil et vous donnera les bases pour l’explorer par vous-même.

Vous trouverez quelques applications “SQL” du Powershell en regardant les séries d’articles de “MAK” sur Databasejournal :

  • Microsoft Windows PowerShell and SQL Server 2005 SMO
  • Check your SQL Server using Windows PowerShell

Voici un script tiré de ses articles qui permet de lancer des backups sur un serveur SQL avec une simple ligne de commande dans le Powershell :

  1. #backupSQL.ps1
  2. param (
  3. [string] $ServerName,
  4. [string] $DatabaseName,
  5. [string] $Backuptype ,
  6. [string] $BackupPath
  7. )
  8. [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null
  9. [System.IO.Directory]::CreateDirectory($BackupPath) | out-null
  10. $srv=New-Object "Microsoft.SqlServer.Management.Smo.Server" "$servername"
  11. $bck=new-object "Microsoft.SqlServer.Management.Smo.Backup"
  12.  
  13. if ($Backuptype -eq "FULL")
  14. {
  15. $bck.Action = ‘Database’
  16. $extenstion=".BAK"
  17. $text1="Full Backup "
  18. }
  19.  
  20. if ($Backuptype -eq "TRAN")
  21. {
  22. $bck.Action = ‘Log’
  23. $extenstion=".LOG"
  24. $text1="Transactional Log Backup "
  25. }
  26.  
  27. if ($Backuptype -eq "DIFF")
  28. {
  29. $bck.Incremental = 1
  30. $extenstion=".DIFF"
  31. $text1="Differential Backup "
  32. }
  33.  
  34. $fil=new-object "Microsoft.SqlServer.Management.Smo.BackupDeviceItem"
  35. $fil.DeviceType=‘File’
  36. $fil.Name=[System.IO.Path]::Combine($BackupPath, $DatabaseName+ "_"+ [DateTime]::Today.ToString("yyyy_MM_dd")+$extenstion)
  37. $bck.Devices.Add($fil)
  38. $bck.Database=$DatabaseName
  39. $bck.SqlBackup($srv)
  40. write-host $text1 of $Databasename done

Une fois le script créé, il suffit de le lancer avec la commande

  1. backupSQL "SQLSERVERNAME" "DATABASENAME" "FULL" "SAVEPATH"

Si vous désirez en apprendre plus voici quelques étapes pour commencer :

  1. Téléchargez et installez l’application.
  2. Tapez “powershell” dans Déarrer /exécuter.
  3. Amusez-vous!

Post a Comment

Your email is never published nor shared. Required fields are marked *