RSS
Facebook
G+

Buscador de IntercambioSOS:


Retroceder   Foro de Ayuda IntercambiosvirtualeS > Soporte Sobre: Software > Sistemas Operativos > Windows Vista & 7

Respuesta
 
Herramientas Desplegado
Antiguo 29-jun-2010     #1
Predeterminado Que es powershell ?. Ejemplos básicos para familiarizarse con la herramienta.

Muchos me preguntan. Y ahora que es este powershell ?. Es un cmd más potente ?. Me dicen que es un poderoso entorno de programación, pero parece ser una consola de comandos rústica. Me sirve ?. En que me va afectar a mi que estoy con mi Windows 2003 o en que mejoraría mi vida si cambio al Windows 2008 ?.
Para los que hemos trabajado con UNIX y Linux nos parecía obvia la llegada de un lenguaje similar a PERL. Es decir, un lenguaje potente para manejar variables, ciclos, etc, etc.
Actualmente el cmd era muy limitado para la programación. El Visual Script surgió como una alternativa para automatizar tareas, pero es relativamente lento y se necesitan muchas líneas de código para tareas sencillas que en otros lenguajes como PERL se harían mas fácilmente.
No se asusten los que no saben nada de PERL. Voy a resumir lo que hace powershell. Powershell permite automatizar tareas de administración de servidores de una manera rápida, sencilla y eficiente.
Por ejemplo, se puede navegar y cambiar el registro fácilmente, apagar servicios, manejar listas, etc.
Para gente que le gusta UNIX/Linux esto les va a hacer gustar más del sistema operativo Windows. Trata de hacer que se pueda navegar a registros, procesos. Lo vuelve al Windows mucho más fácil de manipular mediante comandos.
Si usted usa scripts para automatizar tareas de Windows aprender powershell será de gran utilidad. Si usted es un usuario simple y rupestre que nunca programó nada de tareas (ni lo piensa hacer), powershell es una porquería que no tiene ninguna utilidad.

Instalación.
El Windows 2008 y el SQL Server 2008 vienen con el powershell incorporado. También se lo puede bajar de la página oficial de Microsoft.
http://www.microsoft.com/windowsserv.../download.mspx
Tal vez necesiten bajarse el .net framework 2 o superior que en síntesis son librerías requeridas.
http://www.microsoft.com/downloads/d...displaylang=en

Comenzando mis primeros comandos.
Una vez instalado, puede comenzar a jugar con el programa.
Voy a mostrar cómo crear alias de comandos (poner mi propio nombre a los comandos). Por defecto ya hay varios aliases. Por ejemplo yo use en vez del comando get-help para tener ayuda el comando man y también se puede usar el comando help. Entonces uno puede cambiar el nombre a sus comandos y crear nuevos ¡!.
Posteriormente mostrare como crear registros, apagar servicios, procesos.

Como hacer hola mundo
PS C:\> echo ¨hola mundo¨

Como hacer usar variables en powershell
PS C:\>$var=hola mundo
PS C:\>echo $var

Como obtener la ayuda de un comando (ejemplo dir)
Existen tres maneras
PS C:\>get-help dir
PS C:\>man dir
PS C:\>help dir

Para obtener una lista de todos los comandos powershell
PS C:\>get-help *

Para obtener ayuda y ejemplos de todos los comandos powershell
http://technet.microsoft.com/en-us/l.../dd347701.aspx


Mostrar los drives del sistema
Get-PSDrive.
Este comando permite mostrar todos los drives. En esta sección la novedad es que podemos navegar en el registro de Windows.

>Uso del alias
Para cambiar de nombre a diferentes comandos: Powershell utiliza lo que llamamos alias. Un alias es un sobrenombre que le podemos poner al comando. Por ejemplo:

PS C:\> set-alias get-drive get-psdrive

Esto transforma al comando get-psdrive a get-drive. De ahora en adelante si corremos el comando:

PS C:\> get-drive

Drives realizará la misma función del comando get-psdrive. Parece lindo no ?. Estaba emocionado hasta que me di cuenta que al cerrar el powershell (con exit) y al abrirlo de nuevo ya no funcionaba mi nuevo comando.
La forma más fácil de solucionar esto es usando el profile. En el profile se escribe el comando y listo. Sin embargo si no tenemos profile hay que crearlo y agregar nuestro set-alias get-drive get-psdrive.
Para ver si existe el profile:

