quarta-feira, 17 de setembro de 2014

Project Server não salva configuração da página "Sincronização do Pool de Recursos do Active Directory" ou dá erro ao tentar acessar

Você tenta acessar o "Sincronização do Pool de Recursos do Active Directory" nas configurações do PWA e o erro "Algo deu errado" ocorre:


Se você pegar a correlação e procurar no log, encontra alguns erros contendo a seguinte mensagem:
"Pass this into PSClientError constructor to access all error information"
Em alguns casos você não tem o erro, a página abre, mas quando você clica em "Salvar e Sincronizar agora" nada acontece.

Isso acontece por que você está acessando o PWA através de uma URL que não é a da zona padrão, e para a zona em questão o aplicativo web não foi estendido. Isto é, provavelmente você só adicionou mais uma URL nos acessos alternativos e não estendeu o aplicativo web.

Você tem algumas opções:
Acessar usando a URL que está na zona padrão
Colocar a URL que você quer utilizar na zona padrão (e reiniciar o IIS)

Para resolver em definitivo:
Expandir o aplicativo web para a zona pretendida e colocar a URL desejada no cabeçalho do host (host reader). Lembrar de colocar a URL sem HTTP:// ou HTTPS://.

Feito isso você não deve ter mais o erro acima.

Esse comportamento foi identificado no Project Server 2013, aparentemente no Project Server 2010 esse erro não acontece, testei na versão numa farm com SP1 instalado e não aconteceu.

segunda-feira, 15 de setembro de 2014

Atualizações do SharePoint e Project - Como foram mudando com o passar do tempo, que cuidados tomar

A forma como a Microsoft disponibiliza as atualizações do SharePoint e Project, bem como os requisitos para instalar cada uma delas tem variado ao longo do tempo, e adicionado pequenos detalhes a cada release. Esse artigo tem por objetivo compilar o contexto geral e elencar quais os pontos de atenção ao instalar atualizações no SharePoint e Project.

Um resumo da opera
No SharePoint 2007 era obrigatório você instalar um pacote para cada um dos items abaixo:
Windows SharePoint Services 3.0 (WSS 3.0 - equivalente ao atual "foundation")
Microsoft Office SharePoint Server 2007
Project Server 2007
Language Packs

No SharePoint 2010 o mesmo esquema foi mantido até Abril de 2011, e então a Microsoft começou a mesclar os Foundation+Server, e então você poderia encontrar o seguinte texto na descrição do KB:
"This cumulative update package contains all the .msp files that we released as hotfixes or as public updates that target SharePoint Server 2010. This update package also targets SharePoint Foundation 2010. Therefore, you do not have to install that package separately."
Apesar desse avanço que em geral facilita a vida do administrador, conceituados blogs de engenheiros da Microsoft ditavam como melhor prática ainda instalar o foundation e depois o Server.
 http://blogs.technet.com/b/steve_chen/archive/2010/09/29/build-numbers-cube-sheet-for-sharepoint-2010.aspx
"We recommend installing the SharePoint Foundation 2010 packages followed by the SharePoint Server 2010 packages to ensure all binaries are properly updated as a best practice; however, Server packages will include the Foundation package so they could be installed independently."

Pouco tempo depois eles mesclaram também o Project Server, e então você poderia encontrar o seguinte texto na descrição do KB:
"This cumulative update package contains all the .msp files that we released as hotfixes or as public updates that target Project Server 2010. This update package also targets SharePoint Server 2010 and SharePoint Foundation 2010. Therefore, you do not have to install those packages separately"

Adicionalmente também próximo das evoluções acima a Microsoft tornou todos os hotfixes e atualizações do SharePoint "multilingual". O que exime a necessidade de procurar o pacote correto para a linguagem que você tem instalada e também de ter que procurar o pacote de atualização dos language packs que você tem instalado.
Super legal, certo!? Só tem um exceção, os Service Packs. Eles passaram a ser independente de linguagem, porém ainda se faz necessário instalar o SP dos language packs que você tem instalado.

