none
Ejecutar automaticamente un archivo sp1 de la consola de comandos de SharePoint RRS feed

  • Pregunta

  • Hola a todos.

    Necesito ejecutar cada día unos comandos desde un archivo .sp1 (File.sp1) que actualizan un campo de una lista de SharePoint. Se como hacer que se ejecute la consola de administración de SharePoint mediante el siguiente acceso directo:

    C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe  -NoExit  " & ' C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\POWERSHELL\Registration\\sharepoint.ps1 ' "

    ¿pero como hago que, una vez se abra la consola, ejecute los comandos del archivo File.sp1?. He intentado pasarlo de estas dos maneras pero no funciona:

    1) PowerShell -command  " . ' C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\POWERSHELL\Registration\sharepoint.ps1 ' ; 'C:\backup\File.ps1'"

    2) C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe  -NoExit  " & ' C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\POWERSHELL\Registration\\sharepoint.ps1 ' " "C:\backup\File.sp1"

    ¿Alguna idea de como se ha de pasar el archivo a ejecutar a la consola?

    Gracias

    miércoles, 24 de octubre de 2012 13:59

Respuestas

  • Hola,

    La ruta que tienes que indicar en la tarea programada es el archivo de script de PowerShell, Windows mediante la asociación de extensiones ejecutará el archivo. Lo que debes incluir en este archivo es agregar los complementos de SharePoint para que cargue los cmdlets. De modo que tu script de PowerShell quedaría de la siguiente manera:

    Add-PSSnapin Microsoft.SharePoint.PowerShell
    
    $spWeb = Get-SPWeb -Identity http://SiteTest
    $spList = $spWeb.Lists["Test"]
    $spList.Items | ForEach-Object { $_.SystemUpdate() }
    $spWeb.Dispose()

    Saludos.

    • Marcado como respuesta raulsang jueves, 25 de octubre de 2012 4:28
    miércoles, 24 de octubre de 2012 23:53

Todas las respuestas

  • Hola

    puedes usar el programador de tareas de Windows Server, permite programar la ejecución de script PowerShell


    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin | MVP SharePoint Server

    miércoles, 24 de octubre de 2012 16:06
  • He probado lo que me comentas, sin éxito, de la siguiente manera:

    He creado una tarea programada cuya acción inicia el siguiente programa:

    C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe

    y como argumento:

    -NoExit  " & ' C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\POWERSHELL\Registration\\sharepoint.ps1 '"

    que lo que hace es abrirme la consola de SharePoint. Pero como hago para que ejecute en la consola, el código siguiente guardado en un archivo (File.ps1):

    $spWeb = Get-SPWeb -Identity http://SiteTest
    $spList = $spWeb.Lists["Test"]
    $spList.Items | ForEach-Object { $_.SystemUpdate() }
    $spWeb.Dispose()

    miércoles, 24 de octubre de 2012 18:44
  • Hola,

    La ruta que tienes que indicar en la tarea programada es el archivo de script de PowerShell, Windows mediante la asociación de extensiones ejecutará el archivo. Lo que debes incluir en este archivo es agregar los complementos de SharePoint para que cargue los cmdlets. De modo que tu script de PowerShell quedaría de la siguiente manera:

    Add-PSSnapin Microsoft.SharePoint.PowerShell
    
    $spWeb = Get-SPWeb -Identity http://SiteTest
    $spList = $spWeb.Lists["Test"]
    $spList.Items | ForEach-Object { $_.SystemUpdate() }
    $spWeb.Dispose()

    Saludos.

    • Marcado como respuesta raulsang jueves, 25 de octubre de 2012 4:28
    miércoles, 24 de octubre de 2012 23:53
  • Ahora si, gracias. Funciona perfectamente.
    jueves, 25 de octubre de 2012 4:29