Dans une de mes fermes SharePoint MOSS, je suis tombé sur une répétition toutes les 1 a 2 minutes des erreurs 6398 :

Event Type: Error
Event Source: Windows SharePoint Services 3
Event Category: Timer
Event ID: 6398
Date: 6/29/2009
Time: 2:42:19 PM
User: N/A
Computer: xxxxxxxxxxxxxxxxxxxxx
Description:
The Execute method of job definition Microsoft.Office.Server.Administration.ApplicationServerAdministrationServiceJob (ID 68fe9ed3-1254-470f-bd92-74d2a35ec018) threw an exception. More information is included below.
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Ainsi que des erreurs 7076 :

Event Type: Error
Event Source: Office SharePoint Server
Event Category: Office Server Shared Services
Event ID: 7076
Date: 6/28/2009
Time: 3:22:19 AM
User: N/A
Computer: xxxxxxxxxxxxx
Description:
An exception occurred while executing the Application Server Administration job.
Message: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Techinal Support Details:
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at System.DirectoryServices.Interop.UnsafeNativeMethods.IntADsOpenObject(String path, String userName, String password, Int32 flags, Guid& iid, Object& ppObject)
at System.DirectoryServices.Interop.UnsafeNativeMethods.ADsOpenObject(String path, String userName, String password, Int32 flags, Guid& iid, Object& ppObject)
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_IsContainer()
at System.DirectoryServices.DirectoryEntries.CheckIsContainer()
at System.DirectoryServices.DirectoryEntries.Find(String name, String schemaClassName)
at Microsoft.SharePoint.Metabase.MetabaseObjectCollection`1.Find(String name)
at Microsoft.SharePoint.Metabase.MetabaseObjectCollection`1.get_Item(String name)
at Microsoft.SharePoint.Administration.SPProvisioningAssistant.ProvisionIisApplicationPool(String name, ApplicationPoolIdentityType identityType, String userName, SecureString password, TimeSpan idleTimeout, TimeSpan periodicRestartTime)
at Microsoft.SharePoint.Administration.SPMetabaseManager.ProvisionIisApplicationPool(String name, Int32 identityType, String userName, SecureString password, TimeSpan idleTimeout, TimeSpan periodicRestartTime)
at Microsoft.Office.Server.Administration.SharedWebServiceInstance.CreateSharedWebServiceApplicationPool(SharedResourceProvider srp)
at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob)
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
et 6482 :

