quinta-feira, 6 de fevereiro de 2014

SharePoint - Testar outgoing email (email de saída)

Segue um script para testar as configurações do SharePoint sem brincar com as alertas nas listas do SharePoint.

O script retorna True ou False: True quer dizer que SharePoint conseguiu enviar um e-mail e False que tem um problema :)

Add-PSSnapin -Name Microsoft.SharePoint.PowerShell –erroraction SilentlyContinue
$mail = Read-Host "Digite o endereço de um e-mail valido"
$subject = "Please ignore - Test"
$body = "Please ignore - Test"
$WA = Read-Host "Digite o endereço de um Web Application"

$Site = New-Object Microsoft.SharePoint.SPSite $WA
$web = $Site.OpenWeb()
[Microsoft.SharePoint.Utilities.SPUtility]::SendEmail($web,0,0,$mail,$subject,$body)

Configurar email de saída para um farm do SharePoint 2013
http://technet.microsoft.com/en-us/library/cc263462.aspx

[]

quarta-feira, 5 de fevereiro de 2014

SharePoint - Script para listar o histórico dos timer jobs

Segue um script para listar o histórico dos timer jobs do SharePoint. Essas informações são valiosas para identificar a causa raiz de um problema na execução dos timer jobs.
Você poderia avaliar os logs ULS e os eventos do Windows baseado nas informações gerados pelo script.

# Timer Job Execution History
# Created by David Amenda
# http://spinternals.blogspot.com.br


Add-PSSnapin -Name Microsoft.SharePoint.PowerShell –erroraction SilentlyContinue

$timerjobs = Get-SPTimerJob
$dataS = read-host "Informe a data do inicio (MM/DD/AAAA)"
$dataE = read-host "Informe a data do término (MM/DD/AAAA)"
$history = read-host "Informe o lugar para salvar o hostórico (c:\temp)"

$timerjobs | foreach {
(Get-SPTimerJob –Identity $_.Id).HistoryEntries | Where {$_.StartTime –ge $dataS -and $_.EndTime –ge $dataE} | select StartTime,EndTime,JobDefinitionTitle | convertto-csv

} | Out-File $history\historico.csv

Abraços

terça-feira, 4 de fevereiro de 2014

SharePoint - ULS VerboseEx(treme)

Normalmente configuramos os logs do SharePoint para visualizar eventos com a severidade "verbose" para identificar problemas no ambiente.
No SharePoint existe uma severidade ainda mais alta: VerboseEx, que é muito útil em um ambiente de desenvolvimento ou homologação. O SharePoint gera logs gigantescos no modo VerboseEx, nunca usa o comando abaixo em um ambiente produtivo :).

Set-SPLogLevel -EventSeverity Verbose -TraceSeverity VerboseEx

Utilize o comando para deixar a severidade dos logs em modo normal: Clear-SPLogLevel


Set-SPLogLevel

SharePoint - PeoplePicker: Limitar resultados a usuários configurado na FBA

O PeoplePicker retorna por padrão todos os usuários do AD. Obvio que isso não é aceitável quando abrimos o SharePoint para um fornecedor ou parceiro.
Nós podemos configurar o PeoplePicker para retornar apenas usuários configurado na autenticação FBA (Forms Based Authentication).

A configuração é feita pelo stsadm, não existem comandos no PowerShell ou configurações na interface do SharePoint

Execute o seguinte comando para limitar os resultados:

stsadm -o setproperty -pn peoplepicker-nowindowsaccountsfornonwindowsauthenticationmode -pv yes -url <Web application URL>

Configure People Picker in SharePoint
http://technet.microsoft.com/en-us/library/gg602075.aspx

Plan for People Picker in SharePoint
http://technet.microsoft.com/en-us/library/gg602068.aspx

[]

SharePoint - Peoplepicker: Nome ou informações incorretas

As vezes temos a situação que o SharePoint não visualiza o nome (ou outro dados) coreto de um usuário específico.

Nesse caso podemos forçar a sincronização por meio do seguinte comando.

Set-SPUser -Identity "<domain\username>" -web "<SiteURL>" -SyncFromAD

[]

segunda-feira, 3 de fevereiro de 2014

SharePoint 2013 - App Store: Time out na validação de segurança

Eventos:

a.) Na interface do SharePoint

Sorry, something went wrong
The security validation for this page has timed out. Click Back in your Web browser, refresh the page, and try your operation again.

b.) Nos logs ULS do SharePoint

1. Sending Request to Office.com with the following URL:http://office.microsoft.com/client/15/app/ [...]

2. Request to office.com with the following URL:https://office.microsoft.com/client/15/appinstallinfo/query?cmu= [...] caused an exception. System.Net.WebException: The remote server returned an error: (400) Bad Request.     at System.Net.HttpWebRequest

3. Microsoft.SharePoint.SPException: Sorry, we can't seem to connect to the SharePoint Store. Try again in a bit.    at Microsoft.SharePoint.Marketplace.OfficeProxy.OfficeProxy.GetAppDownloadStream(String billingMarket, String contentMarket, String rawXMLEntitlementToken, Stream& appDownloadStream, Int64& appStreamLength, String& responseUrl)     at Microsoft.SharePoint.ApplicationPages.StorefrontBase.StartDownload(Guid productId, String oauthAppId, Boolean isUpgrade)     at Microsoft.SharePoint.ApplicationPages.StorefrontBase.AppDownload(Boolean isUpgrade, Boolean autoRedirect)     at Microsoft.SharePoint.ApplicationPages.StorefrontBase.PostHug()     at Microsoft.SharePoint.ApplicationPages.StorefrontBase.Render(HtmlTextWriter writer)     at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Solução:

Adicione o endereço https://*.microsoft.com na zona das paginas confiáveis nas configurações de internet para cada conta de serviço que executam os applications pools dos service applications:
1. App Management Service Application
2. Microsoft SharePoint Foundation Subscription Settings Service Application.

SharePoint - Workflow History / Histórico dos fluxos de trabalho


Existe uma confusão sobre o Timer Job "Workflow Auto Cleanup" que é executado diariamente. Muitas pessoas acreditam que elas vão perder o histórico dos fluxos de trabalho e desabilitam o job que impacta no desempenho do SharePoint.

A finalidade deste job é apenas deletar instâncias e tarefas relacionados pós finalização. SharePoint mantém uma lista "hidden" (escondida) desses itens, que poderá ser acessada adicionando /lists/Workflow%20History no final do endereço da biblioteca ou lista (por exemplo: contoso.com/lista123/lists/Workflow%20History).

Também existe a possibilidade de tirar o flag "hidden" e visualizar o histórico para facilitar o acesso por meio do script abaixo:

$web = Get-SPWeb "http://intranet.contoso.com"
$list = $web.Lists["Workflow History"]
$list.Hidden = $false
$list.Update()

Obs.: Essa lista não é muito detalhada, você deverá verificar se ela contém os dados necessários. A MS recomenda a utilizar a auditoria do SharePoint para atender os requerimentos de uma auditoria interna.


Grande abraço