O SharePoint 2007 seguiu a tendência na parte das atualizações serem independentes de linguagem. Porém não há menção em nenhuma nota oficial de que não seja necessária a instalação da atualização do WSS 3.0 antes da atualização do Server, bem como destes dois antes da do Project. Pelo contrário, a sequência de atualização encontrada em sites oficiais ainda menciona esse antiga ordem.
http://blogs.technet.com/b/steve_chen/archive/2009/11/11/build-numbers-cube-sheet-for-moss-wss.aspx#roadmap

O SharePoint 2013 já desde sua concepção tem suas atualizações mescladas, embora seja possível obtê-las separadamente. O mesmo engenheiro que recomendava instalar separadamente no 2010, no 2013 mudou sua perspectiva:
"The SharePoint Server 2013 Packs are containing the Foundation Packs and may need only the Server package to be installed!"
http://blogs.technet.com/b/steve_chen/archive/2013/03/26/3561010.aspx#Build


Informações dentro do KB
Sempre considere a informação acima, porém antes de instalar leia com atenção as informações contidas no KB de descreve a atualização:

Prerequisites
Houve um período era lei, você instalava o SharePoint e então qualquer qualquer atualização cumulativa até ser lançado o Service Pack, depois disso para cada atualização cumulativa, o Service Pack imediatamente anterior era o requisito. Isso já não é mais regra. A exemplo da atualização cumulativa de março de 2013 do SharePoint 2013, que era requisito para as posteriores até que foi lançado o SP1. Há atualizações posteriores ao SP1 do SharePoint 2013 que não precisam do SP1, apenas da de março de 2013. Nos KBs do SharePoint 2007 Server não consta no tópico de requisitos a instalação do pacote do WSS 3.0. Porém até onde sabemos é sim um requisito. Dessa forma exceto neste caso do 2007 que mencionei, para outras atualizações sempre verifique esse tópico de requisitos. Na maioria dos casos no momento da instalação o SharePoint não dá erro se algum requisito estiver faltando, mas você poderá ter problemas no futuro.

Restart requirement
Este tópico dos KBs em geral diz que não é necessário a reinicialização do servidor após a instalação. Em geral está correto, mas se isso for um ponto crucial para sua tomada de decisão, sempre considere que pode ser necessário um reboot (minhas recomendação pessoal). Ex.: Acabei de instalar o KB 2882990 e ele pediu pra reiniciar no final. Não deveria segundo artigo. =)
Os Service Packs quase em sua totalidade exigem uma reinicialização.

Hotfix replacement information
Em geral a informação que você encontra nesse tópico é que ele não substitui nenhum hotfix anterior. Porém há uma sessão anterior geralmente chamada "Resolution" que descreve as atualizações e hotfix que ele substitui. Então esse tópico de certa forma é inútil nos KBs do SharePoint, pois você precisa se atentar às outras sessões pra descobrir o que ele substitui.


Disponibilidade das atualizações
No SharePoint 2007 ainda existiam atualizações disponíveis através do Windows Update. Já no SharePoint 2010 e 2013, a Microsoft removeu essa disponibilidade justamente para não causar problemas, pois como vimos, as atualizações do SharePoint não são simples como as dos outros produtos da Microsoft. Elas estão disponível apenas através do link nos KBs e do Download Center.


Atualizações recentes
Recentemente algumas atualizações estão exigindo alguns passos a mais para serem efetuadas. Por exemplo a atualização de Julho de 2014, quando você clicar no botão de download você será direcionado para um página que tem 3 arquivos de mais de 1GB cada. Você precisará fazer o download de todos eles e deixa-los na mesma pasta para que a instalação funcione.
http://blogs.technet.com/b/projectsupport/archive/2014/07/15/microsoft-project-server-2013-july-2014-cu-announcement.aspx
Caso você você não tenha os 3 arquivos juntos, terá o seguinte erro quando tentar instalar:
Falha na instalação deste pacote.


