Environment: SP2010 Enterprise

As an administrator, is there any way to create/modify personal views for specific users? So far how I have to do it is give the user permissions to manage personal views, log in as them, create the desired personal view, then go back and remove the manage personal views permission. This is time-consuming and just a general PITA, but I can't find any other way to do it. Is there a method or even a solution I can deploy to allow me to centralize this process?

Any help is greatly appreciated. Thanks!

2 Answers 2


I can only offer a workaround: some months ago I wrote a site collection scoped feature which enables an administrator to copy a normal view of a list to a personal view (same list, but other user). So the process of creating personal views for many users is faster.

Please pay attention:

  • I wrote it just for fun, maybe I will put it on codeplex some day
  • If you need some other functionality maybe I could help if it's not too much time effort
  • I only tested it on my development machine

You find the two solutions and more details at SWPersonalViews

  • Thanks Stefan, this looks pretty much like what I was hoping for. I haven't had a chance to deploy it yet but I will soon and will post the results here.
    – thanby
    Nov 20, 2012 at 15:39
  • This works like a charm for pushing out personal views, thank you Stefan! I'm still looking for a way to manage existing personal views (edit/delete) for other users so if anyone comes across a way to do that please let me know, but for now this gives me the functionality to get the job done.
    – thanby
    Nov 21, 2012 at 13:38
  • Glad to hear that it works as expected, if I get to know something about the modification of existing views I will come back to you.
    – Stefan
    Nov 22, 2012 at 0:35

Also there is a possibility to create personal views for specified user by PowerShell

$site = Get-SPSite "http://sp2013"
$user = $site.RootWeb.AllUsers.GetByEmail("[email protected]")
$token = $user.UserToken

# If you are using Web object instead if Site object, then instead of $site.Url
# use $web.Site.Url ($web.Url doesn’t work even for RootWeb)
$impWebObj = New-Object Microsoft.SharePoint.SPSite($site.Url, $token)
$list = $impWebObj.RootWeb.Lists["My List"]

$viewFields = New-Object System.Collections.Specialized.StringCollection
$viewQuery = "<OrderBy><FieldRef Name='Title' Ascending='False'/></OrderBy>"
$viewRowLimit = 30
$viewPaged = $true
$viewDefaultView = $false

$list.Views.Add($viewTitle, $viewFields, $viewQuery, $viewRowLimit, $viewPaged, $viewDefaultView)
  • In a similar way you can also get personal views
    – Alex Seliv
    Nov 4, 2016 at 13:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.