Está en la página 1de 8

Filosofa UNIX/Linux

Escribir programas que hagan una sola cosa pero que lo hagan bien
Escribir programas que trabajen en conjunto
Escribir programas para manejar "text streams", porque es la interfaz universal
-

Prctico y basado en la experiencia


No se espera que este basado en mtodos oficiales o estndares pero si en la habilidad
que la cultura Unix transmite
Bottom Up y no Top Down
Minimalista: Menos es Mas

Frases Celebres
La salida de un programa es la entrada de otro programa
No dudar en rehacer de nuevo secciones de cdigo y reconstruir todo de nuevo
Unix es bsicamente un sistema operativo simple, pero tienes que ser un genio para
entender su sencillez (simplicidad)
Aquellos que no entienden UNIX estn condenados a reinventarlo pobremente
Conclusin:
UNIX y C el fundamento de TODO

Qu es PowerShell?
Windows PowerShell es un nuevo shell de lnea de comandos de Windows que se
ha diseado expresamente para los administradores de sistemas
Windows PowerShell tiene 2 diferencias fundamentales:

No procesa texto, sino objetos de la plataforma .NET.


Ofrece comandos integrados que permiten seguir utilizando las herramientas
tradicionales de Windows, como ipconfig, route, netstat, etc.

Primeros pasos
Comandos:

Los comandos ejecutan una sola funcin y son conocidos como commandlets o
cmdlets
Los cmdlets siguen el patrn: verbosustantivo

Verbos usados: get, set, write, start, stop, remove, add, etc
get (recuperar datos), set (establecer o fijar datos)

Ejemplos de cmdlets: gethelp, getservice, getprocess


Los cmdlets tienen Alias con nombres de comandos de UNIX y CMD, adems de
tener alias reducidos (abreviacin del cmdlet)

Formato:
[cmdlet]
[cmdlet] [parametro]
[cmdlet] [parametro] [parametro] [argumento]
[cmdlet] [parametro] [parametro] [argumento1], [argumento2]
Parmetro: variable que puede ser aceptado por un comando
Argumento: valor asignado aun parmetro

Cmdlets bsicos:
GetHelp
GetCommand
GetHelp [cmdlet]
Gethelp [cmdlet] detailed

GetAlias
GetChilditem
Clsicos:
CMDLET

Alias

GetChilditem
GetLocation
SetLocation

dir
pwd
cd

Administracin:
GetService
GetProcess
Stopprocess
Salida standard:
Writehost
Salida a un archivo:
Gethelp > salida.txt
Poltica de ejecucin:
GetExecutionPolicy
SetExecutionPolicy
Mas ejemplos...
GetHelp GetService examples
GetHelp GetService parameter name

Pipes
GetProcess | GetMember
GetProcess | more
GetProcess | SortObject
Mas ejemplos
Ordenar procesos por Nombre de Proceso

GetProcess | SortBbject ProcessName


Ordenar procesos por Nombre de Proceso en orden ascedente
GetProcess | SortBbject ProcessName descending

Formateo de Salida
FormatList
FormatTable
SelectObject

Formatea la salida, en la cual cada propiedad aparece lnea por lnea


Formatea la salida como tabla
Selecciona un propiedad especifica de un objeto o objetos

Ej.
GetCommand | Formattable Name, CommandType
GetCommand | Formatlist Name, CommandType
GetCommand | SelectObject Name, CommandType
GetProcess | FormatTable id, name, path autosize

Expresiones:
35 * 7
(200/6.9)

Variables:
Variables en Powershell tienen el prefijo $
Ej.
$ps = GetProcess
$ps
$ps[0]
$CambioDolar = 35*6.97
$CambioDolar
Variables Predefinidas:
SetLocation variable:
GetChildItem
Variables especiales:

$Error
$_

Contiene el mensaje de error en la sesin actual


Contiene el objeto actual dentro de un pipe

