Ir para o conteúdo principal

Salvador Moraes

Ir para Pesquisa
Home
  

 Bem Vindo ao Blog de Salvador Moraes.

Focado em soluções para Portais Corporativos e Intranets. Técnico especialista em desenvolvimento de soluções SharePoint e .NET em projetos para grandes clientes. É técnico fortemente certificado pela Microsoft:
MCTS  WSS 3.00 - Configuring
MCTS  SharePoint Server 2007 - Configuring
Microsoft® .NET Framework 2.0 - Web-based Client Development
Designing and Develping Web-Based Applications by Using the Microsoft® .NET Framework
Atuou no desenvolvimento de projetos para o governo onde utilizou linguagens como C#, VB.Net e banco de dados MS. SQL Server 2005/2008.
 
Moderador Comunidade CanalSharePoint
Languages e Services packs WSS e MOSS 2007

Andei buscando services packs e languages packs e achei esses um link da technet onde temos languages packs e services packs para MOSS e WSS 32 e 64 bits. Bom proveito!

32-bit (download both)

Windows SharePoint Services 3.0 Language Pack (http://go.microsoft.com/fwlink/?LinkID=91343)

2007 Office System Language Packs (http://go.microsoft.com/fwlink/?LinkID=91346)

32-bit, SP1 (download both)

Windows SharePoint Services 3.0 Language Pack Service Pack 1 (SP1) (http://go.microsoft.com/fwlink/?LinkID=105916)

Microsoft Office Language Pack 2007 Service Pack 1 (SP1) (http://go.microsoft.com/fwlink/?LinkId=184337)

32-bit, SP2 (download both)

Windows SharePoint Services Language Template Pack Service Pack 2 (SP2) (http://go.microsoft.com/fwlink/?LinkID=154963)

Microsoft Office Language Pack 2007 Service Pack 2 (SP2) (http://go.microsoft.com/fwlink/?LinkId=184338)

64-bit (download both)

Windows SharePoint Services 3.0 Language Pack x64 (http://go.microsoft.com/fwlink/?LinkID=82241)

SharePoint Server 2007 Language Pack (x64) (http://go.microsoft.com/fwlink/?LinkID=120654)

64-bit, SP1 (download both)

Windows SharePoint Services 3.0 Language Pack Service Pack 1 (SP1), 64-Bit Edition (http://go.microsoft.com/fwlink/?LinkID=105917)

The 2007 Microsoft Office Servers Language Pack Service Pack 1 (SP1), 64-Bit Edition (http://go.microsoft.com/fwlink/?LinkID=105915)

64-bit, SP2 (download both)

Windows SharePoint Services 3.0 Language Pack Service Pack 2 (SP2), 64-Bit Edition (http://go.microsoft.com/fwlink/?LinkID=149245)

The 2007 Microsoft Office Servers Language Pack Service Pack 2 (SP2), 64-Bit Edition (http://go.microsoft.com/fwlink/?LinkID=149246)

 

Abraços!!

Salvador Moraes

Lista do SharePoint Relatórios e Informações

Pessoal,

Pelas minhas idas e vindas achei várias coisas interessantes sobre listas do SharePoint então resolvi mostrar algumas coisas.

Bom vamos reunir algumas informações básicas sobre a lista.

Objeto SPList tem algumas propriedades importantes que podemos usar para obter informações básicas sobre a nossa lista, como: Quem criou a lista e quando? Quantos itens da lista contém? Etc. Etc.

Propriedade

Valor

Descrição

Autor

sharepoint \ user1

O usuário que criou a lista

Criado

10/2/2009 9:22:55

A data e hora de criação para a lista

Última modificação

12/30/2009 3:38:56

A data que a lista foi modificada pela última vez

Template

DocumentLibrary

O tipo de definição da lista em que a lista é baseada

Versão

9

O número da versão da lista

Total de itens

16

O número total de itens na lista

Para gerar o relatório e listar as informações básicas podemos usar o objeto SPList exibido neste exemplo de código:

SPList ListaSP = SPContext.Current.Web.Lists[NomeLista];

this.Controls.Add(new LiteralControl("<h3>Informações sobre a lista</h3>"));
this.Controls.Add(new LiteralControl("<table><tr><td><b>Propriedade</b></td><td><b>Value</b></td><td><b>Descrição</b></td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Autor</td><td>" + ListaSP.Author.LoginName + "</td><td>O usuario que criou a lista. </td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Criado</td><td>" + ListaSP.Created.ToString() + "</td><td> Data e hora da criação da lista</td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Ultima modificação</td><td>" + ListaSP.LastItemModifiedDate + "</td><td>Ultima modificação da lista</td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Template</td><td>" + ListaSP.BaseTemplate.ToString() + "</td><td>Template da lista</td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Versão</td><td>" + ListaSP.Version.ToString() + "</td><td>Versão da lista</td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Total de items</td><td>" + ListaSP.ItemCount.ToString() + "</td><td>Numero total de itens da lista</td></tr>"));
this.Controls.Add(new LiteralControl("</table>"));

Lista do SharePoint Alertas de Informação e Estatística


Uma maneira de saber se a lista é muito popular em seu site é verificar o total de avisos na lista feita pelos próprios usuários. Podemos usar a propriedade SPAlertCollection de SPUser para verificar se o usuário escreveu avisos desta lista.

Propriedade

Valor

Descrição

Total de Alertas

3

O número de usuários realmente se inscrever na lista

Todas as modificações

2

Todos os eventos relativos à lista ou item de lista

Todas as inclusões

1

Incluir à lista ou item de lista

Modificar Alterar Tipo

0

Todas as alterações feitas em uma lista ou item de lista

Excluir Alterar Tipo

0

Exclusão de uma lista ou item de lista

Alterar tipo de discussão

0

Alterações nas discussões na Web

Para gerar a lista de alertas relatório temos de percorrer em cada SPUser SPWeb.AllUsers como apresentado neste exemplo de código:
this.Controls.Add(new LiteralControl("<h3> Lista do SharePoint Alertas de Informação e Estatisticas. </h3>"));
int totalUsers = 0;
int changeTypeAll = 0;
int changeTypeAdd = 0;
int changeTypeDelete = 0;
int changeTypeDiscussion = 0;
int changeTypeModify = 0;
foreach (SPUser user in SPContext.Current.Web.AllUsers)
{
foreach (SPAlert alert in user.Alerts)
{
if (ListaSP.ID == alert.List.ID)
{
totalUsers++;
switch (alert.EventType)
{
case SPEventType.All:
changeTypeAll++;
break;
case SPEventType.Add:
changeTypeAdd++;
break;
case SPEventType.Delete:
changeTypeDelete++;
break;
case SPEventType.Discussion:
changeTypeDiscussion++;
break;
case SPEventType.Modify:
changeTypeModify++;
break;
default:
break;
}
}
}
}
this.Controls.Add(new LiteralControl("<table><tr><td><b>Propriedade</b></td><td><b>Value</b></td><td><b>Descrição</b></td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Total Alertas</td><td>" + totalUsers.ToString() + "</td><td>Numero de usuarios inscritos na lista</td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Todas as alterações</td><td>" + changeTypeAll.ToString() + "</td><td>Todas as alterações referentes a listas ou itens </td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Modificação do tipo</td><td>" + changeTypeAdd.ToString() + "</td><td>Alteração do Tipo</td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Alteração da lista ou item da lista</td><td>" + changeTypeModify.ToString() + "</td><td>Todas as alterações feitas em uma lista ou item da lista</td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Exclusão ou alterar o tipo</td><td>" + changeTypeDelete.ToString() + "</td><td>Exclusão da lista ou item da lista</td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Alteração na discussão da Web</td><td>" + changeTypeDiscussion.ToString() + "</td><td> Alteração na discussão da Web </td></tr>"));
this.Controls.Add(new LiteralControl("</table>"));

Lista do SharePoint Relatório de Uso


Para manter o controle de quem está acessando nossa lista, os itens que foram acessadas pelos usuários e quando. Podemos usar o método SPWeb.GetUsageData para encontrar essa informação.

Arquivo

Total Hits

Dia Mais Recentes

documento1.doc

15

29-12-2009

documento2.doc

7

29-12-2009

Para gerar o relatório de utilização da lista precisamos filtrar a DataTable para que  exiba o único item da nossa lista como mostrado neste exemplo de código:

this.Controls.Add(new LiteralControl("<h3>Lista do SharePoint – Relatório de Uso</h3>"));
this.Controls.Add(new LiteralControl("<table><tr><td><b>Arquivo</b></td><td><b>Total Hits</b></td><td><b>Dia Mais Recentes</b></td></tr>"));
DataTable dt = SPContext.Current.Web.GetUsageData(SPUsageReportType.url, SPUsagePeriodType.lastMonth);
foreach (DataRow drow in dt.Rows)
{
if (drow["Arquivos"].ToString().ToLower() == list.RootFolder.Url.ToLower())
{
this.Controls.Add(new LiteralControl("<tr><td valign=\"top\">" + drow["Page"].ToString() + "</td><td valign=\"top\">" + drow["Total Hits"].ToString() + "</td><td valign=\"top\">" + drow["Dia Mais Recentes "].ToString() + "</td></tr>"));
}
}
this.Controls.Add(new LiteralControl("</table>"));

 

Lista do SharePoint Relatório de Alterações


O relatório de alteração mostrar todas as alterações feitas na lista nos últimos 30 dias

Item

Alterar Tipo

Data

documento1.doc

Adicionar

10/31/2009 3:41:21

documento2.doc

Atualizar

10/31/2009 3:39:34

documento4.doc

Adicionar

10/31/2009 3:45:34

documento4.doc

Atualizar

10/31/2009 3:48:02

documento4.doc

Atualizar

10/31/2009 4:34:39

documento5.doc

Adicionar

10/31/2009 3:16:12

documento6.doc

Adicionar

10/31/2009 3:19:58

documento7.doc

Adicionar

10/31/2009 4:33:12

documento8.doc

Adicionar

10/31/2009 4:35:33

documento8.doc

Atualizar

10/31/2009 4:38:56

Para gerar o relatório de alteração da lista, podemos usar os objetos SPChangeToken, passe SPChangeCollection.CollectionScope.List como o construtor como mostrado neste exemplo de código:

this.Controls.Add(new LiteralControl("<h3>Lista do SharePoint Relatório de Alterações</h3>"));
this.Controls.Add(new LiteralControl("<table><tr><td><b>Item</b></td><td><b>Alteração do Tipo</b></td><td><b>data</b></td></tr>"));
SPChangeToken changeToken =
new SPChangeToken(SPChangeCollection.CollectionScope.List, ListaSP.ID, DateTime.Today.AddDays(-30));
SPChangeCollection changeCollection =
ListaSP.GetChanges(changeToken);
foreach (SPChange change in changeCollection)
{
if (change.GetType().ToString() == "Microsoft.SharePoint.SPChangeItem")
{
SPChangeItem changeItem = (SPChangeItem)
change;
try
{
SPListItem
item = ListaSP.GetItemByUniqueId(changeItem.UniqueId);
if (item != null)
{
this.Controls.Add(new LiteralControl("<tr><td>" + item.Name + "</td><td>" + changeItem.ChangeType.ToString() + "</td><td>" + changeItem.Time.ToString() + "</td></tr>"));
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
this.Controls.Add(new LiteralControl("</table>"));

Relatório de Usuários da lista do SharePoint


Aqui vamos reunir os usuários que realmente usam esta lista. Nós vamos ver quantos arquivos são acessados pelos usuários da lista e como muitos arquivos e versões a lista tem.

Propriedade

Valor

Descrição

Total de usuários

12

O número de usuários realmente na lista

Total de arquivos baixados

3

O total de arquivos que tem check-out por usuários da lista

Total de versões de arquivos

25

O número total de versões de todos os arquivos criados por lista de usuários

Top utilizadores

SharePoint \ user3 (45) Atividades
sharepoint \ user1 (22) Atividades
SharePoint \ user5 (19) Atividades
sharepoint \ user2 (13) Atividades
SharePoint \ user4 (11) Atividades

O top 5 usuários na lista


Lista do SharePoint para Relatório


O relatório de armazenamento verificar a quantidade de espaço em disco ocupado pelos arquivos e suas versões em sua lista.

Propriedade

Valor

Descrição

Total do tamanho dos arquivos

12,58 MB

Esta é a quantidade de espaço em disco ocupado pelos arquivos na sua lista

Total do tamanho versões

8,84 MB

Esta é a quantidade de espaço em disco ocupado pelas versões em sua lista

Total do Tamanho da pasta

21,42 MB

Esta é a quantidade total de espaço em disco ocupado pela lista

Para os dois últimos relatórios, percorremos todos os itens na lista, como mostrado neste exemplo de código (parte código de comprimento).
Eu também uso duas classes de ajuda, a classe ListUser e GenericComparer. (Pegue AQUI)

List<ListUser> listUsers = new List<ListUser>();
List<ListUser> listFindUsers = new List<ListUser>();
int checkedFiles = 0;
int totalVersions = 0;
long filesSize = 0;
long versionsSize = 0;
foreach (SPListItem item in ListaSP.Items)
{
listFindUsers.
Clear();
if (item["Autor"] != null)
{
string userValue = item["Autor"].ToString();
int index = userValue.IndexOf(';');
int id = Int32.Parse(userValue.Substring(0, index));
SPUser
author = SPContext.Current.Web.SiteUsers.GetByID(id);
listFindUsers = listUsers.
FindAll(delegate(ListUser listUser)
{
if (listUser.User.LoginName != author.LoginName)
{
return false; }
listUser.
Activities += 1;
return true;
});
if (listFindUsers.Count == 0)
{
listUsers.
Add(new ListUser(author, 1));
}
}
listFindUsers.
Clear();
if (item["Editor"] != null)
{
string userValue = item["Editor"].ToString();
int index = userValue.IndexOf(';');
int id = Int32.Parse(userValue.Substring(0, index));
SPUser editor = SPContext.
Current.Web.SiteUsers.GetByID(id);
listFindUsers = listUsers.
FindAll(delegate(ListUser listUser)
{
if (listUser.User.LoginName != editor.LoginName)
{
return false; }
listUser.
Activities += 1;
return true;
});
if (listFindUsers.Count == 0)
{
listUsers.
Add(new ListUser(editor, 1));
}
}
if (item.File != null)
{
filesSize +=
item.File.Length;
listFindUsers.
Clear();
if (item.File.Author != null)
{
listFindUsers = listUsers.
FindAll(delegate(ListUser listUser)
{
if (listUser.User.LoginName != item.File.Author.LoginName)
{
return false;
}
listUser.
Activities += 1;
return true;
});
if (listFindUsers.Count == 0)
{
listUsers.
Add(new ListUser(item.File.Author, 1));
}
}
listFindUsers.
Clear();
if (item.File.ModifiedBy != null)
{
listFindUsers = listUsers.
FindAll(delegate(ListUser listUser)
{
if (listUser.User.LoginName != item.File.ModifiedBy.LoginName)
{
return false; }
listUser.
Activities += 1;
return true;
});
if (listFindUsers.Count == 0)
{
listUsers.
Add(new ListUser(item.File.ModifiedBy, 1));
}
}
listFindUsers.
Clear();
if (item.File.CheckedOutBy != null)
{
checkedFiles = +1;
listFindUsers = listUsers.
FindAll(delegate(ListUser listUser)
{
if (listUser.User.LoginName != item.File.CheckedOutBy.LoginName)
{
return false; }
listUser.
Activities += 1;
return true;
});
if (listFindUsers.Count == 0)
{
listUsers.
Add(new ListUser(item.File.CheckedOutBy, 1));
}
}
if (ListaSP.EnableVersioning)
{
bool currentVersion = true;
foreach (SPListItemVersion version in item.Versions)
{
if (!currentVersion)
{
totalVersions += 1;
listFindUsers = listUsers.
FindAll(delegate(ListUser listUser)
{
if (listUser.User.LoginName != version.CreatedBy.User.LoginName)
{
return false; }
listUser.
Activities += 1;
return true;
});
if (listFindUsers.Count == 0)
{
listUsers.
Add(new ListUser(version.CreatedBy.User, 1));
}
if (version.ListItem.File != null)
{
versionsSize +=
version.ListItem.File.Length;
}
}
currentVersion = false;
}
}
}
}
listUsers.
Sort(new GenericComparer<ListUser>("Atividades", GenericComparer<ListUser>.SortOrder.Descending));
this.Controls.Add(new LiteralControl("<h3>Lista de usuarios</h3>"));
this.Controls.Add(new LiteralControl("<table><tr><td><b>Propriedade</b></td><td><b>Valor</b></td><td><b>Descrição</b></td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Total de usuários</td><td>" + listUsers.Count.ToString() + "</td><td>Numero atual de usuarios da lista</td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Total de arquivos baixados</td><td>" + checkedFiles.ToString() + "</td><td>O total de arquivos que tem check-out por usuários da lista</td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Total de versões dos arquivos </td><td>" + totalVersions.ToString() + "</td><td>O número total de versões de todos os arquivos criados por usuários da lista </td></tr>"));
string topUsers = "";
int i = 0;
foreach (ListUser listUser in listUsers)
{
i++;
if (i > 5) break;
topUsers += listUser.
User.LoginName + " (" + listUser.Activities.ToString() + " Atividades)<br/>";
}
this.Controls.Add(new LiteralControl("<tr><td valign=\"top\">Top usuarios</td><td valign=\"top\">" + topUsers + "</td><td valign=\"top\">Usuarios top da lista</td></tr>"));
this.Controls.Add(new LiteralControl("</table>"));
this.Controls.Add(new LiteralControl("<h3>Lista Relatório do SharePoint</h3>"));
this.Controls.Add(new LiteralControl("<table><tr><td><b>Propriedade</b></td><td><b>Valor</b></td><td><b>Descrição</b></td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Tamanho total de arquivos</td><td>" + (ConvertBytesToMegabytes(filesSize)).ToString("#0.00") + " MB</td><td>Esta é a quantidade de espaço em disco ocupado pelos arquivos na sua lista. </td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Tamanho total das versões.</td><td>" + (ConvertBytesToMegabytes(versionsSize)).ToString("#0.00") + " MB</td><td>Esta é a quantidade de espaço em disco ocupado pelas versões em sua lista</td></tr>"));
this.Controls.Add(new LiteralControl("<tr><td>Tamanho total das pastas</td><td>" + ((ConvertBytesToMegabytes(versionsSize) + ConvertBytesToMegabytes(filesSize))).ToString("#0.00") + " MB</td><td>Esta é a quantidade total de espaço em disco ocupado pela lista.</td></tr>"));
this.Controls.Add(new LiteralControl("</table>"));

Conclusão

Mais e mais companhias utilizam o SharePoint principalmente para o compartilhamento de arquivos. É por isso que é importante compreender a lista e popular ela de maneira eficiente. Espero que estes relatórios possam ajudá-los a tomar melhores decisões sobre seu uso no SharePoint.

STSADM Import e Export

Durante um trabalho em um cliente recentemente além de muitas outras surpresas, essa me ocorreu enquanto fazia um trabalho de export e import de site para sitecollection.

Usávamos um programa já apresentado aqui o Suchi, onde pode ser visto em nossa galeria de vídeos(clique aqui para ver o vídeo).  Mas descobri outra coisa sobre o import e export  e uma delas me pareceu muito importante para relatar para o nosso canal.

No caso quando são poucos arquivos o trabalho do suchi com sua interface gráfica se tornam bem prático e eficiente, mas, no meu caso eram mais de 4000 arquivos,  depois de ficar comparando as informações dos sites de produção com os que tinham sido migrados, observei que não tinha todos os documentos, então, listei os documentos de um site e do outro, e qual foi minha surpresa, havia bastantes arquivos faltando do lado dos migrados.

Fomos atrás do problema e saber o porquê dessa diferença, e em um site no qual não consegui mais achar (desculpe) descobriu que é um bug mesmo do import/export.

Abaixo listo como exemplo os comando  para corrigir o erro:

EXPORT

stsadm.exe -o export -url "http://server/sites/nome do site" -filename "C:\temp\Sites\export" -overwrite -includeusersecurity -nofilecompression -versions 4

IMPORT

stsadm.exe -o import -url "http://server/Aplications/nome do site" -filename "C:\temp\Sites\export" -includeusersecurity –nofilecompression –updateversions 2

SharePoint Server e Designer 2007 – Tutoriais e Demos
Pessoal abaixo tem vários links para o SharePoint Server 2007 e SharePoint Designer 2007, existem tutorias e demos. Bom estudos.
 
Abraços!!
 

SharePoint Server 2007


Virtual Tour

Join Ted Pattison, software instructor, as he guides you through the Office Developer Screencast Virtual Tour series.

Building ASP.NET Web Parts for Windows SharePoint Services 3.0

Create a Microsoft ASP.NET Web Part project from scratch and run it within a Microsoft Windows SharePoint Services 3.0 site.

Creating and Testing Features with Windows SharePoint Services 3.0

Use Microsoft Visual Studio to create a custom feature and an associated assembly DLL.

Creating a Custom Page Layout with SharePoint Server 2007

Make a custom page layout by using the Web Content Management features of SharePoint Server 2007.

Creating and Using Site Columns in Windows SharePoint Services 3.0

Produce and reuse site columns across the share within a site collection.

Creating and Using Content Types in Windows SharePoint Services 3.0

Create user-defined content types by using inheritance, and then configure a document library to use these content types.

Creating and Using Event Handlers in Windows SharePoint Services 3.0

Build a list item receiver class to handle both synchronous and asynchronous events.


Learn More

SharePoint Developer site on Microsoft.com

Learn how to develop on SharePoint with this collection of training modules and webcasts.

Developing SharePoint Workflows Using Visual Studio 2005

Learn the basics of workflow development for Windows SharePoint Services and SharePoint Server 2007 by using the Visual Studio development system and the Visual Studio 2005 Extensions for Windows Workflow Foundation.


Ready for a New Evaluation Experience?

MSDN Evaluation Center

To see more of what you can do with the 2007 Microsoft Office system, download the trial version of Microsoft Office Enterprise 2007 today. The MSDN Evaluation Center is your direct source for adding this comprehensive product suite to your Evaluation Experience.

SharePoint Designer 2007


Video Training

John Jansen, test lead in the SharePoint Designer 2007 product group, walks you through this informative video training series.

Powerful User Interface and Design Tools

Learn about the new interface and how to use the tools to create no-code applications in the SharePoint environment.

Customizing SharePoint Sites

Modify the master pages and view your results in the WYSIWYG environment.

Create and Modify Layout Pages

Build layout pages for SharePoint Server 2007 publishing sites and create the layout for a type of page without worrying about non-designers breaking the brand or flow.

Create and Modify Rules-based Workflow Applications

See how to create two workflow applications. Send users mail when new documents of a specific content type are uploaded, and assign tasks to people based on the whether a business lead is hot or cold.

Build Composite Applications

Create a source pointing to an RSS feed on MSDN that incorporates XML, XSLT, CSS, and ASP.NET. Then, see how to use simple form technology to create an application that enables you to see a master/detail view of categories and products and update the products list.


Learn More

Integrate with Visual Studio to deploy site definition on SharePoint Platform

Watch how you can use SharePoint Designer 2007 and Visual Studio extensions for Windows SharePoint Services together to build a site definition from scratch faster than building by hand.

Como aumentar o espaço da  HD Virtual de sua VM de SharePoint sem danificar os dados.
 Olá amigos,

esta semana me deparei com um problema em um cliente que pode estar acontecendo com várias pessoas que assim  como eu tiveram que reinstalar  toda a maquina virtual , talvez por motivo de ter achado que procurar uma solução para aumentar o tamanho do disco virtual fosse maior que a própria criação de uma nova VM (Virtual Machine = Maquina Virtual) . Tenho uma boa noticia não é não, o processo é bastante simples e rápido no meu caso uso um note com 2Gb de Ram Core 2Duo Intel, Hd 160Gb e consegui fazer tudo perfeitamente

Vamos colocar isso como um caso de uso:

O que acontece?

 

Cenário

  • Criei uma máquina de 30Gb para fazer um restore do SharePoint 2003 mais services pack banco de dados sql 2000, o problema é que fiz isso antes de ver o tamanho do Backup que o SharePoint tinha gerado na maquina do cliente, na verdade queria ganhar tempo adiantando a VM para que quando terminasse o Backup eu terminaria de configurar a VM de acordo com a maquina do cliente para fazer um restore nessa maquina pra ver se o restore está ok? Caso o restore funcionasse perfeitamente criaria uma nova maquina virtual com Windows Server 2008, SQL 2005 e MOSS 2007 e faria um restore lá. Bom o restore do Cliente deu quase 15Gb, ou seja,  metade da minha maquina virtual estava ocupada só com o arquivo de backup, restando ainda realizar o restore. Infelizmente não ter como fazer, então o caso foi procurar como resolver essa questão, aumentar o tamanho de um HD virtual de uma VM.

 

  • Como iniciar
    • Tenha consciência do tamanho do seu HD físico ( esse mesmo o da sua maquina), verifique se você tem espaço suficiente para essa operação;
    • Quando você expande o HD ele simplesmente não se une com o outro já existente ou seja ele não passa simplesmente de 30Gb para 50Gb e sim ele ira criar uma nova partição, ou seja, uma de 30Gb e outra de 20Gb.
  • Mas Salvador preciso de 50Gb como se fosse um só HD e não em partições, o que eu faço?
    • O que pode fazer é conseguir uma ferramenta que permite redimensionar as partições para que você utilize elas juntas, fazendo tipo um merge, uma união entre essas partições. Para isso eu utilizo o Partition Magic, mas essa ferramenta é paga, existem outras ferramentas que fazem esse processo e podem ser facilmente encontradas em sites como Superdownloads ou Baixaki.

 

Bom vamos ver como funciona?

  1. Primeiro vamos identificar onde está minha maquina virtual, pegue o caminho certo do arquivo com a extensão .vmdk ele é a chave para a nossa ampliação de HD, na verdade ele é o nosso HD Virtual, ou seja, é como fosse nosso HD Fisico.

Com o caminho já anotado vamos ao segundo passo

 

  1. Agora clique no botão "Iniciar"  e em seguida  em "Executar"  logo digite "cmd" ( ou "command") e pressione enter. Você entra no Prompt de comando e é nele que se faz a mágica heheheh.

 

  1. Temos que ir agora onde foi instalado o VMware Workstation
    1. Geralmente ele está em no seguinte caminho  "c:\Arquivos de programas\Vmware\Vmware Workstation"
    2. Digite o seguinte no prompt de comando "cd\arquivos de programas\vmware\vmware workstation"
      1. Você tem que fazer executar esta e as outras linhas referidas nesse blog  pelo prompt de comando.

 

Aqui vai um toque muito importante pessoal:

Bom essa semana tentei também realizar o processo de expansão de  HD virtual em outra maquina que eu tinha ( isso mesmo, tinha ) o que aconteceu além de perder minha VM:

=> Essa maquina virtual tinha SnapShots ( ou seja imagens da maquina virtual para quando der erro ou se quiser fazer algo muito louco você tem como voltar a traz )  e ela também estava pausada.  Não sei qual foi o maior agravante mas... Quando eu fiz o comando para aumentar o meu HD virtual a minha VM deu erro, a maquina não iniciava. PQ? Quando você faz um SnapShot ou pausa a máquina ele cria outras "imagens"  para depois recuperar seu estado, só que quando a gente for realizar a operação com o vmware-vdiskmanager ele usa o .vmdk, ou seja, ele pega  o arquivo padrão e só aumenta ele, e daí o que acontece com suas SnapShot e imagens pausadas??? Continuam com a mesmo tamanho, isso gera um erro no qual faz sua maquina virtual parar de funcionar.

 

Como Resolver

Desculpe, mas ainda não achei resolução , mas tenho algumas dicas para q isso não aconteça:

  1. Tenha certeza que queira fazer isso
  2. Tenha certeza que a maquina virtual  não tenha snapshots ( você pode excluir os snapshot em gerenciamento de SnapShot no próprio VMWare WorkStation ) e também que ela não esteja em modo de pausa ou parada
  3. Tenha certeza que você foi na sua maquina virtual e clicou no INICIAR e Desligar ( claro depende do SO ( Sistema Operacional ) que esteja instalado ) e simplesmente não clicou no fechar e terminou o estado dela como se tivesse puxado o fio da tomada.
  4. Tenha certeza de ter lido os 3 passos anteriores.

 

Pessoal quero deixar bem claro que não sou o dono da verdade e nesse blog estou colocando minhas "experiências"  e se alguém tiver como resolver esse problema por favor entre em contado comigo para que posso blogar isso e/ou referenciar o link aqui.

 

  1. Agora temos  uma parte muito importante vamos detalhar a linha de comando a ser executada.
    1. Vmware-vdiskmanager.exe -x 50Gb "c:\vms\myDisk.vmdk"
      1. Vmware-vdiskmanager.exe: esse é o nome do programa que iremos utilizar, esse cara é o responsável por expandir nossa VM
      2. 50Gb: esse é o tamanho que vou querer que o HD Virtual fique depois da Expansão (esse é o total e não o que vou querer a mais).
      3. c:\vms\: é o caminho onde se encontra o arquivo .vmdk
      4. myDisk.vmdk: esse é o arquivo responsável pelo tamanho do HD e nele que temos tudo instalado, ou seja, ele é o HD da máquina virtual.
  1. Tudo certo? Linha de comando pronta? O que falta agora mesmo???
    1. O Enter (hehehehe)

 

  1. Abaixo mostro a tela com 83% da tarefa concluída, antes disso podem ver que olhei para ver se a sintaxe estava certa .

  1. Pronto! Conseguimos! Abaixo, a screen  mostrando a expansão feita com perfeição

  1. Vamos então inicia a VM que expandimos.

 

  1. Bom, a primeira vista está tudo normal, o nosso HD cheio de coisa e com o mesmo tamanho e pior sem a outra partição?
    1. Calma como disse anteriormente o Windows Server não vai reconhecer de cara o que foi colocado a mais em HD ele precisa que você confirme que realmente quer usar essa partição ou disco que colocou para ele.

 

 

  1. Então o que fazemos
    1. Clique em Start, aponte para Administrative Tools e clique em  Computer Managament

 

 

  1.  Bom a figura abaixo mostra onde definir a unidade lógica, formatar e selecionar uma letra para essa unidade, basta dar um clique com o botão direito sobre ele para que as opções apareçam. A única informação que realmente possa fazer alguma diferença é na hora de escolher a partição escolha a opção Primary Partition.

 

 

 

 

  1. Ok!!! Muito bom!! Temos a nossa partição de HD com 20Gb Ativa e operante.

 

 

 

Certo Pessoal?!?!?!?

 

Bom mas tem gente me dizendo: "Salvador, pra mim nada me serve uma unidade de 30Gb e outra de 20Gb o que eu preciso é de uma só de 50Gb."

Bom minha resposta é "Calma pequeno gafanhoto, partition magic usar nós vamos!!!"

Isso mesmo vamos utilizar esta ferramenta, o partion magic no qual foi falado acima, mas antes disso vamos dar uma olhada no primeiro item abaixo onde explico algumas coisas sobre o programa que vamos utilizar para alterar o tamanho das partições e outros dois que podem lhe ajudar um dia!!

 

Como???

 

  1. Muita gente vem me perguntar se não poderia usar o Fdisk já que é uma ferramenta nativa do Windows que permite alterar  partições de disco, mas deve-se observar o seguinte:
    1. Fdisk - ambiente do Prompt de comando o famoso MS-DOS então muito cuidado, a ferramenta F-Disk, como vou dizer..., é muito primitiva, se você quiser usá-la tome muito cuidado, você até conseguirá realizar o processo de União das Partições de sua VM mas tem um porém, para que tudo  funcione corretamente você terá que formatar e instalar tudo de novo!! Daí quem pergunta sou eu!! Porque você simplesmente não criou uma VM do zero já que terá que instalar tudo novamente? :s
    2. Partition Magic - ambiente Windows, ou seja, Gráfico com ponteiro do mouse e tudo, você consegue alterar o tamanho das partições sem a necessidade de formatar nada e por isso não perde nada na seu VMware, sendo assim a melhor escolha para nós.
    3. Gparted-LiveCD - Essa ferramenta é para Linux, encontrei ela no mesmo site onde baixei o VMWare WorkStation, como não fiz teste nenhum em Linux não posso informar sua funcionalidade, mas, é para não deixar os usuários desse sistema sem alternativa.  ;)

 

  1. Beleza com o Partition Magic devidamente instalado vamos começar a mexer nas unidades!!!! (lembre-se o Partition para SO Server tem que ser Server)

 

 

  1. Com o Partition Magic aberto você tem uma visualização do seu HD e da nova partição

 

  1. Vamos deletar agora a nova Partição ( Cuidado hein!! Não vá deletar o que não deve.)
    1. Ps. Mesmo que você clique em tudo que é lugar e faça um monte de coisa que não sabe o que é, não clique em Aplicar ( Apply ) se você clicar em aplicar daí sim será feita as operações que você selecionou.

  1. Depois de deletar a partição certa selecione o seu HD ( agora sim o que tenha os dados, no caso me permito dizer o "C:" ) clique com o botão direito e depois em MOVE/RESIZE e aumente o tamanho dessa unidade para que ela ocupe o tamanho deixado pela partição no qual foi deletado, ou seja, os 20Gb.

 

 

 

  1. Clique em Apply ( lembre-se que dependendo do SO o partion vai pedir pra reiniciar pra realizar as configurações)

 

Aguarde as operações.

  1. Visualize agora que existe apenas uma partição e que ela está do tamanho de 50Gb

 

 

  1. Pode fechar o partition magic e ir conferir o seu HD de 50Gb.

 

 

É isso aí pessoal, parece ser muita coisa ou então muitos procedimentos para fazer um aumento de HD em uma maquina virtual mas mesmo assim você levaria muito mais tempo instalando tudo novamente do que fazer isso.

 

Qualquer coisa estou a disposição para tirar as dúvidas tanto desse post quanto outros.

 

Abraço Pessoal

 

Salvador Moraes

Microsoft Certificate
MCTS  WSS 3.00 - Configuring
MCTS  Sharepoint Server 2007 - Configuring
Microsoft® .NET Framework 2.0 - Web-based Client Development
Designing and Develping Web-Based Applications by Using the Microsoft® .NET Framework

Fone: (51) 9246-1468
MSN:   ortrast@hotmail.com
skype: salvadormoraes

 

 

 

Microsoft alerta para bug no SharePoint 2007 SP2
Microsoft alerta para bug no SharePoint 2007 SP2

A Microsoft alertou para um bug no SharePoint Server 2007 SP2 que impede o uso do programa após 180 dias. 

A empresa informou que o problema faz com que uma data de expiração seja definida durante a instalação do SP2 mesmo se o SharePoint Server 2007 estiver licenciado corretamente.

Isto faz com que o programa funcione como uma versão trial durante seis meses e depois expire, deixando de funcionar completamente.

A Microsoft informou que já está trabalhando em uma correção para o problema e uma solução temporária estará disponível neste artigo
.

Além do SharePoint Server 2007, o bug também afeta o Project Server 2007, Form Server 2007, Search Server 2008 e o Search Server 2008 Express.

 

Fonte Baboo

Siga-me nos links abaixo!!

 ‭(Oculta)‬ Links Administrativos