Mostrando entradas con la etiqueta AccessRequest. Mostrar todas las entradas
Mostrando entradas con la etiqueta AccessRequest. Mostrar todas las entradas

jueves, 31 de mayo de 2012

Tips/info #25 Sharepoint 2010

1-Actualizar los mails de las solicitudes de acceso para todos los sites de un web application mediante powershell

$webapp = Get-SPWebApplication "http://webapplication"
foreach($site in $webapp.Sites)
{
foreach($web in $site.AllWebs)
{
Write-Host $web.url
if(!$web.HasUniquePerm)
{
Write-Host "La solicitud de acceso hereda del elemento padre"
}
else
{
$web.RequestAccessEmail = "emailrequest@emailHost.com"
$web.Update()
Write-Host " Email cambiado"
}
}
}




2-Conducta de comportamiente para abrir documentos : open in the client application


DocShare3


$site=Get-SPSite "http://sitio/"
$web=$site.RootWeb
$docLibrary =$web.Lists["libreria"]
# abre en el cliente
docLibrary.DefaultItemOpen = DefaultItemOpen.PreferClient;
$docLibrary.Update()


Se puede usar:


// Abrir en el navegador
docLibrary.DefaultItemOpen = DefaultItemOpen.Browser;

// usa la configuración default
docLibrary.DefaultItemOpenUseListSetting = false;

3-Error: The web application at [URL] could not be found. Verify that you have typed the url correctly. If the url should be serving existing content, the system administrator may need to add a new request url mapping to the intended application.


Agrega la [url] que menciona el error al alternate access mapping del web application correspondiente.


4-Site collection bloquear su contenido


Para setear un Lock (bloqueo):
stsadm -o setsitelock -url <Site-collection-url> -lock <Lock-Type>


Para verificar los bloqueo actuales:
stsadm -o getsitelock -url <Site-collection-url>


