Editando el campo Created By en una lista en SharePoint Server On-Premises con PowerShell

Solo a los administradores de infraestructura nos pasa quizás, que de pronto terminamos accediendo a la Intranet con una cuenta de administrador en vez de utilizar nuestra cuenta de usuario regular. Sucede que con tantos pendientes y tantas ventanas abiertas a veces perdemos de vista con que usuario estamos firmados y terminando operando nuestras aplicaciones internas o listas SharePoint usando una cuenta que no es la esperada.  Posteriormente en los reportes o en las vistas de datos donde filtramos por Created By = [Me] no vemos la información que esperábamos ver y al revisar te das cuenta que los elementos han sido creados con una identidad distintas, tu identidad de administrador. ¿Les ha pasado?

En este post les quiero compartir el código PowerShell para editar el campo Created By en SharePoint a fin de corregir y asignar el usuario correcto. Después de buscar en internet, de leer un par de foros y copiar algo de código, armarlo y probarlo el resultado fue el siguiente:

$web=get-SPWeb “http://portal.tacosdecabeza.com/sites/IT/devprojects”

$list=$web.Lists["Enhancements"]

$userLogin = "TACOLOCO\haaron.gonzalez"

$user = Get-SPUser -Web $web -Limit ALL | ? {$_.userlogin -eq $userLogin}

$userString = "{0};#{1}" -f $user.ID, $user.UserLogin.Tostring()

$item = $list.GetItemById(4505)

$item["Author"] = $userString

$item["Editor"] = $userString  

$item.UpdateOverwriteVersion()

$web.Update()

$web.dispose()

Obviamente este código necesita ser ejecutado dentro de una consola de SharePoint Management Shell en un servidor de la granja, no todos tienen ese gran lujo, para aquellos que sí, espero les sirva.

Saludos!

 

Referencias

Leave a Reply

Your email address will not be published. Required fields are marked *