PS C:\> test-path $profile

Si sale false hay que crearlo con:

PS C:\> New-Item -Path $Profile -ItemType file –Force

Luego editamos el profile:

PS C:\> Notepad $profile

Ahora en el archivo notepad colocamos esto:

set-alias get-drive get-psdrive

Finalmente, salvamos el archivo y cerramos y abrimos el powershell


>REGISTROS


· Para navegar en el registro se pone:

PS C:\> cd hklm:

Para regresar al drive c y dejar de navegar en el registro:

· PS C:\> c:

Para limpiar la pantalla en powershell

· PS C:\> cls

· Para ver ir al registro hkey local machine

PS C:\> cd hklm:

· Para ir al registro software\clients\Calendar\Microsoft Outlook\protocols

· PS HKLM:\> cd software\clients\Calendar\Microsoft*\
Protocols

Algo que no me agrada es que no funciona el cd.. para volver atrás tiene que ser cd .. (con el espacio como en UNIX/LINUX)
Para crear un registro:

· PS HKLM:\software\clients\Calendar\Microsoft Outlook\Protocols>mkdir reg_nuevo

Para volver a la raíz en powershell:
PS HKLM:\software\clients\Calendar\Microsoft Outlook\Protocols>cd /
Para listar los registros dentro de registros (existen varias formas. Get-ChildItem, ls, dir,gci. Las 4 dan los mismos resultados).

PS HKLM:\>Get-ChildItem
PS HKLM:\>ls
PS HKLM:\>gci
PS HKLM:\>dir

Para volver al disco c
PS HKLM:\> c:











PROCESOS

Para mostrar una lista de procesos:
PS C:\> Get-Process
Para detener un proceso:

PS C:\> Stop-Process -processname [process]
Para listar servicios:

>Servicios

PS C:\>Get-service

Para iniciar un servicio:

PS C:\>start-service [service_name]

Para detener un servicio:

PS C:\>stop-service [service_name]






EJECUCION DE SCRIPTS

Para ejecutar y habilitar un script en powershell
Primero cree un archivo que se llame prueba.ps1 con el siguiente contenido:

/*Este programa muestra el mensaje hola mundo*/
Echo “hola mundo”

Por defecto le va a salir un mensaje de error cuando trate de ejecutarlo:

PS C:\> ./prueba.ps1
Para habilitar la ejecución de scripts y que no salga un mensaje de error:

PS C:\> set-executionpolicy unrestricted
Una vez habilitado, la ejecución en powershell funciona:

PS C:\> ./prueba.ps1

Para ejecutar un archivo de powershell ps1 con doble click.
Este es un poquito más difícil de lo que pensé.
Los archivos de powershell (Ps1) no funcionan con doble click así que hay que invocarlo desde el cmd.
Esto por razones de seguridad .

Paso 1.
Tener un archivo con extensión ps1. Mi archivo se va a llamar creardir.ps1. Este ejemplo crea un directorio que se llama Daniel.

Archivo: creardir.ps1
Contenido: mkdir Daniel

Paso 2. Crear un archivo con extensión cmd que llame al archivo creardir.ps1.
Archivo: createdir.cmd
Contenido: powershell.exe -command .\creardir.ps1

Lo único que queda es hacer doble click en el cmd.

Para crear un evento en el visor de eventos:


PS C:\Documents and Settings\user> EVENTCREATE /T ERROR /ID 1000 /L APPLICATION /D "Test Error"

Este mensaje le permitirá generar un evento de error con ID 100 en la categoria de aplicaciones.

Para ver los eventos del visor de eventos en powershell:
PS C:\Documents and Settings\user> Get-EventLog -logName "Application"

FUENTE

PD: ESTE TRABAJO NO ES MIO AQUI APRENDI A USARLO LO TENIA GUARDADO EN UN WORD LO ENCONTRE Y PENSE QUE SERIA DE GRAN AYUDA PARA UDS.... SALUDOS
Enviar un mensaje por MSN a felcon Enviar un mensaje por Skype™ a felcon Responder Citando
Los siguientes 8 usuarios agradecen a felcon por este mensaje:
Alambre (30-jun-2010), Artemis (30-jun-2010), baduser (29-jun-2010), Eloy58 (29-jun-2010), Ghost (29-jun-2010), jchierro (30-jun-2010), kinp (30-jun-2010), luillilimon (30-jun-2010)
Antiguo 29-jun-2010     #2
Predeterminado