donde<Lock-Type> puede tener los siguientes valores:


  • none  - Remueve todos los bloqueos
  • noadditions  - Previene de agregar contenido
  • readonly – No puede agregar/actualizar/borrar contenido
  • noaccess – No se puede ver el sitio de ninguna manera

    5-Algunas funciones útiles de SPServices


    Columnas de tipo personas o grupo, o columnas de tipo lookup


    Al usar estos campos, la información que se retorna es de la siguiente manera:  110;#4540152 o 16;#Departamento de Sistemas


    Podrás usar la siguiente función:

    function AjustarOWS(value){
    stringValue = value.indexOf(";#");
    salida = value.substring(stringValue +2);
    theLen = salida.length;
    if (theLen < 8){salida = "Not Listed"}else{salida}
    return salida;
    }



    Se podrá usar con SPServices de la siguiente manera:

    var depSistemas = ajustarOWS($(this).attr("ows_DepartamentoSistemas"));

    6-Error al mover o copiar una document set vía programación: DocID: Site prefix not set.

    $site = Get-SPSite http://host/sites/yoursite
    $properties = $site.RootWeb.Properties

    if ($properties["docid_msft_hier_siteprefix"] -eq $null)
    {
    $properties["docid_msft_hier_siteprefix"] = ""
    $properties.Update()
    }
    7-Remover una sección inválida del web.config mediante PowerShell

    $webapplication = Get-SPwebapplicationlication http://url de la web application
    $modification = $webapplication.WebConfigModifications | where { $_.Name -eq "<el nombre de la key" }
    $webapplication.WebConfigModifications.Remove($modification)
    $webapplication.Update()


    8-Error: Object Reference not set to an instance of an object with Timer Job Definitions al tratar de ingresar a http://<CA URL>/_admin/ServiceJobDefinitions.aspx


    El error nos informa en el event viewer:


    “There was an exception loading job definition "Microsoft.Office.Project.Server.Administration.ServerScheduledTimerJob" (id "r3u7f3gd-721b-5dcd-1135-fb3456e39425"). Object reference not set to an instance of an object.”


    abro una consola de powershell y hago lo siguiente:



    • get-sptimerjob | where-object {$_.name -like "PWA*"} | format-list name, id
    • disable-sptimerjob r3u7f3gd-721b-5dcd-1135-fb3456e39425

    9-Comandos de powershell para trabajar con features de Sharepoint


  • #Feature mostrada por nombre alfabeticamente
    Get-SPFeature | Sort -Property DisplayName


    #Feature mostrada por nombre alfabeticamente y agrupada por scope
    Get-SPFeature | Sort -Property Scope,DisplayName | FT -GroupBy Scope DisplayName,Id


    #exportar el resultado
    Get-SPFeature | Sort -Property Scope,DisplayName | FT -GroupBy Scope DisplayName,Id > c:\resultados.txt


    #Features del sitio correspondiente  ordenada por displayname y agrupadas por displayname y ID
    Get-SPFeature -Site http://sitecollectionurl | Sort DisplayName | FT DisplayName,Id


    10-No aparece la opción de “Spell Checker” en la ribbon


    Hay que activar la feature SharePoint Server Publishing Infrastructure a nivel del site collection


    SpellChecker_thumb



    11-Asignar permisos mediante client object


    http://alancejacob.wordpress.com/2012/05/30/programmatically-assign-permission-to-sharepint-list-for-specific-users/


    12-Modificar las columnas created by (creado por) y modified by (modificado por) con Client Object


    http://alancejacob.wordpress.com/2012/05/30/add-listitem-in-created-bymodified-by-field-sharepoint-2010-client-object-model/


    13-Obtener un icono de la carpeta 14 con SPUtility


    http://blogs.msdn.com/b/knackpoint/archive/2012/05/13/fetching-document-file-icons-in-sharepoint.aspx


    sábado, 26 de mayo de 2012

    Tips/Info #23 Sharepoint 2010

    1-Script de powershell para setear el mail de los access request de los sitios

    $webapp = Get-SPWebApplication "nombre del web application"
    foreach($site in $webapp.Sites){
        foreach($web in $site.AllWebs){
            if ($web.HasUniqueRoleDefinitions){
                if($web.RequestAccessEnabled){
                    Write-Host $Web.URL
                    Write-Host "---"

                    Write-Host $Web.URL "Actualizando RequestAccessEmail"
                    Write-Host "---"
                    $web.RequestAccessEmail ="email@email.com"
                    $web.Update()
                }
                else {
                    Write-Host "Access Request no habilitado." $Web.URL
                }
            }
        }
    }

    2-Obtener los administradores de los sitios mediante powershell

    $siteUrl = Read-Host "Enter Site URL"
    $rootSite = New-Object Microsoft.SharePoint.SPSite($siteUrl)
    $spWebApp = $rootSite.WebApplication

    foreach($site in $spWebApp.Sites)
    {
        foreach($siteAdmin in $site.RootWeb.SiteAdministrators)
        {
            Write-Host "$($siteAdmin.ParentWeb.Url) - $($siteAdmin.DisplayName)"
        }
        $site.Dispose()
    }
    3-Exportar los resultados de las encuestas en Sharepoint 2010

  • Ir a Acciones del sitio/Ver todo el contenido del sitio
  • Ir a la encuesta
  • Acciones/ Exportar a hoja de datos

    image


    4-Agregar la opción de Tags & Notes dentro de cualquier página con javascript

    <a title="Etiquetar pagina" id="TagsAndNotes_ctl00_ctl42" onclick="SafeRunFunction(function() { TagDialogOpener.Open('http:\u002f\u002fsharepoint2010a:45354\u002fen-us\u002fPages\u002fdefault.aspx', document.title, '0'); }, 'SocialData.js', 'TagDialogOpener');" href="javascript:;">Etiquetar página</a>



    5-Encontrar todas las alertas de una site collection mediante una query de SQL

     Add-PSSnapin microsoft.sharepoint.powershell

    $site = Get-SPSite "http://sitiosharepoint2010/sites/sitioalertas/"
    $alertResultsCollection = @()
    foreach ($web in $site.AllWebs)
    {
    foreach ($alert in $web.Alerts)
    {
    $alertURL = $web.URL + "/" + $alert.ListUrl
    $alertResult = New-Object PSObject
    $alertResult | Add-Member -type NoteProperty -name "URL DE LA LISTA" -value $alertURL

    $alertResult | Add-Member -type NoteProperty -name "TITULO DE LA ALERTA" -value $alert.Title
    $alertResult | Add-Member -type NoteProperty -name "TIPO DE ALERTA" -value $alert.AlertType

    $alertResult | Add-Member -type NoteProperty -name USUARIO SUBSCRIPTO
    " -value $alert.User
    $alertResultsCollection += $alertResult
    }

    $site.Dispose()
    $alertResultsCollection

    # Exportar a CSV
    #$alertResultsCollection | Export-CSV "
    Alertas.csv"
    6-Borrar un archivo mediante client object
    ClientContext cc = new ClientContext(url);
    Web w = cc.Web;
    List olist = w.Lists.GetByTitle("Libreria");
    cc.Load(olist);
    var files = olist.RootFolder.Files;
    FileCollection fc =files;
    cc.Load(fc);
    cc.ExecuteQuery();
    File Deleteimtefile = fc[1]; //borro el primer archivo
    Deleteimtefile.DeleteObject();
    cc.ExecuteQuery();
    7-Ocultar la papelera de reciclaje con css
    <style type=”text/css”>

    .ms-quicklaunchheader{

    display:none;}

    .ms-recyclebin{

    display:none;}

    </style>


    8-Error al ejecutar código que trata de consultar algo del Active directory: 

    “An operations error occurred at System.DirectoryServices.AccountManagement.ADStoreCtx.FindPrincipalByIdentRefHelper”

    Ejecute la sección de código fuente que llama al Active Directory con SPSecurity.RunWithElevatedPrivileges.


    9-Mostrar pantalla de procesamiento


    image

    protected void btnEvento_Click(object sender, EventArgs e)
    {
    //Operacion de tiempo extenso
    using (SPLongOperation longOperation = new SPLongOperation(this.Page))
    {
    //Mensaje custom que aparecerá con una rueda de procesamiento
    longOperation.LeadingHTML = "<div><h2>Procesando solicitud</h2></div>";
    longOperation.TrailingHTML = "<div><h3>Por favor espere mientras el procesamiento termina</h3></div>";

    //Inicia la operación con procesamiento extenso
    longOperation.Begin();

    //El codigo del procesamiento extenso va aca


    //termina la operación con procesamiento extenso
    string redirectURL = SPContext.Current.Web.Url + "/SitePages/default.aspx";
    longOperation.End(redirectURL);
    }
    }

    10-Opciones para EventLog
























    NivelDefinición
    NoneNo ocurre ningún logging
    CriticalEste tipo de mensaje indica un error grave que ha causado un gran fallo en la solución.
    ErrorEste tipo de mensaje indica una condición de urgencia. Todos los eventos de error debe ser investigados.
    WarningEste tipo de mensaje indica un problema potencial o problema que podría requerir atención. Los mensajes de advertencia deben ser revisados y analizados en el tiempo.
    InformationLos mensajes de información no requieren ninguna acción,pero pueden proporcionar datos valiosos para el seguimiento del estado de su solución.
    VerboseEste nivel de registro de eventos corresponde a eventos o mensajes.

    11-Opciones para TraceLog
























    LevelDefinition
    NoneNingún trace logs son escritos.
    UnexpectedEste nivel se utiliza para registrar los mensajes sobre eventos que hacen que las soluciones detienen su procesamiento.Cuando se establece a este nivel, el registro sólo incluye los eventos de este nivel.
    MonitorableEste nivel se utiliza para registrar mensajes acerca de eventos irrecuperables que limitan la funcionalidad de la solución, pero no detienen la aplicación. Cuando se establece a este nivel, el registro incluirá también los errores críticos (nivel inesperado).
    High

    Este nivel se usa para registrar los eventos que son inesperados, pero que no detendrá el procesamiento de una solución. Cuando se establece para acceder a este nivel, el registro incluirá advertencias, errores controlables (nivel) y los errores críticos (nivel inesperado).

    MediumCuando se establece en este nivel, el registro de seguimientoincluye todo excepto los mensajes detallados. Este nivel se utiliza para registrar toda la información de alto nivel acerca de las operaciones que se realizaron. En este nivel, hay suficiente detalle para generar el flujo de datos y la secuencia de operaciones. Este nivel de registro puede ser utilizado por los administradores o los profesionales de soporte técnico para solucionar problemas.
    VerboseCuando se establece para acceder a este nivel, el registroincluye mensajes en todos los otros niveles. Casi todas lasacciones que se realizan se registran cuando se utiliza este nivel. Detallado rastreo produce muchos mensajes de registro. Este nivel se utiliza normalmente sólo para la depuración en un entorno de desarrollo.