Guia completo de atualizações do SharePoint
2007 - http://blogs.technet.com/b/steve_chen/archive/2009/11/11/build-numbers-cube-sheet-for-moss-wss.aspx
2010 - http://blogs.technet.com/b/steve_chen/archive/2010/09/29/build-numbers-cube-sheet-for-sharepoint-2010.aspx
2013 - http://blogs.technet.com/b/steve_chen/archive/2013/03/26/3561010.aspx

Páginas oficiais do TechNet para atualizações do SharePoint e Project
SharePoint: http://technet.microsoft.com/library/dn789211(v=office.14)
Project: http://technet.microsoft.com/library/dn789214(v=office.14)

quarta-feira, 2 de julho de 2014

Script para contar a quantidade de usuários por grupo em um site do SharePoint

O SharePoint tem limitações quanto à quantidade de usuário que você pode adicionar num grupo do SharePoint. Entre outros problemas, um bastante frequente se refere a busca:

"Durante o processo de indexação, o sistema armazena a ACE de cada usuário que tenha sido adicionado a um grupo do SharePoint, em vez da ACE do próprio grupo do SharePoint. Esse processo dá suporte a aproximadamente 1.000 usuários por ACL (lista de controle de acesso), após o que o erro ”Parâmetro incorreto" faz o rastreamento falhar."
Fonte: http://technet.microsoft.com/pt-br/library/cc850696(v=office.12).aspx

Explicação/Mais detalhes: http://blogs.msdn.com/b/mattlind/archive/2007/11/02/sharepoint-indexing-limited-by-64-kb-acl-limit.aspx

Visto que temos essa limitação seria conveniente poder contar quantos membros há em cada grupo pra um site que apresenta o problema. Você pode editar as views do grupos no site a adicionar um "count", porém isso pode ser bastante trabalhoso dependendo da quantidade de grupos que você possui.
Pensando nisso criei um script em PowerShell para coletar esse informação:

#Você precisa especificar qual o site collection que possui o site de interesse, para listar os site collections use o comando abaixo:
get-spsite

#Assim que tiver o seu site collection definido adicione ele no comando abaixo, isso vai listar os sub-sites deste site collection:
get-spweb http://lab-shp2013-01/

#Na lista você irá encontrar o site que deseja, no meu caso usei o "/" mas poderia ser "/test-site", ou qualquer coisa, então você irá adicionar esse site no comando abaixo:
$siteweb = get-spweb http://lab-shp2013-01/

#Agora a variável $siteweb contém o seu site, você precisa criar uma para conter os grupos desde site, o que faço abaixo:
$groups = $siteweb.groups

#Tendo as variável populadas, basta executar o foreach abaixo para listar o grupo e a quantidade respectiva de membros:
foreach ($group in $groups)
{
Write-Host "Grupo" $group.name $group.users.count "membros"
}

A saída será algo como a imagem abaixo:

Have fun!

quarta-feira, 11 de junho de 2014

Identificar métodos e propriedades de uma variável no PowerShell

Ao administrar o SharePoint usando o PowerShell, em alguns casos você quer manipular uma Service Application um Serviço ou qualquer coisa que possa ser colocado numa variável, porém não conhece os métodos que podem ser utilizados para controla-la.
Usando os comandos abaixo você poderá identifica-los.

Neste exemplo uso um Service Application mas poderia ser qualquer entidade dentro do SharePoint.
Você precisará do ID, para obtê-lo execute o comando abaixo:
Get-SPServiceApplication

A saída será algo como essa abaixo:











Execute o comando abaixo para atribuir à variável $s a Service Application "Secure Store Service" de ID "ca836dfa-20ac-4d0f-afd4-0788b4f21269":
$s = Get-SPServiceApplication ca836dfa-20ac-4d0f-afd4-0788b4f21269

Executando o comando abaixo você verá todos os métodos e propriedades relativos à variavel $s:
$s | Get-Member









Obs: A lista completa é bem maior do que a apresentada acima

Para melhor visualização você pode usar a um "pipe" adicional:
$s | Get-Member | Out-GridView












Obs.: O formatador out-gridview só funciona se a feature "Windows PowerShell Integrated Scripting Environment (ISE) estiver instalada no servidor

