Category Archives: 2375

Convertendo PDF em DOCX – Parte 1

Ontem me surgiu uma necessidade interessante num cliente.

Ele me perguntou se era possível converter um arquivo PDF em Word. Eu respondi que claro, o Word 2013 faz isso e demonstrei para ele da forma descrita abaixo (juro que achei estranho ele ter uma dúvida tão simples).

Para converte um documento PDF em Word siga os seguintes passos:

  • Abra o Word 2013 selecionando a criação de um novo documento em branco;

image

  • Clique em Arquivo, Abrir e selecione o documento PDF que deseja converter;
    • Outra forma de chegar neste mesmo ponto é localizar o arquivo PDF com o Windows Explorer, dar um clique com o botão direito do mouse nele e selecionar Abrir com, depois escolher Word (Desktop).

SNAGHTML65ef9d

  • Caso você receba uma mensagem informando que o arquivo será convertido, basta confirmar;
  • Se a edição já não estiver habilitada, clique em Habilitar edição na barra superior;
  • Agora basta ir em Arquivo, Salvar como e escolher documento do Word;
  • Pronto, problema resolvido!

Não no meu caso, pois o cliente gostou da solução, mas disse que havia um problema ainda. Aí eu pergunto: Qual?

São 800 arquivos, isso vai demorar muito. Precisamos de algo automatizado.

OK, neste momento parto para a criação de uma macro, que demonstro na parte 2 deste artigo.

Inserindo Vídeos em postagens de blog através do Word 2013

Um recurso que era muito utilizado no Windows Live Writer era a inserção de vídeos nos posts de blogs e aparentemente este recurso não está presente no Word 2013 para postagens. Digo aparentemente porque, por padrão, ele não aparece, mas podemos facilmente resolver isto.

Aqui vai o passo-a-passo:

  • Na sua faixa de opções, dê um clique numa área livre e selecione Personalizar a Faixa de Opções;

image

  • Insira um novo grupo na faixa e dê um nome para ele (suponhamos algo criativo, como Vídeos) e escolha um ícone;

image

  • Selecione Todos os comandos, depois localize Videos Online… e clique em Adicionar > >;

image

  • Clique em OK e pronto! Agora você já terá na sua Faixa de Opções o novo grupo Vídeos, com o item Video Online!

image

O risco de usar apenas Mac Address como solução de segurança

