sexta-feira, 23 de maio de 2014

Recuperar Site Collections deletadas sem backup.



SharePoint não remove, a partir da versão 2010 (SP1), imediatamente os site collections deletados do banco de dados de conteúdo. O site collection está sinalizado como “reciclável” por meio da tabela SiteDeletion e algumas colunas (InDeletion e Restorable). Logo após a deleção do site collection, os sinalizadores estão definidos para InDeleted = 0 e Restorable = 1.

O gerenciamento da lixeira é feito pelos seguintes comandos:

Para listar os site collection deletados: Get-SPDeletedSite
Exemplo para listar os sites com “/Site/rh*” no URL: Get-SPDeletedSite '/Site/rh*’

Para recuperar os site collection deletados: Restore-SPDeletedSite
Exemplo para recuperar o site com GUID XYZ: Restore-SPDeletedSite -Identity 610857cb-8414-4a89-8bf3-ad3628f6c86c

Para remover os site collection deletados: Remove-SPDeletedSite
Exemplo para remover o site com GUID XYZ: Remove-SPDeletedSite -Identity 610857cb-8414-4a89-8bf3-ad3628f6c86c


O timer job “Gradual site delete” remove após 30 dias (default) o site collection do banco de dados de conteúdo ou imediatamente se o comando Remove-SPDeletedSite for utilizado.

Obs. Acima funciona apenas com site colletions deletados pela interface do Central Administration e não se o site for removido por meio do PowerShell (Remove-SPSite) que remove o site imediatamente do banco.

terça-feira, 20 de maio de 2014

Ferramentas úteis: Err.exe (Microsoft Exchange Server Error Code Look-up)

A ferramenta "Microsoft Exchange Server Error Code Look-up" em contrário do que o nome sugere serve para decifrar praticamente qualquer código de erro.



Aqui como exemplo a utilização da ferramenta para decifrar o código de erro clássico COM 0x80070005 (Access is denied):

c:\err.exe 0x80070005
# for hex 0x80070005 / decimal -2147024891 :
  COR_E_UNAUTHORIZEDACCESS              corerror.h
# MessageText:
# Access is denied.
  DIERR_OTHERAPPHASPRIO                        dinput.h
  DIERR_READONLY                                          dinput.h
  DIERR_HANDLEEXISTS                                 dinput.h
  DSERR_ACCESSDENIED                             dsound.h
  ecAccessDenied                                               ec.h
  ecPropSecurityViolation                                    ec.h
  MAPI_E_NO_ACCESS                                    mapicode.h
  STIERR_READONLY                                        stierr.h
  STIERR_NOTINITIALIZED                                 stierr.h
  E_ACCESSDENIED                                         winerror.h
# General access denied error
# 11 matches found for "0x80070005"

Microsoft Exchange Server Error Code Look-up

sábado, 17 de maio de 2014

Atualizar SharePoint e "The expected version of the product was not found on the system"

Muitos administradores do SharePoint e de outros ambientes já se encontraram na situação de não conseguirem instalar uma atualização de qualquer produto devido à corrupção do cache do instalador do Windows.




Mensagens comuns de erro:

"The expected version of the product was not found on the system"

“The installation of this package failed”.

A corrupção do cache, de fato, requer um rebuild do servidor para evitar futuros problemas. 

A Microsoft possuiu uma ferramenta (interna) OPUtil para reconstruir o cache, porém não garante um reparo bem sucedido. Basta abrir um chamado pelo suporte da MS e solicitar a ferramenta.

Um workaround para instalar a atualização sem verificar a versão instalada seria seguinte:

Abre um prompt (como administrador) e execute o seguinte:

caminho\atualização.exe /PACKAGE.BYPASS.DETECTION.CHECK=1

Arrumar o cache do instalador não é um trabalho trivial, e sempre é mais fácil, rápido e seguro criar um novo servidor

Leitura avançada:

Missing Windows Installer Cache Files Will Require a Computer Rebuild
When Trying to install a update you get "The expected version of the product was not found on the system."
PROJECT SERVER. THE EXPECTED VERSION OF THE PRODUCT WAS NOT FOUND ON THE SYSTEM.
Description of the command-line switches that are supported by a software installation package, an update package, or a hotfix package that was created by using Microsoft Self-Extractor
Installer Database

segunda-feira, 24 de março de 2014

SharePoint 2013 - Distributed Cache: Uma visão geral

A autenticação no SharePoint 2010 e versões anteriores acontece no nível do servidor dentro do IIS (Internet Information Services). Um cookie de autenticação é amarrado no servidor (normalmente como session cookie) e era necessário se autenticar novamente acessando um outro servidor no mesmo farm.
Acima requer "sticky sessions" em um cenário que envolve um NLB, para que o NLB redireciona  todos os dados ao servidor aonde ocorreu a autenticação.

SharePoint 2013 utiliza uma versão customizada do produto Windows App Fabric (conhecido também como Velocity) que está implementado e conhecido como Distributed Cache (DC) Service.
O DC é basicamente uma segunda camada de cache e compartilhada entre os servidores em um farm. SharePoint utiliza as vantagens deste serviço especificamente através dos perfis dos usuários e na autenticação.




Isso permite, no caso dos perfis dos usuários que tudo esteja "em sincronia" e minimiza os visíveis "post backs" para o servidor, porque o navegador "posts" para o cluster do Distributed Cache que é residente na memória dos servidores e retorna os dados mais rápido. Nos bastidores, um processo é responsável pelo sincronismo dos dados entre o DC e dos bancos de dados. Isto melhora drasticamente o tempo de resposta.