Event Type: Error
Event Source: Office SharePoint Server
Event Category: Office Server Shared Services
Event ID: 6482
Date: 6/21/2009
Time: 10:08:19 PM
User: N/A
Computer: xxxxxxxxxxxxxxx
Description:
Application Server Administration job failed for service instance Microsoft.Office.Server.Search.Administration.SearchAdminSharedWebServiceInstance (bf523f37-c8dc-44ef-a5df-aa04d095f2e5).
Reason: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Techinal Support Details:
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at System.DirectoryServices.Interop.UnsafeNativeMethods.IntADsOpenObject(String path, String userName, String password, Int32 flags, Guid& iid, Object& ppObject)
at System.DirectoryServices.Interop.UnsafeNativeMethods.ADsOpenObject(String path, String userName, String password, Int32 flags, Guid& iid, Object& ppObject)
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_IsContainer()
at System.DirectoryServices.DirectoryEntries.CheckIsContainer()
at System.DirectoryServices.DirectoryEntries.Find(String name, String schemaClassName)
at Microsoft.SharePoint.Metabase.MetabaseObjectCollection`1.Find(String name)
at Microsoft.SharePoint.Metabase.MetabaseObjectCollection`1.get_Item(String name)
at Microsoft.SharePoint.Administration.SPProvisioningAssistant.ProvisionIisApplicationPool(String name, ApplicationPoolIdentityType identityType, String userName, SecureString password, TimeSpan idleTimeout, TimeSpan periodicRestartTime)
at Microsoft.SharePoint.Administration.SPMetabaseManager.ProvisionIisApplicationPool(String name, Int32 identityType, String userName, SecureString password, TimeSpan idleTimeout, TimeSpan periodicRestartTime)
at Microsoft.Office.Server.Administration.SharedWebServiceInstance.Synchronize()
at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob)
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Après de nombreuses recherches pour fixer ces erreurs, ou on trouve par exemple des problèmes de paramétrage COM :
On pense alors avoir trouvé la solution, mais il n’en est rien, en réalité, les deux erreurs sont différentes, car celle observée fait références à des erreurs de la lecture/écriture mémoire alors que les corrections sont liées à des erreurs COM
L’erreur n’était visible que sur le serveur d’application (Il faut donc bien contrôler tous les serveurs de sa ferme) et provenait du moteur de recherche qui partait en boucle sur certaines sources de contenu (plus de 1500 Heures).
Il a donc fallu redémarrer le serveur d’application puis faire un stop de l’indexation en cours des sources de contenu et un stop du service de recherche (NET STOP OSEARCH), qui se relance immédiatement tout seul.
Ainsi après plusieurs exécution de ces deux scripts (PowerShell et NET STOP), les indexations en cours ont pu être finies et la situation stabilisée.
Tout est maintenant rentré dans l’ordre.
Il est donc extrèmement important de surveiller les serveurs de ses fermes SharePoint, particulierement le Serveur d’indexation lorsqu’on possède de nombreuses sources de contenu.
Romelard Fabrice [MVP]
Dans le cadre de la gestion de site SharePoint, il convient de préter une attention particulière pour un type de site particulier.
En effet, dans une ferme SharePoint destinée à un Intranet, il est courant de voir une organisation via collections de sites comme suit :
- Le site racine ouvert à tous avec la présentation du projet ou les documents non confidentiels du projet
- Les données confidentielles sont alors placés dans des sous-sites (avec séccurisation) ou des listes sécurisée
On utilise donc la notion de droits et d’héritage (conservé si rien de confidentiel, ou cassé sur confidentiel) de ces droits pour les listes ou sous-sites.
Ainsi pour permettre à tous les collaborateurs d’accéder à cette page d’accueil (du site racine) on ajoute le compte “NT AUTHORITY\authenticated users” en lecteur de ce site.
En revanche, une ferme Extranet est totalement différente dans l’esprit et le compte "“NT AUTHORITY\authenticated users”, ne doit pas être utilisé, car l’esprit n’est pas le même.
Le but d’un site Extranet est de permettre la communication et l’échange d’information entre les collaborateurs (internes de l’entreprise ou de l’organisation) et d’autres personnes (clients, partenaire ou fournisseurs externes à l’organisation).
Il existe différentes solutions pour créer cela avec SharePoint et l’utilisation d’un second domaine Active Directory dédié aux comptes externes en est une. Dans ce cadre, le compte “NT AUTHORITY\authenticated users” ajoute automatiquement les compte de ce domaine externe sur le site.
On peut donc se retrouver avec une collection de site “CollA” avec le client A dans laquelle on ajoute des informations confidentielles accessible par un Client B.
Il faut donc faire un contrôle de ce paramètre afin de ne pas laisser de collection de sites ouverte à tous. Pour cela un script PowerShell est disponible sur CodePlex afin de lister toutes les collections qui ont des permissions pour ce compte particulier :
Lorsqu’une collection est dans ce cas, il faut aller dans le site racine de celui-ci, cliquer sur “Site Actions” > “Sites Settings” et cliquer sur “People and Groups” :

Choisir ensuite “Groups” sur le menu de gauche, on retrouve alors le groupe NT de base “NT AUTHORITY\authenticated users” :

Il suffit alors de cliquer sur le nom afin d’avoir le détail de ce groupe, on trouve alors surtout le lien pour supprimer ce groupe :

Cela aura pour effèt de supprimer tout ce qui est associé avec ce groupe et donc ses permissions.
Il faut donc ensuite communiquer aux administrateurs de site SharePoint ce point important que beaucoup ne réalisent pas totalement.
Romelard Fabrice [MVP]
Après un passage à vide en terme de rédaction, voila un nouvel article qui permet d’appréhender la gestion des collections de sites au sein des bases de données SharePoint :
Bonne lecture.
Romelard Fabrice [MVP]
Dans le cadre de l’administration de serveurs à distance, il est parfois nécessaire d’utiliser un ancien protocole :
Le fait est que cette commande est indisponible dans Windows VISTA ou Windows Seven, après une installation basique. On obtient un message d’erreur selon lequel Windows ne connait pas la commande :

Il existe plusieurs solutions comme utiliser d’autres outils de gestion à distance en mode console, comme :
Mais il est un peu surprenant de ne plus trouver cette commande directement dans Windows. Cela vient donc d’un choix délibéré de ne plus activer cette fonctionnalité lors de l’installation, mais de le laisser à la discrétion des utilisateurs. Vous trouverez d’ailleurs un message sur le sujet :
Il suffit donc d’exécuter la commande :

On peut alors taper directement dans la boite de recherche, dans une fenêtre DOS ou encore dans PowerShell :

