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!
Lauro Resende
Porque TI é isso ai.
quinta-feira, 12 de julho de 2018
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
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"
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"}
}
Assinar:
Postagens (Atom)