Arquivo da tag: PowerShell

Definir tamanho máximo por extensão no SharePoint 2013

Olá SharePointers,

Em alguns cenários, precisamos definir o tamanho máximo dos arquivos que podem ser armazenados em um site no SharePoint.

Para realizar essa configuração, você pode ir na Central Admin, Clicar em Manage Web Applications.

image

Escolha sua Aplicação e clique em General Settings e depois em General Settings.

 

image

 

Procure pelo item Maximum Upload Size. Nesse item, você poderá definir o tamanho máximo (em MB) dos arquivos que serão armazenados no SharePoint.

 

image

 

 

Entretanto, as vezes precisamos ter exceções para algum tipo de extensão ou até mesmo configurar valores diferentes para cada tipo de arquivo.

Para fazer isso, você pode fazer por PowerShell:

1 $webApp = Get-SPWebApplication "[Site URL]" 2 $webApp.MaximumFileSizePerExtension

 

Rodando o código abaixo, você verá que nativamente o SharePoint já tem uma extensão configurada como exceção.

Para arquivos do OneNote, o limite default é de 1 GB.

image

Para adicionar uma extensão, você pode usar o código abaixo:

1 $webApp = Get-SPWebApplication "[Site Url]" 2 $webApp.MaximumFileSizePerExtension.Add("WMV",20) 3 $webApp.Update()

Big Tip: Como copiar uma página e manter todas as webparts?

 

Olá SharePointers,

Hoje vou postar uma dica um pouco mais avançada e quase não documentada. Quem nunca precisou copiar uma página e levar todas as webparts junto e ficou frustrado ao descobrir que não tem um jeito de fazer isso via API?

Tanto faz o meio que você utilize, o resultado sempre é o mesmo: Pode ser Copiar o item via API, exportar o ASPX e importar novamente. Nada funciona.

A única alternativa é fazer isso via SharePoint designer. Pelo menos temos uma alternativa para fazer, mas não é nada agradável quando temos que replicar essa ação em produção. E aí? Qual alternativa que temos?

Como o SharePoint Designer consegue fazer, ele deve usar alguma API. Então nossa tarefa é só descobrir qual é. Abri o Fiddler e identifiquei o request que o SharePoint designer fez e o resto foi só converter em Script.

O script abaixo faz um post na URL “/_vti_bin/_vti_aut/author.dll” do site e passa as informações das páginas que você quer copiar.

A documentação da Microsoft fala o seguinte sobre o Author.dll:

The ISAPI extension that implements authoring operations, such as uploading files, applying themes, renaming and deleting documents, and so forth.
Path: http://www.server.com/subweb/_vti_bin/_vti_aut/author.dll

Ou seja, essa extensão ISAPI é utilizada para operações de “autoria”: Upload de arquivos, aplicar temas, renomear e deletar documentos, copiar documentos copiando todo o histórico (outra função que não tem como fazer “pelas vias comuns”).

 

Abaixo está o script para realização da cópia. Só passar a URL do site onde está a página, a página de onde você quer copiar e o nome da nova página. Exemplo:

clonePageWithParts.ps1 -Url http://site/subsite -ServiceName /subsite -SourcePage “Pages/default.aspx” -DestPage “Pages/newpage.aspx”

[Atualização 16/03/2015 11:05] Coloquei o script no site do MSDN Code mpara facilitar oa cesso: https://code.msdn.microsoft.com/Clone-a-page-with-all-c6512b5b

 

Mais informações e leituras recomendadas:

FrontPage Server Extensions RPC – move document Method: https://msdn.microsoft.com/en-us/library/office/ms440627(v=office.14).aspx

Overview of the SharePoint Team Services Architecture (antigo, mas interessante)

https://msdn.microsoft.com/en-us/library/office/ms463030(v=office.14).aspx

http://www.edinkapic.com/2009/05/what-sharepoint-and-vermeer-have-in.html

SharePoint 2013: Site em modo de manutenção

Olá SharePointers,

Após restaurar um site collection, ele aparecia com a mensagem em vermelho abaixo.

Além disso, a página de Quota e Locks e estava como read-only e tudo bloqueado. Não dava para alterar nada.

 

image

Para resolver isso, é só rodar o script PowerShell abaixo e tudo volta ao normal 😀