Isso significa que para a autenticação, as informações de autenticação persistem acima do nível do cache do IIS e permite que os balanceadores de carga (NLB) equilibrem ativamente a carga de todos os pedidos. Assim, você poderá obter uma página que você solicitou ao servidor A, mas todas as imagens podem vir do servidor B. O resultado final é uma resposta mais rápida e um farm do SharePoint mais equilibrado.

Informações avançadas:


Overview of microblog features, feeds, and the Distributed Cache service in SharePoint Server 2013
Gerenciar preenchimento do cache de feed e cache de última modificação no SharePoint Server 2013
Planejamento e uso do serviço Cache Distribuído no SharePoint Server 2013
AppFabric Caching and SharePoint: Concepts and Examples (Part 1)
Plano para computação social e colaboração no SharePoint Server 2013
SharePoint 2013 - Distributed Cache (App Fabric) Error Codes

quarta-feira, 12 de março de 2014

Remoção dos Web Parts Problemáticos

Eu respondi esses dias no fórum do Technet uma pergunta recorrente, porém ainda atual: "Como excluir web parts problemáticos?"

Nesse caso especifico o Excel Web Part, a exclusão da planilha acessada pelo web part causou que o administrador do ambiente não conseguiu a excluir o web part.


Mensagem de erro: 

"Não foi possível localizar o arquivo desejado. É possível que o arquivo tenha sido renomeado, movido ou excluído."

Possuímos uma página de manutenção dos web parts desde a versão 2007 do SharePoint. Você pode acessar ela para fechar web parts, restaurar os padrões dos Web Parts ou excluir Web Parts da sua página.

Você consegue acessar a página adicionando ?contents=1 no final do URL da página que contém o web part problemático.

Por exemplo:

http://sp2013dev/SitePages/Home.aspx > http://sp2013dev/SitePages/Home.aspx?contents=1


Obs.: Você pode re-abrir um web part fechado acessando o modo de edição da página, escolhendo a opção insert web part. O web part fechado aparece na seção "Closed Parts", conforme abaixo.



Customize Web Parts
*SharePoint 2013 * Problemas para deletar Web Part ( Excel Web Access)

[]



segunda-feira, 10 de março de 2014

User Profile Synchronization - Criação de filtros de exclução

O planejamento e implementação de filtros de exclusão para o aplicativo de serviço User Profile Service Application (UPS) é sem dúvida um dos aspectos mais importantes na qualquer implantação do UPS.

Com o uso de filtros de exclusão podemos diminuir os objetos que sincronizamos. Os filtros de exclusão reduziram a quantidade de "lixo" na base de dados de perfis e pode diminuir significativamente o tempo necessário para executar a sincronização.

Utilizarei para esse artigo o atributo userAccountControl como exemplo, que é na minha visão um dos atributos mais aplicáveis para a criação dos filtros.

Excluirmos usuários desabilitados e usuários de serviço (Password Never Expires)

1. Abaixo seguem os valore hexadecimais dos flags do Atributo User-Account-Control

0x00000002 ADS_UF_ACCOUNTDISABLE  The user account is disabled.
0x00010000 ADS_UF_DONT_EXPIRE_PASSWD  The password for this account will never expire. 


2. Entre nas configurações da conexão de sincronização.

3. Clique em cima da conexão e escolha "Edit Connection Filters".


4. Escolhe na seção "Exclusion Filter for User" o operador OR, o atributo userAccountControl e como operador Bit on equals.

Precisamos trabalhar com o operador Bit on equals, porque os valores dos atributos são acumulativos.

calc.exe ajuda bastante para converter os valores (Hex para Bin)



Disabled Account = 0x00000002 (valor binario = 10)
Password Never Expires = 0x00010000 (valor binario = 10000000000000000)  

5. Crie dois filtros com os valores 2 e 17 para excluir as contas com os atributos identificados no passo anterior. 


6. O resultado final:

7. Confirme a configuração com Ok e inicie a sincronização Full.


Fontes:

User-Account-Control attribute
How to use the UserAccountControl flags to manipulate user account properties
Synchronize user and group profiles in SharePoint Server

UPDATE: 

Em vez de criar um filtro com o valor 17 para excluir usuários com o flag "Password never expiere" utilize o valor 0x10000 (65536) no SharePoint 2013.

http://guidesharepoint.wordpress.com/2014/08/30/how-to-create-user-profile-synchronization-exclusion-filters-with-useraccountcontrol-attribute/


quarta-feira, 5 de março de 2014

SharePoint 2013 SP1 - Perguntas mais frequentes

Eu utilizarei esse post para responder todas as perguntas que eu recebi ao repeito do SP1 do SharePoint 2013.

Pergunta: A instalação da atualização cumulativa de março de 2013 é um pre-requisito para instalar o SP1 do SharePoint 2013?
Resposta: Não. O único pré-requisito é o SharePoint 2013 na versão RTM.

Pergunta: Qual é o número da versão do SP1?
Resposta: 15.0.4569.1506

Pergunta: Qual é o número da versão que você vai ver no Central Administration?
Resposta: A versão do banco de dados da configuração do SharePoint é 15.0.4569.1000.

Pergunta: Eu preciso também instalar o SP1 do SharePoint Foundation?
Resposta: Não. O SP1 do SharePoint Server 2013 contém o SP1 do SharePoint Foundation.

Pergunta: Eu também preciso instalar o SP1 do Project Server?
Resposta: Sim. O SP1 do SharePoint não contem os binarios do SP1 do Project Server.

Pergunta: Eu preciso executar o wizard do SharePoint depois da atualização?
Resposta: Sim. Como sempre :).

Pergunta: Eu tenho Sharepoint instalado com 3 language packs. Eu preciso instalar o SP1 para cada idioma?
Resposta: Sim. O SP1 não contem as atualizações dos language packs. 

[]