Alguns métodos com o Provision/Unprovision em geral funcionam sem parametros então você pode utiliza-los como no exemplo abaixo:
$s.Provision()
$s.UnProvision()

Explore os alguns métodos e propriedades, você pode encontrar algumas coisas úteis ao seu dia-a-dia ou a resolução de problemas.

terça-feira, 10 de junho de 2014

Alterar a senha das contas gerenciadas do SharePoint via PowerShell

Se alguém na sua organização mudar a senha das contas de serviço (chamadas contas gerenciadas) direto no Active Directory (AD). Você pode chegar numa situação que a Central de Administração irá parar de funcionar, bem como todos os sites e recursos que tenham essa conta configurada em seu respectivo application pool.

Nesta situação a melhor forma de se resolver é sem dúvida mudando a senha da conta gerenciada usando o PowerShell do SharePoint. Os comandos abaixo são um exemplo de como fazê-lo:
$conta = Get-SPManagedAccount -Identity “dominio\svc-spadm”
Set-SPManagedAccount -Identity $conta  -ExistingPassword (ConvertTo-SecureString "pass@word" -AsPlainText -force) -confirm

Obs1.: Nesse exemplo dominio\svc-spadm é a conta e pass@word é a senha.
Obs2.: Pode ser necessário executar isso em todos os servidores da sua farm.

A senha no exemplo anterior é a aquela que foi configurada no AD previamente, esse comando não muda a senha no AD. Se você desejar mudar a senha da farm usando o SharePoint, a senha atual necessariamente precisa estar correta, e então você deve usar o comando abaixo:
Set-SPManagedAccount -Identity $conta  -NewPassword (ConvertTo-SecureString "pass@word" -AsPlainText -force) -confirm

Se você for executar fora do PowerShell do SharePoint será necessário adicionar o Snap-in do SharePoint antes de executar os comando acima, para adicioná-lo use o comando abaixo:
Add-PSSnapin Microsoft.SharePoint.PowerShell -EA silentlycontinue


Mais informações sobre boas práticas a respeito de como alterar as contas e senhas dos serviços do SharePoint você pode encontrar nos artigos abaixo:

terça-feira, 27 de maio de 2014

Comandos PowerShell para trabalhar com os logs do SharePoint

Neste artigo você encontra uma referência sintetizada de comandos para operar os logs e suas configurações no SharePoint 2010 e 2013.
Para utilizar os comandos você precisa abrir o PowerShell do SharePoint ou num PowerShell comum executar o seguinte comando:
Add-PSSnapin -Name Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue

Os comandos a seguir se referem os ULS (Unified Logging System) logs. Estes por padrão no SharePoint ficam no diretório: %CommonProgramFiles%\Microsoft Shared\Web Server Extensions\14\LOGS\
Obs.: O 14 se refere ao SharePoint 2010 se for uma farm 2013 você terá 15 no lugar do 14.

PARA CONFIGURAR O NÍVEL DO LOG
Coloca tudo em Verbose:
Set-SPLogLevel -EventSeverity Verbose -TraceSeverity Verbose
Voltar os logs ao modo default:
Clear-SPLogLevel

PARA OBTER OS LOGS DE UM MOMENTO ESPECÍFICO
Cria um novo arquivo de log:
New-SpLogFile
Cria um log fundindo os logs de todos os servidores num unico arquivo, e ainda filtrando um determinado período de tempo:
Merge-SPLogFile -Path "C:\temp\FarmMergedLog.log" -Overwrite -StartTime "09/23/2013 08:00" -EndTime "09/23/2013 17:35"
Obs.: A pasta precisa existir. O formato da data pode mudar de acordo com as configurações regionais

PARA CONTROLAR O TAMANHO DO LOG
Para limitar ou desativar o limite de tamanho para o log você pode usar os comandos abaixo:
Habilitar: 
Set-SPDiagnosticConfig -LogMaxDiskSpaceUsageEnabled:$True
Desabilitar:
Set-SPDiagnosticConfig -LogMaxDiskSpaceUsageEnabled:$False
Determinar o limite: (o comando abaixo limitaria em 10GB)
Set-SPDiagnosticConfig -LogDiskSpaceUsageGB 10

