sexta-feira, 19 de outubro de 2012
Descompactar um arquivo usando powershell
Segue abaixo como descompactar arquivos usando powershell.
$Source = "c:\arquivo.zip"
$Destination = "c:\pastadestino"
Unblock-File $Destination
#apenas no PowerShell v3
#chama a aplicação do zip e abre o arquivo zip
$helper = New-Object -ComObject Shell.Application
$files = $helper.NameSpace($Source).Items()
#copia os arquivos para pasta de destino
$helper.NameSpace($Destination).CopyHere($files)
=============== ATUALIZANDO O POST =======================
Só para auxiliar os proximos.
No Powershell v5 você pode utilizar os seguintes cmdlets
Para descompactar.
Expand-Archive -Path $Source -DestinationPath $Destination
https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.archive/expand-archive
quarta-feira, 17 de outubro de 2012
Limpando campo scriptpath - powershell
Recentemente tive que limpar o campo "scriptpath" de todos os usuários do AD.
Abaixo o script:
#carrega o modulo do AD
import-module ActiveDirectory
get-aduser -filter{scriptpath -like "*"} -properties scriptpath | set-aduser -scriptpath $null
Primeira parte do comando:
get-aduser -filter{scriptpath -like "*"} -properties scriptpath
Lista todos os usuários que possuem o campo "scriptpath" preenchido.
Segunda parte do comando:
set-aduser -scriptpath $null
Atualiza o campo "scriptpath" do usuário encontrado para um valor nulo, ou você pode adicionar um novo valor no campo colocando outra variável ou ate mesmo uma string no lugar da variável "$null".
ex.:
get-aduser -filter{scriptpath -like "*"} -properties scriptpath | set-aduser -scriptpath "meuscript.bat"
Abaixo o script:
#carrega o modulo do AD
import-module ActiveDirectory
get-aduser -filter{scriptpath -like "*"} -properties scriptpath | set-aduser -scriptpath $null
Primeira parte do comando:
get-aduser -filter{scriptpath -like "*"} -properties scriptpath
Lista todos os usuários que possuem o campo "scriptpath" preenchido.
Segunda parte do comando:
set-aduser -scriptpath $null
Atualiza o campo "scriptpath" do usuário encontrado para um valor nulo, ou você pode adicionar um novo valor no campo colocando outra variável ou ate mesmo uma string no lugar da variável "$null".
ex.:
get-aduser -filter{scriptpath -like "*"} -properties scriptpath | set-aduser -scriptpath "meuscript.bat"
segunda-feira, 15 de outubro de 2012
Lista de sites com dicas, scripts e muita informação sobre PowerShell.
SITE/LINK
|
Descrição
|
Poweshell code repositoryposhcode.org |
Is a repository of PowerShell scripts that
are free for public use. As you find things useful, we only ask that you give
back to our community.
|
Powershell.compowershell.com |
The place for
powershell people: home of dr. tobias weltner, powershell mvp
|
Scriptinganswers.com |
|
Poshoholicposhoholic.com |
Totally addicted to PowerShell and automation
|
heyscriptingguy |
Learn about Windows PowerShell
|
Under the stairstfl09.blogspot.com |
Thomas Lee's
collection of random interesting items, views on things, mainly IT related,
as well as the occasional rant.
|
PeetersOnlinepeetersonline.nl |
Virtually Everything about Powershell and PowerCLI |
techprosaichalr9000.com |
Powershell & other stuff
|
The powershell guythepowershellguy.com |
get-Shell | where
{$_.pipeline -contains Objects}
|
Huddled masseshuddledmasses.org |
You
can do more than breathe for free...
|
sábado, 13 de outubro de 2012
Conectando no office 365
Bom dia, boa tarde e boa noite.
A moda agora é office 365, Exchange na nuvem, 50 gigas de espaço, muitas novidades.
Uma grande vantagem que o office 365 possibilita é a conexão com o powershell de qualquer lugar, bastar passar o link, usuário e senha.
Veja como:
$liveCred = Get-Credential -UserName admin@seudominio.onmicrosoft.com -Message "Office 365"
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session
A moda agora é office 365, Exchange na nuvem, 50 gigas de espaço, muitas novidades.
Uma grande vantagem que o office 365 possibilita é a conexão com o powershell de qualquer lugar, bastar passar o link, usuário e senha.
Veja como:
$liveCred = Get-Credential -UserName admin@seudominio.onmicrosoft.com -Message "Office 365"
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session
Digite o usuário e senha do seu domínio e assim que a conexão for estabelecida você já pode executar comandos como get-mailbox, com o powershell 3.0 é só apertar ctrl + espaço que os cmdlets disponíveis vão aparecer.
terça-feira, 28 de fevereiro de 2012
Olá,
Vamos falar sobre o modulo do active directory no power shell.
Não vou entrar em detalhes de como é feita a instalação, mas já adianto que só podera ser feita em windows server 2008 r2, para mais detalhes da instalação: http://www.mikepfeiffer.net
Segundo o http://technet.microsoft.com
O Módulo do Active Directory para Windows PowerShell fornece script de linha de comando para tarefas administrativas, de configuração e de diagnóstico, com um vocabulário e uma sintaxe consistentes. O Módulo Active Directory habilita a capacidade de gerenciamento de ponta a ponta com o Exchange Server, a Diretiva de Grupo e outros serviços.
Ou seja, mais cmdlets voltados para as ferramentas microsoft (Ad,Exchange,SystemCenter...)
#vamos começar importando o modulo
import module activedirectory new-psdrive -name dominio -psprovider -activerictory -root "" -server srv
#dominio-> nome do dominio que deseja conectar
#srv-> nome completo do servidor DC
podemos agora adicionar varios novos comandos:
#traz informações do usuário no ad + propiedade mail e title
get-aduser nomedouser -properties mail,title
#podemos jogar isso para dentro de uma variavel
$users = get-aduser nomedouser -properties mail,title
foreach($user in $users){
write-host $user.samaccoutname
}
#ou podemos alterar algum campo
$users = get-aduser nomedouser -properties mail,title
foreach($user in $users){
write-host $user.samaccoutname
set-aduser $user.samaccountname -replace @{title="operacao"}
}
Vamos falar sobre o modulo do active directory no power shell.
Não vou entrar em detalhes de como é feita a instalação, mas já adianto que só podera ser feita em windows server 2008 r2, para mais detalhes da instalação: http://www.mikepfeiffer.net
Segundo o http://technet.microsoft.com
O Módulo do Active Directory para Windows PowerShell fornece script de linha de comando para tarefas administrativas, de configuração e de diagnóstico, com um vocabulário e uma sintaxe consistentes. O Módulo Active Directory habilita a capacidade de gerenciamento de ponta a ponta com o Exchange Server, a Diretiva de Grupo e outros serviços.
Ou seja, mais cmdlets voltados para as ferramentas microsoft (Ad,Exchange,SystemCenter...)
#vamos começar importando o modulo
import module activedirectory new-psdrive -name dominio -psprovider -activerictory -root "" -server srv
#dominio-> nome do dominio que deseja conectar
#srv-> nome completo do servidor DC
podemos agora adicionar varios novos comandos:
#traz informações do usuário no ad + propiedade mail e title
get-aduser nomedouser -properties mail,title
#podemos jogar isso para dentro de uma variavel
$users = get-aduser nomedouser -properties mail,title
foreach($user in $users){
write-host $user.samaccoutname
}
#ou podemos alterar algum campo
$users = get-aduser nomedouser -properties mail,title
foreach($user in $users){
write-host $user.samaccoutname
set-aduser $user.samaccountname -replace @{title="operacao"}
}
quarta-feira, 15 de fevereiro de 2012
Inventário
Bom dia,
Hoje vamos montar um inventário simples.
Para fazer o levantamento do inventário vamos usar WMI (Windows Manager Instrumentation), o WMI é um mecanismo simples e consistente para pesquisar informações ou parâmetros de configuração em computadores dentro de uma empresa ou corporação.
Para mais detalhes acesse o link da http://www.devmedia.com.br.
Então quais sao as informações que vamos pesquisar?
gwmi Win32_ComputerSystem -Comp nomedocomptador
gwmi Win32_OperatingSystem -Comp nomedocomptador
gwmi Win32_ComputerSystem -Comp nomedocomptador
gwmi Win32_OperatingSystem -Comp nomedocomptador
gwmi Win32_BIOS -Comp nomedocomptador
gwmi Win32_TimeZone -Comp nomedocomptador
gwmi Win32_WmiSetting -Comp nomedocomptador
gwmi Win32_Processor -Comp nomedocomptador
gwmi Win32_PhysicalMemory -Comp nomedocomptador
gwmi Win32_PhysicalMemoryArray -Comp nomedocomptador
gwmi Win32_LogicalDisk -Comp nomedocomptador
gwmi Win32_NetworkAdapterConfiguration -Comp nomedocomptador
gwmi = Get-WmiObject
Vamos usar o computersystem, o resultado sera esse:
Domain : WORKGROUP
Manufacturer : Sony Corporation
Model : VGN-CS215J
Name : LAURO-PC
PrimaryOwnerName : Lauro
TotalPhysicalMemory : 4155482112
Caso eu queria pegar somente a propiedade domain eu posso rodar o comando da seguinte maneira:
(gwmi Win32_ComputerSystem -Comp computername).domain
e assim para as outras propiedades.
ate a próxima
Hoje vamos montar um inventário simples.
Para fazer o levantamento do inventário vamos usar WMI (Windows Manager Instrumentation), o WMI é um mecanismo simples e consistente para pesquisar informações ou parâmetros de configuração em computadores dentro de uma empresa ou corporação.
Para mais detalhes acesse o link da http://www.devmedia.com.br.
Então quais sao as informações que vamos pesquisar?
gwmi Win32_ComputerSystem -Comp nomedocomptador
gwmi Win32_OperatingSystem -Comp nomedocomptador
gwmi Win32_ComputerSystem -Comp nomedocomptador
gwmi Win32_OperatingSystem -Comp nomedocomptador
gwmi Win32_BIOS -Comp nomedocomptador
gwmi Win32_TimeZone -Comp nomedocomptador
gwmi Win32_WmiSetting -Comp nomedocomptador
gwmi Win32_Processor -Comp nomedocomptador
gwmi Win32_PhysicalMemory -Comp nomedocomptador
gwmi Win32_PhysicalMemoryArray -Comp nomedocomptador
gwmi Win32_LogicalDisk -Comp nomedocomptador
gwmi Win32_NetworkAdapterConfiguration -Comp nomedocomptador
gwmi = Get-WmiObject
Vamos usar o computersystem, o resultado sera esse:
Domain : WORKGROUP
Manufacturer : Sony Corporation
Model : VGN-CS215J
Name : LAURO-PC
PrimaryOwnerName : Lauro
TotalPhysicalMemory : 4155482112
Caso eu queria pegar somente a propiedade domain eu posso rodar o comando da seguinte maneira:
(gwmi Win32_ComputerSystem -Comp computername).domain
e assim para as outras propiedades.
ate a próxima
terça-feira, 14 de fevereiro de 2012
Powershell + Excel
Estou cansado de gerar log's em txt e depois ter que colocar tudo em excel, com o powershell isso não é mais problema,você tem a opção de manipular o excel e gerar o seu relatorio direto nele.
#Nova aplicação do excel
$Excel = New-Object -Com Excel.Application
#colocando ele visivel na tela
$Excel.visible = $True
#adicionando pastas de trabalho
$Excel = $Excel.Workbooks.Add()
$Sheet1 = $Excel.Worksheets.Item(1)
#alterar nome da planilha
$Sheet1.Name = "General"
#Preencher a primeira linha
$Sheet1.Cells.Item(1,1) = "Nome"
$Sheet1.Cells.Item(1,2) = "Modelo"
$Sheet1.Cells.Item(1,3) = "CPU"
$Sheet1.Cells.Item(1,4) = "Memoria"
$Sheet1.Cells.Item(1,5) = "Sistema Operacional"
Nos próximos posts vou ensinar a popular essa planílha e adicionar mais informações.
#Nova aplicação do excel
$Excel = New-Object -Com Excel.Application
#colocando ele visivel na tela
$Excel.visible = $True
#adicionando pastas de trabalho
$Excel = $Excel.Workbooks.Add()
$Sheet1 = $Excel.Worksheets.Item(1)
#alterar nome da planilha
$Sheet1.Name = "General"
#Preencher a primeira linha
$Sheet1.Cells.Item(1,1) = "Nome"
$Sheet1.Cells.Item(1,2) = "Modelo"
$Sheet1.Cells.Item(1,3) = "CPU"
$Sheet1.Cells.Item(1,4) = "Memoria"
$Sheet1.Cells.Item(1,5) = "Sistema Operacional"
Nos próximos posts vou ensinar a popular essa planílha e adicionar mais informações.
Assinar:
Postagens (Atom)

