lundi 10 octobre 2011

Repositionner correctement le nom d'un utilisateur dans Office dans un environnement TSE / RDS

Par erreur, il arrive qu'en déployant un profil par défaut sur un nouveau serveur TSE / RDS (Remote Desktop Services), on diffuse aux utilisateurs des éléments de profil personnalisés et qui ne le devrait pas.

Typiquement, lancer une application avant de déployer un profil par défaut personnalise cette application dans App Data et la base de registre. Dans Office, la personnalisation principale (ou plutôt remarquable) est le nom et les initiales de l'utilisateur.

Si vous avez exécuté Word ou Excel pendant la création d'un profil tous vos utilisateurs auront le nom du compte créateur de profil dans Office. Ca peut être bloquant pour la traçabilité des documents mais, et surtout, pour l'ouverture d'un document déjà ouvert par un autre utilisateur, utilisateur qui, du coup, se retrouve avec un nom absurde ou inconnu.

Voici un petit script PowerShell qui, lancé via GPO à l'ouverture de session des utilisateurs, repositionnera la valeur UserName et UserInitials dans le profil office des utilisateur en utilisant la variable d'environnement USERNAME (%username%). Remplacez simplement "POUET" par le nom d'utilisateur créateur du profil par défaut.

############################################################
# Modif des profils Office, valeur UserName #
####################################################Edgarcia
#Récupération des infos de la base de registre
$strUserKey = (get-itemproperty HKCU:\Software\Microsoft\Office\Common\UserInfo -Name UserName)

#Récupération de la variable d'environnement Username
$strUsername = $ENV:USERNAME

# Ici remplacez POUET par le nom de l'utilisateur que vous avez utilisé pour créer le profil par défaut
if (($($strUserKey.UserName)) -eq "POUET")
{
#Modif de la donnée de la valeur UserName
Set-ItemProperty -Path HKCU:\Software\Microsoft\Office\Common\UserInfo -Name UserName -Value $strUsername

#Modif de la donnée de la valeur UserInitials
Set-ItemProperty -Path HKCU:\Software\Microsoft\Office\Common\UserInfo -Name UserInitials -Value $($strUsername.Remove(2))
}

On peut également se baser sur ce script pour faire une recherche dans les HKU pour corriger tous les profils d'un serveur TSE.

N'hésitez pas à enrichir ce billet !