Uma forma mais complexa porém eficiente pois você pode mudar qualquer propriedade é utilizando o método abaixo:
Determina a variável
PS C:\Users\shpadm> $l = Get-SPDiagnosticConfig
Aqui apenas mostro o conteúdo da variável antes da alteração
PS C:\Users\shpadm> $l

AllowLegacyTraceProviders                   : False
CustomerExperienceImprovementProgramEnabled : True
ErrorReportingEnabled                       : True
ErrorReportingAutomaticUploadEnabled        : True
DownloadErrorReportingUpdatesEnabled        : True
DaysToKeepLogs                              : 14
LogMaxDiskSpaceUsageEnabled                 : False
LogDiskSpaceUsageGB                         : 5
LogLocation                                 : %CommonProgramFiles%\Microsoft Shared\Web Server Extensions\14\LOGS\
LogCutInterval                              : 30
EventLogFloodProtectionEnabled              : True
EventLogFloodProtectionThreshold            : 5
EventLogFloodProtectionTriggerPeriod        : 2
EventLogFloodProtectionQuietPeriod          : 2
EventLogFloodProtectionNotifyInterval       : 5
ScriptErrorReportingEnabled                 : True
ScriptErrorReportingRequireAuth             : True
ScriptErrorReportingDelay                   : 60

Mudo a propriedade da variável para "True"
PS C:\Users\shpadm> $l.LogMaxDiskSpaceUsageEnabled=$True
Passo a variável para o comando efetivar no SharePoint a mudança da propriedade
PS C:\Users\shpadm> $l | Set-SPDiagnosticConfig
Mostro o conteúdo da variável para exemplificar como ocorreu a alteração
PS C:\Users\shpadm> $l

AllowLegacyTraceProviders                   : False
CustomerExperienceImprovementProgramEnabled : True
ErrorReportingEnabled                       : True
ErrorReportingAutomaticUploadEnabled        : True
DownloadErrorReportingUpdatesEnabled        : True
DaysToKeepLogs                              : 14
LogMaxDiskSpaceUsageEnabled                 : True
LogDiskSpaceUsageGB                         : 5
LogLocation                                 : %CommonProgramFiles%\Microsoft Shared\Web Server Extensions\14\LOGS\
LogCutInterval                              : 30
EventLogFloodProtectionEnabled              : True
EventLogFloodProtectionThreshold            : 5
EventLogFloodProtectionTriggerPeriod        : 2
EventLogFloodProtectionQuietPeriod          : 2
EventLogFloodProtectionNotifyInterval       : 5
ScriptErrorReportingEnabled                 : True
ScriptErrorReportingRequireAuth             : True
ScriptErrorReportingDelay                   : 60

FONTE
Esse conteúdo pode ser encontrado no site oficial:
http://technet.microsoft.com/en-us/library/ff607575(v=office.15).aspx
http://technet.microsoft.com/en-us/library/ff607887(v=office.15).aspx
Contanto me pareceu um pouco confuso a forma e os exemplos que a Microsoft disponibilizou nestes artigos.

quarta-feira, 12 de março de 2014

Fim do suporte oficial para SharePoint 2003

Fiquem atentos, e tomem as providências necessárias se sua organização ainda tem esses produtos em uso. O suporte termina em 8 de abril de 2014. A partir desta data nenhum tipo de suporte é prestado por parte da Microsoft, nem mesmo os contratos pagos que possuem suporte extendido, ou ainda os contratos Premier que possuem serviços mais avançados. Nada mais tornará sua empresa elegível a receber o suporte oficial da Microsoft a partir desta data.

Se você ainda tem o SharePoint 2003 - Hurry up! - Segue alguns links que podem lhe ser bastante úteis:
Upgrade SharePoint Portal Server 2003 to SharePoint 2010 - Steve Chen
Upgrading from SharePoint Portal Server 2003 to SharePoint 2010 Part 1 - Hisham Samara
Upgrading from SharePoint Portal Server 2003 to SharePoint 2010 Part 2 - Hisham Samara

