Si vous devez mettre en mirroir SQL les bases project, vous trouverez sur le net 2 choses à faire parmi pas mal:

  • Set-SPProjectWebInstance en précisant PrimaryDBMirrorServer et ReportingDBMirrorServer
  • AddFailoverServiceInstance
D’après mes essais, la seconde ne suffit pas à elle seule. Et là commence la joie des cmdlet pas tout à fait finie…Je m’explique: Cette commande permet bien de configurer un serveur SQL miroir, mais son équivalent en Get- ne permet pas de voir ces valeurs!

Donc pas moyen de savoir si quelqu’un l’a fait avant vous, ou si les paramètres sont les bons..
D’autre part, quand on a beaucoup d’instance, il est intéressant d’utiliser son homologue Get-SPProjectWebInstance pour faire une boucle. Sauf que ce dernier n’est pas ergonomique en plus de ne pas donner toutes les propriétés. Voici un script qui:

  • Récupère la liste de toutes url PWA via l’application de service (non non ils ne pouvaient pas le programmer par défaut)
  • Enlève le « / » à la fin de l’url (sinon le Set- plante !)
  • Repositionne tous les paramètres à l’identique (sisi il faut) et ajoute l’instance miroir (ouf).

 

$work=Get-SPServiceApplication | ?{$_.DisplayName -match"Project"} | Get-SPProjectWebInstance
foreach ($item in $work)
{
Write-Output"doing $($item.url)"
$mirror=$item.PrimaryServer -replace ("sqlone","sqltwo")
Set-SPProjectWebInstance -Url ($item.Url).ToString().TrimEnd('/') `
-AdminAccount $item.AdminAccount `
-PrimaryDbserver $item.PrimaryServer `
-ArchiveDbname $item.ArchiveDatabase `
-DraftDbname $item.DraftDatabase `
-PublishedDbname $item.PublishedDatabase `
-ReportingDbServer $item.ReportingServer `
-ReportingDbname $item.ReportingDatabase `
-PrimaryDBMirrorServer $mirror`
-ReportingDBMirrorServer $mirror
} 

Popularity: 8% [?]