Romelard Fabrice [MVP]
Lors de la mise en place de MOSS et après la création du SSP (Shared Service Provider), on donne généralement la possibilité aux utilisateurs de créer leur mySite.
Ceci est une excellente fonctionnalité pour l’adoption des utilisateurs de la plateforme SharePoint. Ils ont alors la possibilité de créer leur espace avec leur contenu accessible depuis n’importe quelle machine.
Tout ceci est magnifique, si ce n’est le contrôle de la volumétrie occupée. En effet, lors de la création de ce mySite (avec le SSP), on doit créer une nouvelle Web Application qui supportera ces sites personnalisés.
Ceci crée donc automatiquement une nouvelle Web Application avec les paramètres standards de celle-ci. Or, une Web Application basique n’applique pas de quota lors de sa création :

Ceci n’est pas réellement problématique pour une Web Application de type Portail Intranet ou Internet (car on ne crée pas beaucoup de collections de sites) mais devient problématique pour les sites collaboratifs (sites d’équipe) et surtout pour les mySite.
En effet, chaque espace personnel (mySite) correspond en interne à une collection de site autonome. Ainsi, si on fait une simulation rapide pour 1000 collaborateurs :
- On obtient 1000 sites personnels potentiels
Avec la fameuse règle des 80/20 (soit 80 % des utilisateurs utilisant 20 % de ressources et 20 % des utilisateurs pour 80 % des ressources) on atteint rapidement des sommets. Si on considère une volumétrie d’1 GB maximum, on arrive donc à :
- 200 Utilisateurs * 800 MB = 160 000 MB
- 800 Utilisateurs * 200 MB = 160 000 MB
- Total de plus de 320 GB à prévoir
Ceci est vraiment un calcul à la louche (voir au godet de pelle mécanique :) ), mais il permet de se rappeler la problématique de volumétrie.
Le fait est que les espaces personnels sont souvent utilisés pour stocker et publier des photos d’un event entre collaborateurs, et avec les appareils actuels, une quarantaine de photos (petit échantillon des photos d’un event) représentent près de 100 MB.
Il est donc primordial d’appliquer un quota pour ces sites personnels, suivant une valeur qui aura été définie en interne.
Un modèle de quota est d’ailleurs créé par défaut lors de l’installation “personal”, avec une alerte définie dès 80 MB et un maximum à 100 MB. Il vous reste donc à le modifier si besoin, mais surtout l’appliquer sur la Web Application.
Romelard Fabrice [MVP]
Après la migration de mon NetPC sous Windows Seven Release Candidate, j’ai donc aussi décidé de sauter le pas sur mon NoteBook professionnel.
Ainsi, j’ai donc installé la version X64 de Windows Seven sur mon LENOVO T61. Tout s’est donc passé parfaitement, et après quelques reboot et l’installation des derniers patches (incluant les drivers manquant), j’ai finalement obtenu une machine toute neuve, avec moins de soucis que lors du passage sous la Beta 1.
Une des nouveautés accompagnant la version RC de Seven, est la nouvelle version de Virtual PC. Cela représente deux parties différentes :
Il faut donc choisir la version de son OS (X86 ou X64) et la langue puis télécharger le module souhaité.
Voyons dans un premier temps le premier module, il s’agit donc bien de la nouvelle version de Virtual PC (uniquement pour Windows Seven) qui s’installe donc sans soucis particulier.
Attention tout de même, ce module exige l’activation de la fonctionnalité de virtualisation matérielle (d’AMD ou Intel) :
Une fois installé, vous retrouvez dans le menu programme un groupe “Windows Virtual PC”

Avec les liens pour les deux modules, il nous faut donc cliquer sur “Virtual Machines”, ce qui va ouvrir une fenêtre avec la liste de toutes les machines virtuelles référencées sur le poste

Mais on voit surtout sur le haut de la fenêtre “Create virtual machine”, qui nous lance un assistant

On doit fournir les paramètres voulus pour la machine (RAM et réseau)

On va ensuite fournir les paramètres pour le disque virtuel, dfans mon cas, je vais prendre un disque VHD existant

On retrouve alors notre nouvelle machine virtuelle dans un fichier de configuration VMCX

Qui est donc un simple fichier XML

Il faut donc simplement double cliquer sur le fichier pour lancer la machine virtuelle correspondante.
A noter aussi que la machine virtuelle fonctionne dans un exécutable différent “VMWindow.exe” (cela ressemble un peu à celui du concurrent “VMWare.exe” :))

Pour les anciennes machines virtuelles, il suffit de cliquer sur le fichier VMC afin de lancer un assistant de migration sous le nouveau format (en ajoutant un fichier VMCX dans la liste des machines virtuelles, cf. premier lien).

