quinta-feira, 12 de julho de 2018

Fala galera!


Muito tempo sem postar nesse blog porém muito conhecimento acumulado.
(Não me julguem)


Bom, quem nunca usou o famoso psexec??
 Pois é , essa ferramenta do famoso Mark Russinovich já ajudou muita gente. Hoje vou ensinar a como executar comandos remotos via powershell SEM USAR O PSEXEC (apenas WMI).

Quando eu usava o psexec + powershell era assim que eu fazia:







Agora, para não precisar usar o psexec, basta fazer desta forma:




Dessa forma, você consegue executar qualquer comando remoto sem precisar de ferramentas de terceiros, tudo funciona de forma nativa.

;)
Abraços!


sexta-feira, 10 de maio de 2013

Copiando Pastas com suas permissões

Olá,

Para você listar as permissões de uma pasta, utilize o comando get-acl

ex: get-acl c:\log






 
Utilize (get-acl c:\log).access para melhor a visualização.


























Podemos pegar o resultado e armazenar em uma variavel.

$acl= get-acl c:\log

E aplicar essas permissoes em outra pasta:

set-acl c:\log2 $acl

Com isso podemos copiar uma pasta e aplicar suas permissões originais.

Abaixo um script que clona uma estrutura de pastas e sub pastas com suas permissões originais.


cls

write-host "Copia pasta e subpastas com suas permissoes"
$PastaDeOrigem = Read-Host "Digite o caminho da pasta de origem:"
$PastaRaiz = Get-ChildItem -Recurse -Force $PastaDeOrigem
$PastaDeDestino = Read-Host "Digite o caminho da pasta de destino:"

#criando pasta raiz
$Permissoes = Get-Acl $PastaDeOrigem
if(Test-Path $PastaDeDestino){

  Set-Acl $PastaDeDestino $Permissoes

  }
  else{
       New-Item -ItemType directory -Path $PastaDeDestino
       Set-Acl $PastaDeDestino $Permissoes   
     }
#criando subpastas

foreach($PastaAtual in $PastaRaiz){
 
    

     [string]$pasta = $PastaAtual.FullName    
     $pastalower = $Pasta.ToLower()    
     $newfilename = $pastalower.Replace($PastaDeOrigem,$PastaDeDestino)
     $Permissoes = Get-Acl $pastalower
     New-Item -ItemType directory -Path $newfilename

     Set-Acl $newfilename $Permissoes
 
    }




Abraços

 
 

 








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"

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 repository

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

 powershell.com

The place for powershell people: home of dr. tobias weltner, powershell mvp

Scriptinganswers.com



Poshoholic

poshoholic.com


Totally addicted to PowerShell and automation

heyscriptingguy

Learn about Windows PowerShell

Under the stairs

tfl09.blogspot.com


Thomas Lee's collection of random interesting items, views on things, mainly IT related, as well as the occasional rant.

PeetersOnline

peetersonline.nl

Virtually Everything about Powershell and PowerCLI

techprosaic

halr9000.com

 


Powershell & other stuff

The powershell guy

thepowershellguy.com

 

get-Shell | where {$_.pipeline -contains Objects}

Huddled masses

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

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"}

}