Tal data se aplica a todos os produtos abaixo:
Windows XP, Office 2003, SharePoint 2003, Exchange 2003 e Internet Explorer 6 rodando sobre Windows XP.


Abaixo o link com as informações oficiais, e algumas dicas para iniciar a migração caso ainda tenha algum desses produtos.
http://www.microsoft.com/pt-br/windows/enterprise/endofsupport.aspx

Good luck! ;-)

quinta-feira, 27 de fevereiro de 2014

Excluir uma Web Part de uma página via comandos PowerShell

Recentemente tive que tratar o erro abaixo:

[MissingWebPart] WebPart class [61923fcb-1870-2455-3253-8091c037c447] (class [SPClaseXYZ.View.VWP_ClaseXYZ.VWP_ClaseXYZ] from assembly [SPClaseXYZ, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e4181b56a024ab76]) is referenced [5] times in the database [WSS_Content], but is not installed on the current farm. Please install any feature/solution which contains this web part. One or more web parts are referenced in the database [WSS_Content], but are not installed on the current farm. Please install any feature or solution which contains these web parts

Esta mensagem aparece dentro do erro "Missing server side dependencies." no Health Analyzer.

O ideal é instalar corretamente a "feature/solution" que contém a web part, como o próprio erro recomenda. Se isso não for possível ou não desejado. Os passos apresentados abaixo podem ajudar.

No link abaixo há alguns scripts que você pode usar para descobrir em quais sites a referência existe. Nesse mesmo link há uma forma manual via web de excluí-lo:
http://get-spscripts.com/2011/08/diagnose-missingwebpart-and.html

Para acessar a página de manutenção da Web part basta adicionar "?contents=1" como no exemplo abaixo:
Página: http://shp2010/test-site/SitePages/Home.aspx
Página de Manutenção: http://shp2010/teste-danilo/SitePages/Home.aspx?contents=1

Abaixo eu construí um script que faz o mesmo procedimento de exclusão apresentado no artigo do link acima, porém através de script:

#Nome da Web part
$wpName = 'Shared Documents'
#URL do sub-site em questão
$spweb = get-spweb http://win-nimd9f42gkd/sub-site-de-teste
#URL completa da página onde está a Web Part
$WebPageUrl = 'http://win-nimd9f42gkd/sub-site-de-teste/SitePages/Home.aspx'
$spWpManager = $spweb.GetLimitedWebPartManager($WebPageUrl, [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared);

#Obtem o ID da web part a partir do nome, esse ID varia a cada página, mesmo que a Web Part seja a mesma
foreach($spwebpart in $spWpManager.Webparts)
{
    if($spwebpart.Title -eq $wpName)
    {
        $webpartID = $spwebpart.ID
    }
}

#Efetua a exclusão a partir do ID coletado acima
$spWpManager.DeleteWebPart($spWpManager.Webparts[$webpartID])

quarta-feira, 26 de fevereiro de 2014

Lançado Service Pack 1 para o SharePoint 2013

O SP1 do Office 2013 e produtos do SharePoint 2013 finalmente foi lançado.
Detalhes sobre as correções e melhorias que ele traz podem ser encontradas na planilha no link abaixo

A tabela abaixo retirada do blog oficial é uma referência rápida para cada produto:
UpdateKB Article
Office 2013 SP1. Covers these applications:
  • Access
  • Excel
  • InfoPath
  • Lync
  • OneNote
  • Outlook
  • PowerPoint
  • Publisher
  • Word
2817430
Project 2013 SP12817433
Visio 2013 SP12817443
SharePoint Designer 2013 SP12817441
SharePoint Server 2013 SP12817429
Project Server 2013 SP12817434
Office Web Apps Server 2013 SP12817431
All other desktop products and language packs2850036 
All other server products and language packs2850035

Com o lançamento dele finalmente teremos o SharePoint 2013 suportado no Windows Server 2012 R2. Abaixo alguns links que anunciavam isso:

Have fun! ;)