Il va donc essayer de reprendre la configuration définie, ce qui peut provoquer un message tel que le suivant si des fonctionnalités ne sont pas supportées.

Ce qui n’empèche pas la machine de fonctionner.

Un point est très agréable, Le bouton “CTRL+ALT+Del” directement dans la barre du haut, ce qui évite de chercher à chaque fois. Pour le reste cela reste Virtual PC avec ses avantages et limitations, dont la plus problématique est le non support de machine X64, ce qui énerve de plus en plus les développeurs ou les formateurs.
Romelard Fabrice [MVP]
Comme vous avez pu le voir au travers des précédents messages, je teste Windows Seven sur mon NetPC courant.
J’ai donc eu la chance de posséder différents modèles, ASUS EeePC, puis HP MiniNote, et maintenant je suis le propriétaire d’un modèle Acer AspireOne D150.
Après quelques semaines d’utilisation avec le système fourni en standard (Windows XP) et l’arrivée de la Release Candidate de Windows Seven, j’ai décidé d’installer cette nouvelle version sur cette machine.
Ainsi, l’installation de cet OS a exigé la modification d’un paramètre du BIOS :
- Mode SATA : IDE
(et non AHCI)
Il faut donc appuyer sur F2 au lancement de la machine pour accéder à ce BIOS afin de changer ce paramètre. Une fois effectué, vous pouvez lancer l’installation de l’OS.
Tout se passe sans aucun problème et l’ensemble des pilotes sont disponibles et installés directement par Windows Seven (heureusement, car ACER ne fournit pas de pilotes VISTA pour cette machine).
La question se pose alors pour repasser le mode SATA en AHCI. Si on fait ce changement directement dans le BIOS pour ensuite redémarrer, on obtiendra immédiatement un écran bleu (suivi d’un reboot immédiat).
La solution est semblable à celle utilisée dans le passé pour VISTA sur un ancien NoteBook HP (n’est-ce pas Renaud ?). En gros, il s’agit de trouver des pilotes VISTA pour le composant SATA (indisponible chez ACER) chez LENOVO :
Il faut donc prendre les pilotes et extraire les fichiers. On va suivre ensuite la procédure fournie dans la page Web pour Windows XP :
Dans le cas de l’OS déjà installé (comme c’était mon cas), il faut aller directement dans la rubrique :
If you do not have a diskette drive, you can install Intel Matrix Storage Manager Driver by the following alternative procedure:
- Start the BIOS Setup Utility menu.
- Select Config.
- Select Serial ATA (SATA).
- Select Compatibility.
- Install Windows XP and Service Pack 2.
- Download Intel Matrix Storage Manager Driver from the Web site and extract the driver to C:\DRIVERS\WIN\IMSM.
- Run Intel Matrix Storage Manager Driver. To do this, go to C:\DRIVERS\WIN\IMSM\PREPARE, and double-click install.cmd.
- Turn the computer off and then on again.
- Start the BIOS Setup Utility menu.
- Select Config.
- Select Serial ATA (SATA).
- Select AHCI.
- Start Windows XP. The Welcome to the Found New Hardware Wizard appears.
- Click No, not this time and click Next.
- Select Install from a list or specific location(Advanced), then click Next.
- Select Search for the best driver in these locations. Then select Include this location in the search:, specify the path, C:\DRIVERS\WIN\IMSM, and click Next. The Completing the Found New Hardware Wizard appears.
- Click Finish.
- When the System Settings Change window appears, click Yes. The computer restarts.
Cela fonctionne parfaitement et vous obtiendrez alors votre AspireOne sous Seven avec le mode SATA optimal.
Romelard Fabrice [MVP]
Toujours dans la suite des articles liés à l’amélioration de l’adoption du moteur de recherche de MOSS, voila un nouvel article pour vous aider à appréhender la personnalisation des résultats de cette recherche :
Cet article est comme toujours disponible sur ASP-PHP et prépare un suivant toujours sur ce thème de la personalisation de la page de résultats.
Romelard Fabrice [MVP]
Nous avons vu dans un précédent message qu’un patch récent de Microsoft posait des des soucis lors de l’indexation des MySite et profils sous MOSS.
Il s’avère que cette même mise à jour provoque aussi des erreurs sous WSS V3 lors de son indexation de contenu.
On trouve cette erreur dès le redémarrage de la machine après l’installation du Patch (Event ID 2436) :

Avec en détail :