Interesante gracias por compartirlo.

Saludos.
Responder Citando
Los siguientes 6 usuarios agradecen a Ghost por este mensaje:
Alambre (30-jun-2010), Artemis (30-jun-2010), baduser (29-jun-2010), felcon (29-jun-2010), jchierro (30-jun-2010), kinp (30-jun-2010)
Antiguo 29-jun-2010     #3
Predeterminado

Muy buena info compañero.... buen post....

gracias

salu2
Responder Citando
Los siguientes 5 usuarios agradecen a baduser por este mensaje:
Alambre (30-jun-2010), Artemis (30-jun-2010), felcon (29-jun-2010), jchierro (30-jun-2010), kinp (30-jun-2010)
Antiguo 29-jun-2010     #4
Predeterminado

gracias por la info


¿Es usted un demonio?
Soy un hombre. Y por lo tanto tengo dentro de mí todos los demonios.
Enviar un mensaje por MSN a snake1288 Responder Citando
Los siguientes 5 usuarios agradecen a snake1288 por este mensaje:
Alambre (30-jun-2010), Artemis (30-jun-2010), felcon (30-jun-2010), jchierro (30-jun-2010), kinp (30-jun-2010)
Antiguo 30-jun-2010     #5
Predeterminado

Buen post

cabe destacar que es una excelente herramienta en el mundo windows para automatismo de tarareas comunes, corre desde xp y ya viene en win 7 tambien.
La primera ves se tiene que ejecutar manualmente la consola y darle permisos si es que no tenemos certificados para los scripts sea desde uno ya echo o del editor de scripts

automatizar arranque maquina virtual vmware works~.
Spoiler:
write-host $re***1 Iniciando win server -background "RED" -foreground "BLACk"
$vmrun = “C:\Program Files (x86)\VMware\VMware Workstation\”
cd $vmrun
# obtener las maquinas corriendo descomentar.\vmrun -T ws list
# .\vmrun -T ws list
# despues obtener lista snaps para una maquina
# .\vmrun -T ws listSnapshots "C:\Users\Alambre\Documents\Virtual Machines\Windows XP Professional (3)\Windows XP Professional (3).vmx"
# revertir al snap y ganar el tiempo de arranque
.\vmrun -T ws revertToSnapshot "C:\Users\Alambre\Documents\Virtual Machines\Windows XP Professional (3)\Windows XP Professional (3).vmx" andando
# iniciar la maquina
.\vmrun -T ws start "C:\Users\Alambre\Documents\Virtual Machines\Windows XP Professional (3)\Windows XP Professional (3).vmx"
#mensaje de salida (segun que permisos de ejecucion se tenga nunca lo veras) y quedara en terminal
write-host $re***1 es OK -background "GREEN" -foreground "BLACk"


automatizar coneccion y desconecion en base a ping respuesta~.
Spoiler:

esto funciona en xp, 2003, 2008 porque uso el devcon + rasdial + dynsite + no-ip (rebuscado)

$re***='mi ip 1'
$re***1='mi ip 2'
$i=1

$startTime1= Get-Date -displayhint time