segunda-feira, 24 de fevereiro de 2014

Dividir arquivos ULS Log em partes menores

Eventualmente precisamos analisar arquivos ULS logs gigantescos, de até mais de 1GB.
Esse tipo de arquivo faz o ULSViewer travar com frequência o que muitas vez nos leva a usar Excel por exemplo. Mas ai se passa de 1.048.576 linhas o Excel não carrega o arquivo todo inteiro. E ai fazemos o que?
Para contornar esse problema você pode utilizar um script para PowerShell que divide o arquivo pra você.

Você pode encontrar script em:
http://gallery.technet.microsoft.com/scriptcenter/PowerShell-Split-large-log-6f2c4da0

Ele irá te mostrar as seguintes mensagens:
What is the full path and name of the log file to split? (e.g. D:\mylogfiles\mylog.txt)" - Para você colocar o arquivo de origem
What is the path where you want to extract the content? (e.g. d:\yourpath\)" - Para você colocar a pasta de destino
Please wait while the line count is calculated. This may take a while. No really, it could take a long time." - Então ele vai demorar um bom tempo pra contar quantas linhas o arquivo possui
Your current file size is $sourcelinecount lines long" - Ele diz o total de linhas
How many lines will be in each new split file?" - E você finalmente especifica quantas linhas deseja ter em cada sub-arquivo

sexta-feira, 21 de fevereiro de 2014

Backup e Restore no SharePoint 2010 / 2013

O procedimento de backup e restauração do SharePoint em geral não é amplamente conhecido pelos profissionais que administram farms do produto. Ainda complica um pouco mais quando procuram informação e percebem que não está bem unificada, então se faz necessário pesquisar em vários artigos para encontrar o procedimento ou informação que deseja. Afim de facilitar procurei condensar tudo que você precisa saber e onde encontrar detalhes no que diz respeito ao backup/restore do SharePoint 2010. No entanto quase todas as informações também se aplicam ao SharePoint 2013.

Nesse artigo:
1. Documentação oficial
2. Restaurar um site collection em particular a partir de um backup Completo usando a central de administração
3. Como funciona o backup granular e exportação de site/listas
4. Comandos genéricos de backup completo, granular para site collection, para sites e exportação de listas
5. Restaurações de itens e arquivos individuais são possíveis através das Lixeiras do SharePoint
6. Usando o System Center Data Protection Manager para fazer backup do SharePoint

1.       Documentação oficial:
Documentação oficial que fornece informações de como proceder na realização de backup e restore para cada das partes que constitui a Farm do SharePoint Server 2010:

Artigos escritos engenheiro da Microsoft Russ Maxwell explica de forma bastante completa inclusive fornecendo exemplos práticos:

2.       Restaurar um site collection em particular a partir de um backup Completo usando a central de administração:
Central Administration > Backup and Restore > Restore from a backup > “selecionar o backup” e clicar em Next > Selecionar apenas a base de dados relacionada ao site collection
Também é possível através da restauração a partir de uma base não anexada ao banco de dados:

Para identificar qual base de dados pertence ao site collection em questão você pode acessar:
Central Administration > Application Management > View all site collections > “Selecionar o site collection” > “Na tabela a direita você verá o nome da base no campo “Database Name”












3.       Como funciona o backup granular e exportação de site/listas:
Documentação oficial: http://technet.microsoft.com/pt-br/library/ee663477(v=office.14).aspx (dentro dele procure (CTRL+F) por “Arquitetura de exportação e backup granular”

4.       Comandos genéricos de backup completo, granular para site collection, para sites e exportação de listas
Estes comandos podem ser utilizados para automatizar o backup através das tarefas agendadas do Windows.
Os comandos estão respectivamente listados abaixo, para maior referencia consultar http://technet.microsoft.com/en-us/library/ee428316(v=office.14).aspx :