Ainsi on retrouve bien le message similaire “Access Denied”. Il suffit alors de suivre la même procédure KB896861 que pour le précédent message :
Vous pouvez aussi exécuter ce petit script PowerShell :
# FIX for Search Access Denied error [EventID 2436]
# KB896861
# http://support.microsoft.com/kb/896861
# Check Reg Key Before the change:
"LoopBack Disable value before: "+ (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa").DisableLoopbackCheck
# Create a key with the value:
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -name "DisableLoopbackCheck" -Type DWORD -value 1
# Check Reg Key after the change:
"LoopBack Disable value After change: "+ (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa").DisableLoopbackCheck
Puis relancer le crawling avec les commandes suivantes :
net stop SPTimerV3
net stop SPSearch
net start SPTimerV3
net start SPSearch
stsadm -o spsearch -action fullcrawlstart
Tout devrait alors rentrer dans l'ordre.
Romelard Fabrice [MVP]
Les TechDays de Genève se sont terminés aujourd’hui pour moi sur une session dédiée à la table Microsoft Surface et animée par Grégory Renard (Alias Redo).

Cette session fut pour moi une occasion de mieux appréhender cette nouvelle interface proposée par Microsoft dont différentes personnes ont déjà traîté ici.
J’ai été de nouveau Speaker sur ces Techdays 2009 de Genève, pour une session dédiée à PowerShell V2.

Ainsi comme année, j’ai été victime de ce !###vdsfhdsk]]]#** d’effet démo (et je n’étais apparement pas le seul :)). En effet, 30 minutes avant ma présentation, qui devait comprendre l’utilisation de PowerShell dans le cadre de la gestion des fermes SharePoint, la machine virtuelle qui devait être utilisée dans cette partie a explosé.
Ainsi, ma machine 2008 Server ne voulait plus redémarrer et quand elle est enfin reparti, le SharePoint WSS V3 installé ne voulait plus s’exécuter.
Bref, grosse panique avant le début de la session qui finalement s’est plutôt bien déroulée. Je profite de ce message pour remercier tous ceux qui m’ont aidé et soutenu dans ce moment intense :)
Quoi qu’il en soit, ces deux jours furent comme toujours excellent, avec de multiples sessions de haute qualité et une soirée intermédiaire sur le thème du casino.
A noter que cette soirée a vu différentes personnes de chez Microsoft et de chez les partenaires faire un concert :).
Donc excellent évènement et vivement l’an prochain (en Avril) qui sera certainement très axé sur Office et SharePoint 14, et comme chaque année Merci à Microsoft Suisse pour cet organisation et merci à Dung pour la confiance qu’il m’accorde.
Romelard Fabrice [MVP]
Dans le cadre de l’installation des Patches Microsoft, il arrive toujours qu’on prie pour que tout se passe bien et que surtout, le patch que l’on installe (parfois sans très bien comprendre l’intérêt non plus) ne casse pas une installation qui fonctionne parfaitement.
C’est encore plus vrai dans le monde SharePoint, tous les IT SharePoint se souviennent du problème du FrameWork .NET 2.0 dans une ferme SPS 2003.
Bref, ceci ne change pas avec MOSS et la dernière cocasserie du genre vient du patch :
Celui-ci change des paramètres dans l’authentification NTLM, ce qui est présenté dans le message :
Ainsi, j’ai découvert ce matin que le MOSS Search ne trouvait plus aucun collaborateur de la compagnie et en regardant le site d’administration de ce search :

L’event Viewer et le Crawl Log nous explique pourquoi (Access Denied)i on trouve 0 Success de ce crawl :


Il faut donc aller sur la page du Support Microsoft :
Une fois la Base de registre modifiée et le serveur d’indexation redémarré, on peut relancer le Crawl sur le contenu MySite et obtenir un fonctionnement correct de ce People search :