rasdial "mi coneccion" "mi user" "mi pass"
for ($i -le 5; $i++)
{

$startTime= Get-Date -displayhint time
"Son las`t`t" + $startTime

Write-Host Bucle $i -background "BLUE" -foreground "BLACk"
rasdial "mi coneccion3" "mi user" "mi pass""

#:inicio
Get-Date -displayhint time


$ALivea=0
$ALivea=get-wmiobject -Class win32_pingstatus -Filter "Address='$re***1'" | Select-Object statuscode

if($ALivea.statuscode -eq 0)
{write-host $re***1 es ALCANZABLE -background "GREEN" -foreground "BLACk"
sleep 5
write-host $re***1 es OK -background "GREEN" -foreground "BLACk"
sleep 25}
else
{write-host $re***1 is NOT ALCANZABLE -background "RED" -foreground "BLACk"


write-host Desconectando -background "RED" -foreground "BLACk"
C:\Temp1\i386\devcon disable *PID_49*
sleep 3

write-host Conectando -background "RED" -foreground "BLACk"
C:\Temp1\i386\devcon enable *PID_49*

sleep 3

write-host Conectando -background "RED" -foreground "BLACk"
C:\Temp1\i386\devcon enable *PID_49*
sleep 15
write-host Marcando -background "YELLOW" -foreground "BLACk"
ipconfig /flushdns
rasdial "mi coneccion" "mi user" "mi pass"
sleep 10
rasdial "mi coneccion" "mi user" "mi pass"
sleep 25
write-host dns -background "YELLOW" -foreground "BLACk"
ipconfig /flushdns
}

$ALivea=0
$ALivea=get-wmiobject -Class win32_pingstatus -Filter "Address='$re***'" | Select-Object statuscode

if($ALivea.statuscode -eq 0)
{write-host $re*** es ALCANZABLE -background "GREEN" -foreground "BLACk"
sleep 5
write-host $re*** es OK -background "GREEN" -foreground "BLACk"
sleep 25}
else
{write-host $re*** is NOT ALCANZABLE -background "RED" -foreground "BLACk"


write-host Desconectando -background "RED" -foreground "BLACk"
C:\Temp1\i386\devcon disable *PID_663E*
sleep 3

write-host Conectando -background "RED" -foreground "BLACk"
C:\Temp1\i386\devcon enable *PID_663E*

sleep 3

write-host Conectando -background "RED" -foreground "BLACk"
C:\Temp1\i386\devcon enable *PID_663E*
sleep 15
write-host Marcando -background "YELLOW" -foreground "BLACk"
ipconfig /flushdns
rasdial "mi coneccion2" "mi user" "mi pass"
sleep 10
rasdial "mi coneccion2" "mi user" "mi pass"
sleep 25
write-host dns -background "YELLOW" -foreground "BLACk"
ipconfig /flushdns
}
Write-Host PAUSA 120 segundos -background "BLUE" -foreground "BLACk"
sleep 120
$endTime = Get-Date -displayhint time

"Demoro`t`t " + $startTime.DateTime + "`t`t" + [int]($endTime - $startTime).TotalSeconds + " segundos"
"Desde las`t`t" + $startTime1.DateTime + "`t`t" + [int]($endTime - $startTime1).TotalMinutes + " minutos"
#goto :inicio
}
captura




si vas mas a la pesada, existe hecho por la comunidad de usuarios el powergui

http://powergui.org/

que seria como una consola de administracion con plugins para cosas concretas, desde gestionar el pc (servicios, procesos) a hacer lo mismo pero dentr ode maquinas virtuales por ejemplo gestionar proceesos dentro de vmware server o vsphere



Saludos
Responder Citando
Los siguientes 5 usuarios agradecen a Alambre por este mensaje:
Artemis (30-jun-2010), baduser (30-jun-2010), felcon (30-jun-2010), jchierro (30-jun-2010), kinp (30-jun-2010)
Antiguo 30-jun-2010     #6
Bueno

Excelente post amigo felcon sige asi
Responder Citando
Los siguientes 5 usuarios agradecen a kinp por este mensaje:
Alambre (30-jun-2010), Artemis (30-jun-2010), baduser (30-jun-2010), felcon (30-jun-2010), jchierro (30-jun-2010)
Antiguo 30-jun-2010     #7
Predeterminado

Omg solo maestros acá alambre sama y felcon sama, hehehe gracias por la info cuando termine mis estudios actuales posiblemente estudie powershell jijiji

Responder Citando
Los siguientes 4 usuarios agradecen a Artemis por este mensaje:
Alambre (30-jun-2010), baduser (30-jun-2010), felcon (30-jun-2010), jchierro (30-jun-2010)
Antiguo 30-jun-2010     #8
Caluroso

Excelente post amigo.

Responder Citando
Los siguientes 3 usuarios agradecen a jchierro por este mensaje:
Alambre (30-jun-2010), baduser (30-jun-2010), felcon (30-jun-2010)
Respuesta


(0 miembros y 1 visitantes)
 
Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado

Ir al Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Trucos y consejos para Windows 7 Thundera Windows Vista & 7 64 08-dic-2017 17:14
PLACA BASE: Componentes y sus funciones Eloy58 PC's Desktops 45 28-sep-2013 13:25
Algunos Mmorpg's AgUiLa32 Juegos PC 12 04-feb-2013 06:20
problemas con el programador de tareas windows 7 vicho Windows Vista & 7 20 12-nov-2010 03:58


Desarrollado por: vBulletin® Versión 3.8.1
Derechos de Autor ©2000 - 2018, Jelsoft Enterprises Ltd.
Ad Management by RedTyger