Esse assunto já é antigo, tanto que postei sobre ele em 2007 (http://msmvps.com/blogs/paleo/archive/2007/07/27/evitando-grandes-problemas-com-o-uso-do-wireless-em-aeroportos.aspx), mas de qualquer forma, vou repetir algumas coisas aqui.

Definir permissões de acesso a roteadores wireless por filtros de Mac Address é uma solução boa, mas não deve ser a única, pois com softwares gratuitos e simples de usar como, por exemplo, o Macshift (http://devices.natetrue.com/macshift/), já facilitavam este procedimento desde o Windows XP.

No Windows 7 basta seguir os passos abaixo:

  • Iniciar;
  • Painel de Controle;
  • Gerenciamento de Dispositivos;
  • Adaptador de Rede;
  • Avançado;
  • em Endereço de Rede, preencha com o Mac que deseja.

Isso ainda pode ser feito no registro do Windows, como explicado aqui: http://www.windowsreference.com/networking/how-to-change-mac-address-in-windows-registry/

No Windows 8:

  • Pressione a tecla do Windows junto com a letra S;
  • na caixa de busca que aparece digite: “Gerenciador de Dispositivos” (não precisa digitar tudo, pois ele vai localizando a medida que você digita);
  • localize o Adaptadores de Rede e expanda a seleção;
  • clique na guia Avançado;
  • localize Endereço de rede e altere o valor dele para o que desejar.

enter image description here

 

Em resumo, sim, o uso do endereço Mac é uma medida de segurança, mas facilmente burlada.

 

Um exemplo real? Aqui vai o que citei em 2007 no artigo mencionado acima:

Muita gente gosta de usar as conecções Wireless de aeroportos, mas como na maioria deles elas são pagas, acaba pagando por isso. O interessante é que algumas vezes as pessoas notam que pagaram por mais tempo do que usaram, mas o provedor garante que não.

Por que isto acontece? Simples, quando você embarcou no seu vôo, outra pessoa passou a usar sua conexão! Como? Muito simples:

  • Você chega ao aeroporto, acessa a página do Wireless, informa os seus dados e do seu cartão de crédito (ou conta de acesso);

  • com isto o acesso através de seu MAC Address (aqui está o problema) é liberado;

  • outra pessoa chega, obtém acesso à página onde pede cartão/usuário senha;

  • esta outra pessoa verifica o endereço IP que recebeu e identifica os outros IPs na área;

  • então esta pessoa roda um "nbtstat" em cada IP da rede e obtém seus MAC Addresses;

  • você embarca no seu vôo;

  • o segundo passo do "sacana" é identificar qual IP não está mais operando ativamento (um deles será o seu, que acaba de embarcar);

  • neste momento o "sacana" altera o MAC Address dele, deixando-o igual ao seu (usando por exemplo, o Macshift, que é free);

  • pronto, agora ele pode navegar de graça e o pior, você está pagando pela navegação dele.

Ok, muita gente vai dizer que isto não é problema, pois o acesso é barato mesmo e o seu prejuízo será baixo, mas preste muita atenção a um detalhe: QUALQUER coisa que esta pessoa realizar usando o SEU MAC Address, foi oficialmente realizada por você! Ou seja, se ele praticar algum crime, você sofrerá o processo e precisará gastar dinheiro para provar sua inocência! MUITO CUIDADO então!

O uso do MAC Address nunca foi uma forma eficiente de se implantar segurança, mas este tipo de "roubo" de MACs está ficando tão freqüênte que resolvi alertar aos meus leitores.

Claro que roubar MAC Address pode ser classificado como crime, mas o difícil é provar quem fez isto e levá-lo a um tribunal, portanto fique esperto e proteja-se.

Sempre que possível, use apenas redes "seguras" (usei as aspas, pois virtualmente nenhuma rede pode ser considerada 100% segura).

Reduzindo o tamanho do arquivo de logs do SharePoint via Query Analyzer

Esta postagem na verdade é um complemento para esta outra: Arquivo de Logs do SharePoint gigantesco

Aqui mostro uma forma alternativa de chegar na mesma solução (usando o Query Analyzer), o que torna o processo bem mais curto.

Execute cada um dos comandos a seguir, de forma sequencial e individual (Os comandos estão em negrito e o nome da base de dados em itálico. Adicionalmente, após cada comando, coloco a explicação do que ele faz):

USE WSS_Content_5b2a339ee78749d0b48100e45cd22a0c;

Conecta à base de dados que desejo reduzir de tamanho

ALTER DATABASE WSS_Content_5b2a339ee78749d0b48100e45cd22a0c SET RECOVERY SIMPLE;

Configura o modelo de recuperação para SIMPLE

CHECKPOINT;

Comanda um CHECKPOINT para eliminar todas as transações inativas

DBCC SHRINKFILE (WSS_Content_5b2a339ee78749d0b48100e45cd22a0c_LOG, 5);

Comprime o arquivo do log de transações para um tamanho aceitável

ALTER DATABASE WSS_Content_5b2a339ee78749d0b48100e45cd22a0c SET RECOVERY FULL;

Configura o modelo de recuperação de volta para FULL

 

Pronto, é só isso! Apenas quatro comandos, para fazer o mesmo do outro post!

Arquivo de Logs do SharePoint gigantesco

Quem trabalha com SharePoint, com um enfoque de infraestrutura, não apenas de usuário, já deve ter encontrado base de dados do SharePoint onde o arquivo de dados do SQL Server (.mdf) possui um tamanho de alguns poucos MBs ou GBs, mas o arquivo de logs associado (.ldf) possui muitas vezes o tamanho do arquivo de dados, chegando muitas vezes a consumir quase todo o HD da máquina.

A caso mais gritante que encontrei foi numa máquina de cliente um arquivo de dados (.mdf) de 5 GB e um arquivo de logs (.ldf) de 112 GB! A solução empregada nesta máquina será a demonstrada aqui neste post!

image

O mais interessante é que este arquivo de logs crescerá até consumir o seu HD inteiro, caso não seja configurado um limite para ele. Quando isso ocorrer os usuários não poderão inserir, atualizar, nem excluir seus registros!

Isto ocorre porque cada alteração (atualização) realizada no seu SharePoint é tratada como uma modificação pelo SQL Server (o que é correto) e portanto escrita no arquivo de logs, para somente depois ser escrita no arquivo de dados. Como o disco estará cheio, não será possível escrever no arquivo de logs, desta forma o SQL Server nem chegará a tentar escrever no arquivo de dados e portanto o seu SharePoint passará a ser apenas para visualização, uma vez que nada poderá ser alterado. Tornando-se inútil em pouco tempo.

Há como evitar isso? Claro, é uma configuração no SQL Server, porém como nem todo usuário de SharePoint entende de SQL Server isso pode se tornar um “elefante branco”. Vou abordar esta configuração em outro post, aqui focarei apenas em como reduzir o tamanho de um arquivo de logs que já esteja gigante.

Comece acessando o banco de dados que possui o arquivo de logs gigantesco e execute os seguintes procedimentos para reduzir o tamanho dele (aqui vou mencionar os procedimentos a serem realizados no modo “visual” (GUI) do SQL Server Management Studio, em outro post coloco como fazer via Query Analyzer, para não tornar este muito extenso.

Bem, então vamos lá:

  • Expanda Databases;

image

  • Localize o banco onde deseja reduzir o arquivo de logs, dê um clique com o botão direito do mouse nele e selecione Properties;
  • Acesse a guia Options;
  • Localize a informação sobre o modelo de recuperação (Recovery Model) onde deve estar selecionado Full;
  • Clique no menu dropdown e selecione Simple para o modelo de recuperação;

image

  • Clique em OK;
  • Dê um clique com o botão direito do mouse no nome da base de dados e escolha  Tasks –> Shrink –> Files;

image

  • No menu ao lado de File type, onde estará escrito Data, selecione Log;

image

  • Você pode manter o restante da tela como está, com a opção padrão, que é a liberação do espaço não usada (Release unused space), ou pode selecionar Reorganize pages before releasing unused space e ainda escolher em  Shrink file to o tamanho que deseja deixar o arquivo. Não há necessidade para alterar a opção padrão, então vamos simplesmente clicar em OK (Fique ciente que este procedimento pode levar vários minutos!);
  • Quando estiver concluído, caso deseje, você pode executar o procedimento anterior novamente, para reduzir o tamanho do arquivo de dados também. Para tanto, basta manter a seleção padrão para File type que é Data;
  • O último passo é voltar nas propriedades da base de dados e alterar novamente o modelo de recuperação para Full.

O resultado será algo semelhante à imagem abaixo (repare que eu realizei o procedimento tanto no arquivo de dados, quanto no de logs):

image

Problema com o tamanho da base do SQL Server

Realizando a migração de um Sharepoint Services 3.0 para o SharePoint Online do Office 365 verifiquei umas situações interessantes que julguei legal postar aqui para ajudar aos amigos.

Primeiro o SharePoint estava usando o Windows Internal Database para contornar o problema da limitação de tamanho das versões Express do SQL Server. Vale destacar que na época da instalação do SharePoint se utilizava Windows Server 2003 R2 e SQL Server 2005 Express, que possuía a limitação de 4 GB para tamanho da base de dados. Para quem não está acostumado com isso, o Windows Internal Database não possui limitação de tamanho e pode ser utilizado para o SharePoint, o que na época era uma boa solução para quem não desejava gastar.

Maravilha, mas hoje isso cria um problema adicional. Por que? Simples, não é possível migrar um SharePoint Services 3.0 direto para o SharePoint Online, primeiro temos migrar ele para um SharePoint Foundation 2010 ou SharePoint Server 2010 e então dele, podemos migrar para o SharePoint Online.

Até aqui tudo bem, ocorre que quando se instala o SharePoint Server 2010, como standalone, ele instala e configura um SQL Server 2008 Express, que naturalmente possui recursos superiores aos do SQL Server 2005 Express da época em que foi instalado o SharePoint original, porém, possui a mesma limitação de tamanho dos 4 GB, o que inviabilizaria a migração, uma vez que a base já superou este tamanho.

O processo de migração consiste em aplicar todas as atualizações no SharePoint Services 3.0 e no Windows Internal Database e depois realizar um Backup da base de dados do SharePoint (que pode ser feito via linha de comando, ou através do SQL Server Management Studio Express, que eu recomendo, por tornar o processo mais visual, o que facilita para quem não tem muita prática com bancos de dados).

Como a base original estava num sistema antigo, foi utilizado para criar o backup a versão 2005 dele, como pode ser visto abaixo:

image

Esta etapa é tranquila, agora vem a hora de levar o arquivo do backup até o equipamento onde temos o SharePoint Server 2010 e realizar a restauração do backup, para a primeira atualização da base de dados, pois é aí mesmo que iniciam os problemas. O problema deles será a demora via conexão de internet, caso os equipamentos estejam em locais onde não seja possível o transporte por meios físicos. O segundo será o tamanho da base, que neste caso era de 5,2 GB!

Na hora de restaurar o backup recebemos a seguinte mensagem:

image

Agora, como contornar isso, sem precisar gastar muito? Simples, fazendo o upgrade de edição!

Será necessário desinstalar o SharePoint, instalar o SQL Server 2012 Express e depois reinstalar o SharePoint? Não, o processo é bem mais simples do que isso! Basta Usar o SQL Server Instalation Center dele:

image

Apenas tenha atenção para não acessar o SQL Server Instalation Center do SQL Server 2012, senão de nada adiantará. Você pode reparar na tela acima que o mouse está posicionado no correto e o outro está na base da mesma coluna.

Selecione a opção de Maintenance e depois clique em Edition Upgrade:

image

No Windows Server 2012 você receberá uma mensagem de erro, basta clicar em Run the program without getting help e seguir o processo.

image

São realizadas algumas validações e você precisa apenas mandar continuar, clicando em OK ou Next, conforme o caso (uma vez cada um).

Então você deve definir para qual edição deseja fazer o upgrade. Caso tenha uma chave com os 25 caracteres de uma versão superior, insira ela. Se não tiver apenas selecione Enterprise Evaluation e clique em Next.

image

Sim, sua base será considerada de avaliação, mas isso não é problema, pois muito antes de os 180 dias da avaliação expirarem sua migração estará concluída!

Agora aceite o contrato de licença e avance para a tela onde deverá selecionar a instância do SQL Server a passar pela atualização. A identificação é simples, basta ver qual delas possui Express na coluna Edition. Caso tenha mais de uma e não saiba qual delas é a correta, primeiro identifique-a pelo gerenciador do SharePoint 2010. Vale salientar que a seleção é feito pelo nome da instância, no menu acima da tabela de instâncias instaladas, onde aparece escrito SHAREPOINT.

image

Pronto, problema de tamanho resolvido e agora você pode seguir com a migração!

Enviar visualização de planilha por e-mail

Recebi um questionamento sobre como enviar a visualização de uma planilha, por e-mail. Claro, pode ser na forma de imagem, mas eu considero como melhor forma, o envio como PDF.

Desta forma vamos à solução!

A primeira etapa é definir a área de impressão de sua planilha e os ajustes de página, como a Orientação (Retrato ou Paisagem) e se deseja que imprimi em múltiplas páginas ou ajuste o conteúdo a uma única página, depois é executar a macro abaixo que ela faz o resto, mas claro que você precisa ajustar o que coloquei em negrito antes de roda-la:

Sub eMailActiveWorksheet()
    ‘ esta macro envia apenas a planilha como PDF
    Dim OL              As Object
    Dim EmailItem       As Object
    Dim Wb              As Workbook
    Dim Arquivo        As String
    
    Application.ScreenUpdating = False
    Set OL = CreateObject("Outlook.Application")
    Set EmailItem = OL.CreateItem(olMailItem)
    Arquivo = "C:\Temp\" & Replace(ActiveSheet.Name & " – " & ActiveWorkbook.Name, ".xlsm", ".pdf")
    ActiveSheet.Copy
    Set Wb = ActiveWorkbook
    Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        Arquivo, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    With EmailItem
        .Subject = "Assunto_do_e-mail"
        .Body = "Mensagem_do_e-mail"
        .To = "destinatário_do_email"
        .Importance = olImportanceNormal
        .Attachments.Add Arquivo
        .Send
    End With
    Wb.Close False
    
    Application.ScreenUpdating = True
    
    Set Wb = Nothing
    Set OL = Nothing
    Set EmailItem = Nothing
    
End Sub

 

Substitua “C:\Temp\” pela pasta de sua preferência.

Liberando o acesso ao Lync 2013 na rede local


Já vi muita gente tendo dificuldade para fazer o Lync 2013 funcionar em seus ambientes corporativos, especialmente por enfrentar dificuldades para fazer a liberação de portas no firewall, então resolvi escrever este post. Se me perguntarem, mas estas informações já não estão disponíveis no site do TechNet? Claro, estão aqui:



http://technet.microsoft.com/en-us/library/gg398798.aspx



 



Ocorre que algumas pessoas não gostam de ler tanto para obterem suas informações. Então também há esta página:



http://www.lync-solutions.com/Documents/Lync_2013_protocol_poster_v6_7.pdf



 



No site acima o Rui Maximo fez um trabalho simplesmente excelente, mas que também pode assustar a alguns leitores, então resolvi postar de uma forma resumida (sei, até um pouco demais), para quem deseja ir direto ao ponto.



Pois vamos aos cenários então:



  • Conectar o cliente interno ao Lync;


Recurso

Protocolo

Porta

Detecção de presença e mensagens instantâneas

SIP/TLS

5061

Detecção de presença, mensagens instantâneas, áudio e vídeo e conferência Web

HTTPS

443

Solução empresarial de voz

STUN/TCP

443

Áudio, vídeo, conferência web e compartilhamento de aplicativos

SRTP/UDP

49152 – 65535

Áudio, vídeo e conferência web

PSOM/TLS

8057

Solução empresarial de voz

TURN/TCP

448

Solução empresarial de voz

UDP

3478



  • Conectar dois clientes internos via Lync;


Recurso

Protocolo

Porta

Áudio, vídeo, conferência web e compartilhamento de aplicativos

SRTP/UDP

1024 – 65535



  • Cliente interno com Exchange Server para usar Unified Messaging;


Recurso

Protocolo

Porta

Solução empresarial de voz

SRTP/RTCP

60000 – 64000

Bidirecional



  • Cliente interno para soluções de voz.


Recurso

Protocolo

Porta

Solução empresarial de voz

SRTP/RTCP

30000 – 39999


Parâmetros de linha de comando na conexão remota

Você que está acostumado a usar conexões remotas, sabia que pode usar alguns parâmetros de linha de comando nela?

Não, pois aqui vou falar sobre eles.

Para começar, você sabia que a partir do Windows 7 pode iniciar uma conexão remota a partir da caixa de pesquisa, da caixa de diálogo executar ou da linha comando?

Pois é, justamente nestes casos é que fica ainda mais interessante conhecer estes parâmetros, ainda que eles continuem válidos para quem inicia a conexão remota sempre a partir do menu iniciar. Adicionalmente o uso indevido deles pode causar resultados indesejados, se não soubermos usá-los de forma correta.

Mas, passemos aos parâmetros:

A forma que julgo mais prática para usá-los é a seguinte:

  1. Clique no botão Iniciar Picture of the Start button, então selecione Todos os Programas, aponte para Acessórios e então clique em Executar;

    • Ok, tem uma forma mais fácil de fazer isso. Clique na tecla do Windows Picture of the Start button e sem soltá-la pressione a tecla R

  2. Na caixa de diálogo Abrir, digite mstsc.

Portanto a forma de escrever (sintaxe) o comando, com os parâmetros, é a seguinte:

mstsc [<arquivo de conexão>] [/v:<servidor[:porta]>] [/admin] [/f[de fullscreen]] [/w:<largura>] [/h:<altura>] [/public] | [/span] [/edit “arquivo de conexão”] [/migrate] [/?]

 

/v:servidor:1111 Especifica a qual computador remoto desejamos nos conectar e indica a porta que deve ser usada para isto. Neste exemplo, a porta 1111.
/admin Como o nome sugeri, este parâmetro é usado por administradores remotos.
Se a funcionalidade de gerenciador de conexões remotas estiver ativa, após o comando mstsc /admin, ocorrerá o seguinte (para a conexão realizada com o uso do parâmetro):
– Desabilita o serviço de licenciamento de clientes de conexão remota;
- Desabilita o redirecionamento de fuso horário;
- Desabilita o redirecionamento do RD Connection Broker;
- Desabilita o Easy Print da conexão remota.
Caso o servidor seja um Windows Server 2008 R2, ainda teremos os seguintes resultados.
- Desabilita o redirecionamento de dispositivos Plug & Play;
- Altera o tema da área de trabalho para o Windows Classic.
/f Inicia a conexão remota no modo de tela cheia
/w:1024 Especifica a largura da janela para  a conexão remota. Neste exemplo, 1024 pixels.
/h:768 Especifica a altura da janela para  a conexão remota. Neste exemplo, 768 pixels.
/public Executa a área de trabalho remota no modo público.
/span Iguala a largura e alturas da área remota com o desktop virtual local, distribuindo entre múltiplos monitores, se necessário. Para que seja possível distribuir entre múltiplos monitores, é necessário que eles estejam dispostos como um retângulo.
/multimon Configura o layout da sessão remota para ser idêntico à configuração do computador cliente.
/edit “arquivo de conexão” Abre para edição, o arquivo de conexão (.rdp), especificado entre as aspas.
/restrictedAdmin Conecta-se no modo de administração remota restrita. Nesse modo, as credenciais não serão enviadas ao computador ou servidor remoto, o que pode protegê-lo caso esteja se conectando a um computador comprometido. Adicionalmente, este procedimento pode afetar a funcionalidade de aplicativos e a compatibilidade. Precisa ser usado em conjunto com /admin.
/migrate Migra os arquivos de conexão antigos, criados com o Connection Manager de computadores clientes, para os novos arquivos .rdp.
/prompt Solicita as credenciais apenas após a conexão ser estabelecida.
/shadow:junior Especifica que deseja espelhar a sessão chamada junior.
/control Permite o controle da sessão remota.
/noConsentPrompt Permite que uma sessão seja espelhada, sem que seja solicitado o consentimento do outro usuário.
/? Lista estes parâmetros