Backup:
Completo: Backup-SPFarm -Directory <BackupFolder> -BackupMethod {Full | Differential} [-Verbose]
Site Collection: Backup-SPSite -Identity <Site collection name> -Path <backup file> [-Force] [-NoSiteLock] [-UseSqlSnapshot] [-Verbose]
Exportar Site, biblioteca ou Lista: Export-SPWeb -Identity <Site URL> -Path <Path and file name> [-ItemUrl <URL of site, list, or library>] [-IncludeUserSecurity]

Restore:
Completo: Restore-SPFarm -Directory <BackupFolder> -RestoreMethod Overwrite [-BackupId <GUID>]
Site Collection: Restore-SPSite -Identity <Site collection URL> -Path <Backup file> [-DatabaseServer <Database server name>] [-DatabaseName <Content database name>] [-HostHeader <Host header>] [-Force] [-GradualDelete] [-Verbose]
Exportar Site, Biblioteca ou Lista: Import-SPWeb -Identity <Site URL> -Path <Export file name> [-Force] [-NoFileCompression] [-Verbose]

Dica: No Power Shell você pode usar “Get-help <comando>” para obter as variações possíveis. Exemplo “Get-Help Export-SPWeb”, “Get-Help Export-SPWeb -Examples” pode ser bastante útil também.
Obs.: Não é possível restaurar Sub-sites, Bibliotecas e listas através da Central de Administração.

5.       Restaurações de items e arquivos individuais são possíveis através das Lixeiras do SharePoint


Nos links abaixo há mais detalhes sobre esse recurso:
-Configure Recycle Bin settings (SharePoint Foundation 2010) – Não há versão em português
-Exibir, restaurar ou excluir itens na Lixeira de um site do SharePoint
http://office.microsoft.com/pt-br/sharepoint-server-help/view-restore-or-delete-items-in-the-recycle-bin-of-a-site-HA010379003.aspx

Caso o item não esteja mais na lixeira, apenas o DPM tem a possibilidade de fazer backup e restaurar itens individuais.

6.         Usando o System Center Data Protection Manager (DPM) para fazer backup do SharePoint
Whitepapper: “How to protect SharePoint with DPM 2010 whitepaper”

Artigo de engenheiros da Microsoft mostrando como configurar o DPM para proteger o SharePoint:
https://blogs.technet.com/b/dpm/archive/2013/05/22/how-to-setup-dpm-2012-to-protect-sharepoint-2010.aspx (abrir no IE há vídeos que não abriram quando visualizei em outro navegador)

segunda-feira, 6 de janeiro de 2014

Comportamento esperado para atualização de Campos Personalizados - Project Server

Alguns clientes entendem que para o seu negócio os valores dos campos personalizados (também chamados customizados) deveriam ser atualizados a cada salvamento do Projeto, procuram essa configuração e não encontram, e até mesmo pensam que o Project Server está com algum problema e abrem um chamado para a Microsoft resolver isso.
"Campos personalizados não são atualizados ao salvar o projeto."
No entanto não há problema algum com o produto. Os campos personalizados APENAS são atualizados durante a publicação do projeto.

Os motivos para isso são vários, mas tudo basicamente por questões de desempenho. Campos personalizados usam fórmulas que por sua vez processam inúmeras informações, e esses campos podem ser adicionados à visualização padrão da Central de Projetos. Agora imagine a quantidade de acesso que isso gera na base de dados. Se ele fosse considerar as alterações salvas nos projetos, seria tudo em dobro. Pois também para obter um experiência de usuário mais fluída o Project Server divide as bases em "Draft" (rascunho) e "Published" (publicado), tudo que você altera no projeto fica na base Draft até que você publique. Se o Project Server fosse processar os campos customizados a cada salvamento, toda vez que algum usuário entrasse numa visualização que mostrasse os campos personalizados, seria necessário percorrer toda a base Published e mais a base Draft para processar. Além que de se um usuário apenas alterasse um campo por engano e salvasse, o campo personalizado, que muitas vezes é utilizado como indicador seria atualizado, o que aumentaria a incidência de informação incoerente para os níveis gerencias.

Se no seu caso seria interessante que os campos atualizem sem que os proprietários dos projetos publiquem manualmente você pode usar um dos caminhos abaixo: