segunda-feira, 18 de agosto de 2014

ULS Viewer - Versão 2.0.3530.27850 MSDN archive


O MSDN Galeria Archive foi recentemente retirado e com isso o ULSViewer.exe, uma ferramenta para análisar os logs do SharePoint. Estou disponibilzando a ferramenta aqui no blog.


[]

Update:

Temos uma nova versão oficial da ferramenta - Post

quinta-feira, 19 de junho de 2014

SharePoint - PS Script para executar scripts remotamente em todos os servidores do Farm

O script chama o script definido na variável $PS, remotamente em todos os servidores do Farm do SharePoint.

Script:

Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
Write-Host -foregroundcolor Red "Executing $script on all servers in FARM $farm"

$farm = get-spfarm
$PS = Read-Host “Please provide the file path e.g. "c:\psscripts\script.ps1"

foreach ($server in $farm.servers)
{
 if($server.Role -ne "Invalid")
  {
   invoke-command -computername $server.name -$filepath
  }
}


terça-feira, 17 de junho de 2014

SharePoint - PowerShell Script para executar o IISReset em todos os servidores do Farm


O script executará o IISRESET em todos os servidores do Farm do SharePoint. Eu poderia ter utilizado o velho IISRESET <nomedoservidor>, que funcionaria da mesma forma, porém poderia resultar na seguinte mensagem:

The RPC server is unavailable.


Script:

Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
Write-Host -foregroundcolor Red "Restarting IIS on all the servers in FARM $farm.farm"

$farm = get-spfarm

foreach ($server in $farm.servers)
{
if($server.Role -ne "Invalid")
{
Write-Host -ForegroundColor Red "Attempting to reset IIS on $server"
invoke-command -computername $server.name -scriptblock {iisreset}
Write-Host -foregroundcolor Green "IIS status on server $server"
invoke-command -computername $server.name -scriptblock {iisreset /status}
}
}



sexta-feira, 13 de junho de 2014

SharePoint 2013: Fluxos de trabalho ignoram permissões atribuídas por meio de grupos de segurança do AD


Eu observei esses dias um comportamento interessante nos fluxos de trabalho do Workflow Manager – os mesmos ignoram (aparentemente) permissões atribuídas por grupos de segurança do AD no SharePoint, que é uma pratica recomendada pela MS.

Temos as seguintes mensagens na interface:

Inglês:

HTTP 401 {"error":{"code":"-2147024891, System.UnauthorizedAccessException","message":{"lang":"en-US","value":"Access denied. You do not have permission to perform this action or access this resource."}}}

Português:

HTTP 401 {"error":{"code":"-2147024891, System.UnauthorizedAccessException","message":{"lang":"pt-BR","value":"Acesso negado.
Você não tem permissão para executar esta ação ou acessar este recurso."}}}

E os seguintes eventos foram identificados nos logs do SharePoint (Verbose):

1.       SharePoint Foundation                Claims Authentication   af32v     Verbose              Claims Windows Sign-In: Sending 401 for request <URL> because the user is not authenticated and resource requires authentication.
2.       SharePoint Foundation                Claims Authentication   af32v     Verbose              Claims Windows Sign-In: Sending 401 for request <URL>/_vti_bin/client.svc/web/lists/getbyid(guid'<GUID>')/Items?$filter=GUID+eq+<GUID> '' because the request is not from a browser.

SharePoint necessita o perfil do usuário no aplicativo de serviço “User Profile Service Application” para autenticar o usuário representado pelo fluxo de trabalho. E nesse caso especifico ser sincronizado com a OU que contém o grupo de segurança em questão.

Obs.: Você precisará sincronizar os perfis novamente se um novo usuário for adicionado ao grupo. 


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