Après avoir converti une ferme SharePoint 2010 standard en entreprise, j’ai eu le message d’erreur suivant sur le portail:
Solution: Passer SharePoint 2010 Products Configuration Wizard sur les frontaux web.
Architecture / Microsoft / Network / Security
Si vous devez mettre en mirroir SQL les bases project, vous trouverez sur le net 2 choses à faire parmi pas mal:
$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 }
L’analyseur SharePoint remonte souvent cet avertissement:
Il faut commencer par identifier les comptes AD sans manager. Par exemple avec adfind:
adfind -f "(&(objectclass=user)(!(manager=*)))" samaccountname -qlist
Il suffit ensuite, pour ceux ne devant pas avoir de manager, d’utiliser les commandes Add-SPProfileleader comme indiqué dans le message.
Contexte:
A queue job has failed. This is a general error logged by the Project Server Queue everytime a job fails – for effective troubleshooting use this error message with other more specific error messages (if any), the Operations guide (which documents more details about queued jobs) and the trace log (which could provide more detailed context). More information about the failed job follows. GUID of the failed job: . Name of the computer that processed this job: MyServer (to debug further, you need to look at the trace log from this computer). Failed job type: CBSRequest. Failed sub-job type: CBSQueueMessage. Failed sub-job ID: 2. Stage where sub-job failed: (this is useful when one sub-job has more than one logical processing stages).
Dans les logs SharePoint (ULS):
Cette méthode peut uniquement convertir les revendications d’identité et uniquement lorsqu’il existe une conversion logique. Parameter name: encodedClaim
ConvertWindowsClaimToWindowsPrincipalName() encountered error: Some or all identity references could not be translated.
Résolution:
Parmi les utilisateurs déclarés dans Project, un ou plusieurs ont disparus d’Active Directory.
Normalement, cela est géré automatiquement si:
import-module « ActiveDirectory«
$pwaUrl=« http://myspssite/pwa«
$svcProjectUrl=$pwaUrl+« /_vti_bin/PSI/Resource.asmx?wsdl«
$c=Get-Credential
$svcProjectProxy=New-WebServiceProxy -uri $svcProjectUrl -credential $c
$users=$svcProjectProxy.ReadUserList(« Active« ).Resources
foreach ($u in $users)
{
$temp= [regex]::Replace($u.WRES_ACCOUNT, « ^.*\« , « »);
if ((get-aduser $temp) -eq $false)
{
« missing ad user « +($u.RES_NAME)
}
}
En environnement SharePoint et projectServer 2010, les messages d’erreurs font presque tout le temps référence aux UID des objets et pas leur nom. Retrouver la nature de l’objet est parfois long et rébarbatif dans tous les cas.
Exemple:
Impossible de démarrer la file d’attente. Fournisseur de services partagés : ffaa66dd-8dcf-4a19-a24e-db16cd87ed67, UID du site : 79be68b6-87df-4431-9c32-bae0173c8ad0, URL : , File d’attente : ProjectQ
La traduction en Français ajoute encore un peu plus de difficulté.
Je me suis fait un script powershell qui cherche un uid ou un nom d’objet dans tout SharePoint 🙂
$id="<UID ou texte a chercher ici>" $search=@() $search+='Get-SPWebApplication -IncludeCentralAdministration | select Name,ID' $search+='Get-SPManagedAccount| select Name,ID' $search+='get-SPSiteAdministration -Limit ALL | select Name,ID' $search+='Get-SPWebApplication -IncludeCentralAdministration | Get-SPSite -Limit All | Get-SPWeb -Limit All|Sort-Object Url|Format-List Title, Url,ID' $search+='Get-SPSite -LIMIT ALL | select url,id' $search+='Get-SPDatabase| select Name,ID' $search+='Get-SPContentDatabase| select Name,ID' $search+='Get-SPServiceApplication | select Name,ID' $search+='Get-SPFeature | select Name,ID' $search+='Get-SPSolution | select Name,ID' $search+='Get-SPServiceApplication |% {$_.SiteCollection| select Name,ID}' $search+='Get-SPTimerJob | select Name,ID' foreach ($command in $search) { if ((Invoke-Expression $command) -match $id) { Write-Host"found $id" Write-Host"display it with $command" } }
Une recherche google semble indiquer que renommer une application Web SharePoint est compliqué et passe par un backup/suppression/création/Restore.
Etant de nature un peu…Opiniatre ? j’y suis allé « au flanc » en PowerShell…Et ca marche 🙂
$a=Get-SPWebApplication | where {$_.Name -match "Demo"} #on vérifie que l'on a bien que l'application à modifier $a #On change le nom $a.Name="[Demo] demo blah blah" #On pousse la modification $a.Update() #on vérifie que le nom a bien changé Get-SPWebApplication | where {$_.Name -match "Demo"}