Powershell: script lanzadera con otras credenciales
Hoy vamos a explicar como lanzar un script de powershell PS1, mediante otro script PS1, que actuará de lanzadera.
Este script lanzadera, abrirá una nueva sesión, con un usuario diferente, normalmente con permisos mas elevados.
Esto es interesante si necesitas realizar ciertas acciones con diferentes usuarios y no quieres elevar los permisos a tus usuarios en los sistemas.
Script: https://gist.github.com/raulunzue/382bd5532c9dfeb1cb1322b5ce428dc9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# PASAMOS CREDENCIALES EN BASE64 - USUARIO $Usuario = 'ZQBsAGIAbABvAGcAZABlAG4AZQBnAHUA'; $otroUsuario = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($Usuario)) # PASAMOS CREDENCIALES EN BASE64 - CONTRASEÑA $Pw = 'ZQBsAGIAbABvAGcAZABlAG4AZQBnAHUA' $otroUsuarioClave = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($Pw)) # NOMBRE DE SERVER $hostname = c:\windows\system32\hostname.exe # CONEXION CON CREDENCIALES ELEVADAS $otroUsuarioClaveSS = $otroUsuarioClave | ConvertTo-SecureString -Force -AsPlainText $myCredencial = New-Object System.Management.Automation.PsCredential("$env:userdomain\$otroUsuario", $otroUsuarioClaveSS) $otroUsuarioSesion = New-PSSession -ComputerName $hostname -Credential $myCredencial # PUNTO DE CONTROL Write-Host "Ejecutando bajo el contexto de: $env:userdomain\$env:username" # EJECUCION SCRIPT Invoke-Command -Session $otroUsuarioSesion -FilePath "C:\script-prueba.ps1" # PUNTO DE CONTROL Write-Host "Ejecutando bajo el contexto de: $env:userdomain\$env:username" # CIERRE SESION Get-PSSession | Remove-PSSession |
Espero os parezca interesante…ya que es gratis, comparte ;P
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?