Vous utilisateurs peuvent dès lors réutiliser normalement le Search et les collaborateurs.
Romelard Fabrice [MVP]
Un exemple simple d’utilisation très intéressante de PowerShell dans le cadre de l’administration de nombreux serveurs (SharePoint ou autre) est le test d’installation de Pacth Microsoft.
Un des virus récent qui utilise une faille Microsoft (dans le protocole RDP je crois) est Conficker (et ses variantes), ce virus peut être contré en installant simplement un patch :
Sans vouloir entrer dans quelconque polémique pour ou contre MS et tous les trolls qui s’en rapproches, le fait est quîl faut checker ses serveurs (et postes de travail) afin de valider cette mise à jour. Cela est rapidement pénible en se connectant manuellement sur la machine et listant dans “ajout/suppression de programmes”.
Dans ce contexte, PowerShell V2 peut vous venir en aide en utilisant une option disponible dans le “get-wmiobject”, qui est “-ComputerName”.
Sur l’inspiration de ce script :
J’ai donc personnalisé celui-ci en ajoutant le credential, ce qui donne ce résultat :
# Get content
$PatchCode = "KB958644" #Patch version to test
$computers = get-content C:\ServersList.txt #TextFile with all
[String]$mylogin = "DOMAIN\AdminLogin"
[String]$mypassword = "AdminPassword"
$mySecurePW = new-object Security.SecureString
$mypassword.ToCharArray()|% { $mySecurePW.AppendChar($_) }
# Create the Credential used
$myCredential = New-Object System.Management.Automation.PsCredential($mylogin, $mySecurePW)
# Get all the info using WMI
foreach($myServer in $computers)
{
write-host "--------------------------------------"
write-host $myServer
$results = get-wmiobject -class "Win32_QuickFixEngineering" -namespace "root\CIMV2" -computername $myServer -Credential $myCredential
# Loop through $results and look for a match then output to screen
foreach ($objItem in $results)
{
if ($objItem.HotFixID -match $PatchCode)
{
write-host "Hotfix $PatchCode installed"
}
}
write-host "--------------------------------------"
}
Il ne vous reste ensuite plus qu’à créer un fichier “ServersList.txt”, avec la liste des serveurs (1 nom par ligne) et d’exécuter le script en question, vous obtiendrez le résultat comme suivant :