Ej.
GetService | whereobject {$_.name eq tlntsvr}
SetLocation c:\noexiste
$Error

Uso de propiedades y mtodos


GetMember

Obtiene informacin de objetos y coleccin de objetos

GetService | GetMember
(GetService tlntsvr).DisplayName
(GetService tlntsvr).get_status( )
$wincmd = GetProcess | whereobject {$_.name match wincmd}
$wincmd.id
$wincmd.kill( )
$ps = GetProcess; $ps[$ps.count1]; $ps[$ps.count1].kill( )
GetService | ForEachObject {writehost $_.DisplayName, " : ", $_.get_status()}
GetProcess | WhereObject {$_.name match "wincmd"} | ForEachObject {$_.kill()}

Comparaciones
lt
<
le
<=
gt
>
ge
>=
eq
Equal to
ne
!=
like
notlike
match
Ej.
GetProcess | WhereObject {$_.name like "s*"}
GetProcess | WhereObject {$_.name match "explorer"}

GetProcess | WhereObject {$_.name match "^s"}


GetProcess | WhereObject {$_.name match "m$"}
GetProcess | WhereObject {$_.cpu gt 40}

Procesando Archivos
Leer/Agregar contenido a archivo de texto:
GetContent C:\boot.ini
$archivo = GetContent
$archivo[0]

C:\boot.ini

GetContent C:\boot.ini | MeasureObject line word character


Agregar Contenido a Archivo de Texto:
AddContent c:\ejemplo.txt value Hola

Archivos & Directorios


Crear Archivos & Directorios:
NewItem path . name test1.txt type file
NewItem path c:\testdir type directory
Nota: mkdir tambien crea directorios
Copiar/Mover/Remover:
CopyItem path c:\test recurse c:\nuevo
MoveItem path c:\test recurse
RemoveItem c:\test recurse
Listar Recursivamente:
GetChildItem c:\test\ recurse
Mostrar todos los archivos (incluyendo archivos ocultos):
GetChildItem force | FormatTable name, attributes, mode
Agrupar Elementos:
GetCommand CommandType all | groupobject CommandType

Exportar la salida a un archivo


GetProcess | outfile c:\borrame.txt
GetProcess | ExportCsv c:\borrame.csv
GetProcess | ExportClixml c:\borrame.xml
GetProcess | ConvertToHtml > c:\test\test.html
GetService | ConvertTohtml Property Name, Status > c:\test\algo.htm

Procesos/Servicios
StopProcess [ID]
StartService name [nombre servicio]
E.g.
StartService name tlntsvr

Registro de Windows
Acceder al registro:
SetLocation Registry::
GetChildItem
Acceder a una localizacin especifica del registro:
SetLocation HKLM:\software\microsoft\windows\CurrentVersion
Listar Claves:
SetLocation HKLM:\software\microsoft\windows\CurrentVersion
GetChildItem
Listar Valor:
SetLocation HKLM:\software\microsoft\windows\CurrentVersion\run
GetItemProperty .
SetLocation HKLM:\software\microsoft\windows\CurrentVersion\
GetItemProperty Run

Agregar Valor:
SetLocation HKLM:\software\microsoft\windows\CurrentVersion\
SetItemProperty path . name "PSInfo" type "string" value "Agregado desde
PowerShell"
Renombrar Valor:
SetLocation HKLM:\software\microsoft\windows\CurrentVersion\
RenameItemProperty path . name PSInfo newname "PowerShell"
GetItemProperty .
Modificar Valor:
SetItemProperty path . name "PSInfo" type "string" value "Agregado desde
PowerShell"
SetItemProperty path . name "PSInfo" type "string" value "Nuevo Valor"
Borrar Clave:
RemoveItemProperty path HKLM:\software\microsoft\windows\CurrentVersion\Run
name PowerShell

Log del Sistema


Listar logs:
GetEventLog list
Listar contenido:
GetEventLog system

También podría gustarte