$Admin = new-object Microsoft.SharePoint.Administration.SPSiteAdministration('http://url_do_site') $Admin.ClearMaintenanceMode()

image

 

Explicação: No SharePoint 2013 foi criado uma propriedade para o Site Collection (SPSite) para identificar que o site está em manutenção (e read-only). Essa flag pode ser removida utilizando o objeto SPSiteAdministration http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spsiteadministration_members.aspx

 

Abraços 😀

Host Named Site Collections–SharePoint 2013

Olá SharePointers,

Uma das grandes novidades do SharePoint 2013 em relação a sua versão anterior, SharePoint 2010, é a possibilidade de usar “Host Named Site Collections”.

Isso, na prática, significa que agora cada site collection pode ter uma URL diferente. Vejam no exemplo abaixo:

Só existe uma Web Application e cada site Collection tem uma URL diferente.

Diagrama que mostra a configuração recomendada para esses conjuntos de sites nomeados por host

Na prática, isso pode nos ajudar no que diz respeito aos limites e recomendações do SharePoint. Levando em conta que o recomendado é ter até 10 Applications Pools por servidor, podemos ter várias URLs diferentes apontandos para Site Collections diferentes, com Bancos de Conteúdos diferentes dentro de uma mesma Web Application.

A grande desvantagem (para quem gosta de fazer tudo pela UI) é que não existe como criar esse tipo de Site Collection pela Central Administration. Para criar esse tipo de Site Collection, você deve fazer pelo PowerShell:

New-SPSite 'http://portal.contoso.com/departments/marketing' 
-HostHeaderWebApplication 'http://webapp.contoso.com' -Name 'Marketing' 
-Description 'Portal Marketing' -OwnerAlias 'contosoadministrator' 
-language 1033 -Template 'STS#0'

A grande diferença do método utilizado na versão do SharePoint 2010 é que você precisa passar o parâmetro –HostHeaderWebApplication para definir em qual Web Application esse Site Collection será hospedado.

Grande mudança, não é mesmo?

Para quem quiser saber mais informações sobre o tema, pode ler os artigos abaixo:

http://technet.microsoft.com/pt-br/library/cc424952.aspx

http://blogs.msdn.com/b/kaevans/archive/2012/03/27/what-every-sharepoint-admin-needs-to-know-about-host-named-site-collections.aspx

O que acharam desse recurso novo?

Abraços Alegre

Quick Tip: Como saber o tamanho ocupado pelos sites (Site Collections) SharePoint?

Olá Alegre,

Para saber o tamanho ocupado por cada Site Collection do SharePoint, você pode usar cmdlet PowerShell abaixo:

Get-SPSite | select url, @{label="Tamanho";Expression={$_.usage.storage/1MB}} | Sort-Object -Descending -Property "Tamanho" | Format-Table –AutoSize

 

Boa sorte Smiley piscando

SharePoint 2010 – Access Denied ao Ativar uma Feature de Timer Job

 

Olá SharePointers,

Este post é para ajudar váaaaaarios SharePointers que tentaram fazer um Custom Timer Job, exatamente da mesma maneira que faziam no 2007 e, na hora de atualizar: ERRO!

“The SPPersistedObject, Microsoft.SharePoint.Administration.SPJobDefinition, could not be updated because the current user is not a Farm Administrator”.

A primeira reação seria: vamos rodar com privilégios elevados: SPSecurity.RunWithElevatedPrivileges() – mas, não funciona também.

Depois de estudar e procurar várias referências na internet, descobri a causa do problema:

Na dll Microsoft.SharePoint.dll foi introduzido um recurso de segurança a todos os objetos que herdam de SPPersistedObject no namespace Microsoft.SharePoint.Administration.

Basicamente, esse recurso BLOQUEIA qualquer alteração nesses objetos originados de uma Web Application.

Para tal finalidade, foi criada uma propriedade na API do SharePoint 2010 para controlar esses recursos de segurança:

Microsoft.SharePoint.Administration.SPWebService.ContentService.RemoteAdministratorAccessDenied

Conclusão, ao setarmos a propriedade acima com FALSE, o código funcionará perfeitamente.

Segue o link do PowerShell Scriptlet para realizar tal mudança: Download PowerShell Script

 

Abraços!!