Hi,
I hope you all are doing fine and enjoying my blog post.
I think we covered lots of things from setting wallpapers using Powershell to the generating reports from Active Directory, and this shows how powerful Powershell is and how we can use it in our various task to automate.
I simply love Powershell, not because it is Powerful but because it is one of (I want to say only) scripting language available, which is easy to learn and easy to use.
Ok, now lets discuss about my today’s task.
If in your company users are heavily using Word, Excel, PowerPoint, then you are aware from how, valuable are comments in.
To add a comment, you have to click on “Review ” tab and need to click on “New Comment” icon.
So now you may be ask, what is the big deal?
Nice question, when few users, or any team , works on a single file, and when they add comments in to the file, the comments are shown as “User Initials”.
So, what if your “User Initials” in Ms Office are wrong, then no one knows who commented an who added the notes.
Download link : http://gallery.technet.microsoft.com/scriptcenter/Fix-Users-Initial-in-35c2801b
you can see my user initials are set wrong. and when i add comments they are coming as “SAM” rather then “AD”.
This is a problem, for example, if you have 100+ user or so and incase few one’s user initials are wrong, how you are going to fix it?
Manually? Yes, you can, but, that is not a good option for scripters.
Powershell Script? Awesome, let see how we are do this.
This user initials for Ms Office application are stored in,
“HKCU:\Software\Microsoft\Office\Common\UserInfo” in key “UserInitials”.
In this script.We are going to set this key using “$env:USERNAME” environment variable.
# stroing $env:Username in to a Username variable
$userName = $env:USERNAME
|
# Checking the current Initials in the registry and storing in a variable
$oldInitials = (Get-ItemProperty -Path HKCU:\Software\Microsoft\Office\Common\UserInfo).UserInitials
|
# spliting username
# if your username had space you can use => $split = $username.Split()
$split = $username.Split(".")
|
# joining spiting username and getting a first words only
switch ($split.Length)
{
0 { Write-Warning "Not able to find username." ; break }
1 { $newUserInitials = $split[0].Remove(1) ; break }
2 { $newUserInitials = $split[0].Remove(1) + $split[1].Remove(1) ; break }
3 { $newUserInitials = $split[0].Remove(1) + $split[1].Remove(1) + $split[3].Remove(1) ; break }
4 { $newUserInitials = $split[0].Remove(1) + $split[1].Remove(1) + $split[3].Remove(1) + $split[4].Remove(1) ; break }
5 { $newUserInitials = $split[0].Remove(1) + $split[1].Remove(1) + $split[3].Remove(1) + $split[4].Remove(1) + $split[5].Remove(1) ; break }
}
|
# if old user intitails not matched with Our one
if ( $oldInitials -ne $newUserInitials )
{
set-ItemProperty -Path HKCU:\Software\Microsoft\Office\Common\UserInfo -Name UserInitials -Value $newUserInitials -Force
Write-Host "User Initials Fixed" -ForegroundColor 'Green'
}
else
{
Write-Host "User Initials matched."
}
|
Now lets run the script and see and if this fix it. , Make sure that you all Office app are closed .
I run the script and and it is showing me that it fixed it.
Now open any office app and see if this really fixed it.
Seems good.
now add some comments.
Yaay.!!!!!. it fixed.
Download link : http://gallery.technet.microsoft.com/scriptcenter/Fix-Users-Initial-in-35c2801b
Thanks
Aman Dhally
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.