Postagens

Mostrando postagens com o rótulo powershell

Resolver problemas de má apresentação de caracteres da língua portuguesa em scripts do Powershell

Imagem
Para poder acentuar corretamente as palavras em scripts do Powershell (.ps1) na língua portuguesa, é necessário salvar o arquivo no formato UTF-8-BOM. Utilizando o Notepad++, pode-se fazer isso no Menu Encoding -> UTF8-BOM. Fonte: https://github.com/PowerShell/vscode-powershell/issues/1680 

Como conseguir ajuda para um comando no Powershell

Imagem
Se precisa de mais informações sobre a sintaxe de algum comando, você pode user o comando Get-Help. Sintaxe básica: Get-help  "comando que quer ajuda" Exemplo:  Get-help Test-Connection Para conseguir ajuda Online sobre um comando, adicione o parâmetro -Online:  Get-Help Comando -Online Para atualizar o conteúdo de ajuda do Get-Help, digite Update-Help, executando o Powershell com usuário elevado.

How to comment in a Powershell Script

##To comment just one line, use Hashtag #Comentary example ##To comment a block of lines, follow the example: <# write the content here, and you can jump lines #>

Função para coletar Distinguishedname de objetos no Active Directory usando Powershell (sem importar módulos)

Esta função é utilizada para coletar o Distinguishedname de um objeto no Active Directory usando Powershell, sem a necessidade de importar módulos extras (testado com grupo, usuários e computadores). ( maiores informações ) function ColetaDistinguishedName([string]$strFilter) { $objDomain = New-Object System.DirectoryServices.DirectoryEntry $objSearcher = New-Object System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = $objDomain $objSearcher.PageSize = 1000 $objSearcher.Filter = $strFilter $objSearcher.SearchScope = "Subtree" $colResults = $objSearcher.FindOne() if ($colResults -ne $null) { $distinguishednameObjeto = $colResults.Properties["distinguishedname"] return $distinguishednameObjeto } } Abaixo, segue uma forma de chamada da função (pode-se colocar os trechos logo abaixo do fechamento da função em um arquivo .ps1). $strFilter é passado por parâmetro e muda de acordo com o que se deseja. No caso ao se desejar o Dist...

Como detectar se a versão do Windows é 32 bits ou 64 bits a partir de um script do Powershell (.ps1)

Para detectar se a versão do Windows é 32 bits ou 64 bits a partir de um script do Powershell, e direcionar o script de acordo com essa detecção (por exemplo, se você precisa instalar a versão do Java 32 bits ou 64 bits, de acordo com a versão do Windows), use os comandos abaixo: $versao_windows = [Environment]::OSVersion.Version.ToString(2) if ([System.IntPtr]::Size -eq 8) { $arquitetura_windows = 64 Write-Host "Você está usando Windows 64 bits" #coloque seus comandos aqui } else { $arquitetura_windows = 32 Write-Host "Você está usando Windows 32 bits" #coloque seus comandos aqui }

Como registrar o que ocorre em uma sessão do Powershell (criar um log)

Para registrar o que ocorre ao executar um script do powershell (.ps1), é possível utilizar o comando Start-Transcript . Por exemplo, ao executar um script em segundo plano, aquilo que você veria ao executar será lançado no arquivo de log. Exemplo: start-transcript "c:\servidor\script1.txt" Para parar a transcrição, use o comando: stop-transcript Estes comandos também podem ser utilizados diretamente no Windows Powershell, para a criação de um log do que está sendo digitado. Para maiores detalhes, como parâmetros extras, consulte as fontes. Fontes: https://technet.microsoft.com/en-us/library/hh849687.aspx https://technet.microsoft.com/en-us/library/hh849688.aspx

Como descobrir o domínio e selecionar o código a ser executado de acordo com o domínio identificado em um script do Powershell

O código abaixo ajuda a identificar qual domínio pelo qual o script está rodando, além de poder selecionar um código para cada domínio diferente (até três domínios) #verificacao de dominio - lança o resultado na variável $dominio $dominio = (gwmi WIN32_ComputerSystem).Domain if ($dominio -eq 'primeiro.dominio.com') { #insira seu código } else { if ($dominio -eq 'segundo.dominio.com') { #insira seu código } else { if ($dominio -eq 'terceiro.dominio.com') { #insira seu código } } }

Como realizar comentários em um script de powershell e .bat

Para arquivos .ps1 (powershell) ## Para comentar uma linha, use cerquilha #exemplo de comentário ##Para comentar um bloco, siga o exemplo: <# escreva o conteúdo aqui no meio, podendo pular linhas. #> Para arquivos .bat REM exemplo de comentário REM nao se esqueça de por um espaço após REM

Usando Powershell para encontrar o número da versão do Sistema Operacional Windows

Ao modificar um script de instalação de software por GPO, escrito para powershell (.ps1), necessitei criar uma exceção de pacote de instalação de um programa (no caso o Adobe Reader) para Windows Vista. Para isso, usei alguns dos comandos abaixo. Para encontrar o número da versão do Sistema Operacional Windows no Powershell, digite: [Environment]::OSVersion.Version Para limitar o tipo de informação que deseja, digite uma das opções abaixo, e escolha uma: [Environment]::OSVersion.Version.ToString(1) [Environment]::OSVersion.Version.ToString(2) [Environment]::OSVersion.Version.ToString(3) [Environment]::OSVersion.Version.ToString(4) Em um script .ps1, para lançar este conteúdo em uma variável: $versao_windows = [Environment]::OSVersion.Version.ToString(2)    Exemplo: $versao_windows = [Environment]::OSVersion.Version.ToString(2) if ($versao_windows -eq '6.0') { Write-Host "Você está usando Windows Vista." } else { ...