Si le serveur possède le patch, on aura la réponse “Hotfix XXXXXX installed” sous le nom du serveur, sinon on ne trouvera que le nom du serveur et si une erreur se produit lors de l’appel, on trouve le message (comme Access Denied ou RPC non activé, …).
Ce script est simple, mais vous permet par la suite de vous focaliser sur les serveurs à traîter.
Romelard Fabrice [MVP]
Dans la lignées des articles sur l’amélioration du Search de MOSS que l’on trouve sur ASP-PHP, voila donc une nouvelle fonctionnalité de MOSS peu documentée :
Cette option est très utile et peux vous permettre d’ajouter par exemple les définitions des acronymes internes à votre entreprise.
Le prochain article continuera certainement dans cet axe d’amélioration pour l’utilisateur.
Romelard Fabrice [MVP]
Comme vous le savez déjà, j’ai lancé un petit projet CodePlex - SharePoint Management PowerShell scripts, afin de regrouper un ensemble de scripts PowerShell destinés à la gestion des plateformes SharePoint.
Parmis les scripts disponibles, j’ai donc fourni un script permettant l’Export et l’Import de Liste SharePoint.
Je me suis rendu compte à l’usage que ma première version de ce script (pour la fonction d’import) ne fonctionnait pas comme je le souhaitais :
- Toutes les dates de création et de modification étaient supprimées
- Tous les utilisateurs (créateur et modificateur) de la liste rechargée étaient remplacés par le compte utilisé lors de l’import
Ceci venait d’un paramètre manquant dans les “Settings” de l’import :
Ce paramètre peut avoir une des trois valeurs (Enum) suivantes :
Ainsi, j’ai donc modifié la fonction d’import de mon script afin d’intégrer correctement ce paramètre :
function Import-List([string]$DestWebURL, [string]$FileName, [string]$LogFilePath)
{
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Deployment") > $null
$settings = New-Object Microsoft.SharePoint.Deployment.SPImportSettings
$settings.IncludeSecurity = [Microsoft.SharePoint.Deployment.SPIncludeSecurity]::All
$settings.UpdateVersions = [Microsoft.SharePoint.Deployment.SPUpdateVersions]::Overwrite
$settings.UserInfoDateTime = [Microsoft.SharePoint.Deployment.SPImportUserInfoDateTimeOption]::ImportAll
$site = new-object Microsoft.SharePoint.SPSite($DestWebURL)
Write-Host "DestWebURL", $DestWebURL
$web = $site.OpenWeb()
Write-Host "SPWeb", $web.Url
$settings.SiteUrl = $web.Url
$settings.WebUrl = $web.Url
$settings.FileLocation = "C:\Temp\BackupRestoreTemp\"
$settings.BaseFileName = $FileName
$settings.LogFilePath = $LogFilePath
$settings.FileCompression = 1
Write-Host "FileLocation", $settings.FileLocation
$import = New-Object Microsoft.SharePoint.Deployment.SPImport($settings)
$import.Run()
$web.Dispose()
$site.Dispose()
}
Vous pouvez d’ailleurs retrouver la dernière version de ce script ainsi que tous les autres sur le site CodePlex.
Romelard Fabrice [MVP]
Etant MVP depuis maintenant quelques années, c’est donc la quatrième fois que je me rends à Seattle pour le GLOBAL MVP Summit.
Les photos classiques du MVP Summit sont encore disponibles :
Le contenu de cette année était très riche en tant que MVP SharePoint avec l’arrivée proche de la Béta 1 de SharePoint (et Office) 14. Ainsi, nous avons eu un planning chargé avec des choix cruciaux à faire sur la session à suivre (lorsque les deux furent très intéressantes).
Comme l’ont déjà dit Renaud ou Sébastien, nous ne pouvons pas du tout parler de ce qui a été vu, mais avec ma petite expérience des Summit, c’est tout de même le premier ou le contenu est si dense.
Ceci est certainement du au positionnement de SharePoint de plus en plus statégique pour Microsoft.
Ainsi, avec les autres MVP francophones, nous avons suivi un programme pour parer à toute éventualité :
- Restaurant Japonais pour les Sushis et la cuisson sur plaque (un des meilleurs de la ville à ce qu’on a découvert après coup)
- Restaurant à Hamburger (plus light que le Johny Rocket)
- Le Macy’s pour les courses (merci les 11% de detaxe fournis en tant que non résident US)
- Le BOSE store (que l’on commence à connaître sur le bout des doigts avec Renaud), et oui pour ceux qui se demandent, encore un casque acheté (le Intra)
- Le company Store de Microsoft
- La salle de jeux en face du Sheraton pour des parties de fléchettes endiablées (et oui je déteste le 18 :))
- Le Space Needle et son monorail
- Le marché à poisson
- …
Bref, même après pas mal de voyages la-bas, il me reste encore plein de choses à voir, vivement le Global MVP Summit de 2010.
Romelard Fabrice [MVP]
Technorati Tags:
MVP,
Summit
Dans le cadre de la mise en place du moteur de recherche basé sur MOSS Search, il existe une astuce importante pour la mise à jour des profils utilisateurs.
En effet, lorsqu’on installe un MOSS et qu’on paramètre les Services Partagés de MOSS (SharedServices) qui comprend basiquement :
On voit une source de contenu qui est créée automatiquement :
- Local Office SharePoint Server sites
Cette source de contenu va contenir par défaut les différentes URL des Web Applications existant dans votre ferme MOSS :
- http://myWebApplication1.myCompany.com
- http://myWebApplication2.myCompany.com
- http://myWebApplication3.myCompany.com
Mais aussi les liens vers la Web Application MySite avec ses deux protocoles d’accès :
- http://mysite.myCompany.com : protocole HTTP pour indexation du contenu des pages personnelles des utilisateurs (listes, documents partagés, …)
- sps3://mysite.myCompany.com : protocole spécifique pour l’indexation des informations des profils utilisateurs (information provenant de l’AD ou des autres sources de synchronisation)
Le fait est que lors de la mise en place du contenu dans les Web Applications, l’indexation commence à prendre du temps et pénalise le chargement des profils.
De plus, si on ajoute des champs personnalisés dans la base de profils, il faut absolument effectuer un Full Crawl pour sa prise en compte par le People Search.
Et bien la solution est simple, mais encore faut-il y penser (merci à mon ami Peter de m’avoir soufflé l’idée) :
- Créer une source de contenu particulière : MySite-Profiles
- Avec l’URL MySite dans les deux protocoles
- Lui appliquer l’exécution du Full Crawl toute les nuits (pour l’ajout potentiel des champs personalisés)
- Lui appliquer un Incrémental Crawl chaque mi journée (pour les modification éventuelles par les utilisateurs ou dans l’AD)
Il faut ensuite supprimer les URL mySite (les deux protocoles) dans la source de contenu de base et relancer un Full Crawl de ces deux sources de contenu.
Romelard Fabrice [MVP]
Dans un précédent message, j’avais évoqué la problématique du formatage de disque dur depuis une machine Windows.
L’objectif était donc d’utiliser un disque dur USB de 160 GB comme source multimédia pour ma XBOX 360. J’avais donc signalé que la XBOX 360 ne supporte que deux type de formats :
- FAT32 (Ancien système de fichiers pour les machines Windows)
- HFS (Système de fichiers de MacOS)
Le fait est que Windows ne permet pas de formatter une partition de plus de 32 GB alors que le système de fichiers FAT32 supporte jusqu’à 2 TB.
La première solution imaginée était de tronconner le disque de 160 GB en plusieurs partitions de 30 GB. La XBOX ne prend en compte que la première partition et ne voit pas du tout les autres existantes.

La seconde solution est d’utiliser un logiciel spécifique pour cette tache. On trouve l’astuce sur le site OnLine Tech Tips :
Il existe donc un logiciel gratuit effectuant parfaitement cette tache :
Lorsqu’on branche un disque dur USB sur le PC et qu’on lance l’application, on voit apparaître la fenêtre suivante.

