|
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
|
|
02/02/2010
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. 21/08/2009
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 20/08/2009
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. | 21/06/2009
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?
- 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
- 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.
- Temos que ir agora onde foi instalado o VMware Workstation
- Geralmente ele está em no seguinte caminho "c:\Arquivos de programas\Vmware\Vmware Workstation"
- Digite o seguinte no prompt de comando "cd\arquivos de programas\vmware\vmware workstation"
- 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:
- Tenha certeza que queira fazer isso
- 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
- 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.
- 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.
- Agora temos uma parte muito importante vamos detalhar a linha de comando a ser executada.
- Vmware-vdiskmanager.exe -x 50Gb "c:\vms\myDisk.vmdk"
- Vmware-vdiskmanager.exe: esse é o nome do programa que iremos utilizar, esse cara é o responsável por expandir nossa VM
- 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).
- c:\vms\: é o caminho onde se encontra o arquivo .vmdk
- 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.
- Tudo certo? Linha de comando pronta? O que falta agora mesmo???
- O Enter (hehehehe)
- Abaixo mostro a tela com 83% da tarefa concluída, antes disso podem ver que olhei para ver se a sintaxe estava certa .

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

- Vamos então inicia a VM que expandimos.
- 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?
- 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.
- Então o que fazemos
- Clique em Start, aponte para Administrative Tools e clique em Computer Managament

- 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.

- 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???
- 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:
- 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
- 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.
- 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. ;)
- 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)

- Com o Partition Magic aberto você tem uma visualização do seu HD e da nova partição
- Vamos deletar agora a nova Partição ( Cuidado hein!! Não vá deletar o que não deve.)
- 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.

- 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.


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

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

- 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
25/05/2009Microsoft 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!!

|
|
|
|
|