il suffit de cliquer sur “Create” et quelques secondes plus tard on voit sa partition de 160 GB créée.

Qui est alors bien visible dans le disk manager de Windows

Le disque est alors aussi utilisable sur la XBOX 360, comme expliqué dans le message sur les sources multimédia USB.
Attention, pour Windows Seven, j’ai activé le compatibilité avec Windows XP SP2.
Romelard Fabrice [MVP]
Technorati Tags:
XBOX 360,
USB,
Disk
Pour ceux qui comme moi utilisent la vision double de l’explorateur Windows :
- TreeView sur la gauche
- Contenu du répertoire sur la droite
La configuration initiale de Windows Seven est un peu déroutante, car le TreeView ne se déploie pas lors de la navigation dans les dossiers (sur la partie droite).
Il est cependant possible de récupérer ce fonctionnement par une option dans les paramètres de l’explorateur de fichiers. Pour cela, il faut cliquer sur “Organize” et “Folder and Search Options”

Puis il faut cocher la ligne “ Automatically expand to current folder”

On valide par OK et tout est OK
Romelard Fabrice [MVP]
Présentation de la gestion de WSMan pour l’administration à distance
- Surveillance de l’état de la machine
- Patching à distance
- Passage par HTTP (ou HTTPS)
Démonstrations
- Monitoring par un Job
- PSSession
- Transactions et Job
Présentation de la solution de Portail PowerShell - PoshBoard (Portail OpenSource AJAX/SilverLight)
- Disponible sur CodePlex
- Fonctionne en PS V1 ou PS V2
- Création de widget par script PowerShell
- Création de reporting
- Travail au niveau de l’objet PowerShell directement
- Intégration des objets PowerShell en code managé
- Utilisation d’interface de rendu Web (HTML ou SilverLight)
- Montage de PowerShell en tant que WebService
- Génération de graphiques SilverLight
Romelard Fabrice [MVP]
Présentation du placement du produit et des objectifs de l’application
Exigence:
- La bonne information à la bonne personne
- Respect de la sécurité et des règles d’accès
- Capacité d’indexation
Versions:
- Serveur de recherche d’entreprise: Search Server 2008 Express (Gratuit)
- Solution de recherche d’entreprise: MOSS 2007 Search
- Solution de recherche spécialisée : fast ESP
MSS et SharePoint Search sont extensibles via développement (Faceted Search, WildCard, …) soit payant (par des partenaires) soit gratuit (CodePlex)
Travail et paramétrage sur la recherche avec optimisations et entretien (surveillence des recherches les plus courantes, …)
Search Server Express
- Simple et fonctionnel très rapidement
- Pas de limitation logicielle, mais matérielle (pour sauter les limitations, il faut utiliser MSS 2008)
Démonstrations possibilités de MSS 2008 (sur un MOSS Search)
MOSS Search
- Présentation des fonctionnalités de MOSS Search
- People Search (MySite et Profile)
- Federated Search
- BDC
- Scope
Spécification du produit à choisir suivant les options demandées
Romelard Fabrice [MVP]
Les 10 derniers blogs postés
-
Silverlight 3 : Communication et multicast par
Kévin Gosse le il y a 9 heures et 14 minutes
-
[Perso] Découvertes estivales : Linux (Part I) par
Le blog de FremyCompany le il y a 11 heures et 56 minutes
-
[Refactoring] ReSharper pour Visual Studio 2010 (Preview) par
Thomas Jaskula le 07-04-2009, 00:50
-
[Refactoring] Analyser vos exceptions avec ReSharper Exceptional par
Thomas Jaskula le 07-03-2009, 23:36
-
SharePoint 2007 : patterns & practices SharePoint Guidance par
Philippe Sentenac [MVP SharePoint] le 07-03-2009, 09:56
-
[Visual Studio 2010] Les tests cases c’est bien, mais je vais devoir tout réécrire ? par
Etienne Margraff le 07-03-2009, 09:00
-
MVP[Gribouillon].AddYear par
The Grib's Lair [Sébastien PICAMELOT - MVP SharePoint] le 07-03-2009, 08:45
-
Clinique INSIA - Projet de fin d’Etudes (Silverlight 3 MVVM et OutOfBrowser, WCF, TFS) - Part 1 par
David REI le 07-02-2009, 23:38
-
C’est la crise ? Bah pourquoi cramer du budget pub alors ? par
Nix's Blog le 07-02-2009, 15:31
-
Soyons MVP ! par
TheSaib .NET blog le 07-02-2009, 12:15