1 / 77

Antonio J. Emperador Sau aemperador@efor.es

Administrador de Redes. Módulo 3. Programación en PowerShell. Julio 2011. Antonio J. Emperador Sau aemperador@efor.es. 1. Introducción a la programación. 1. Introducción a la programación. Fundamentos. Estructura de un ordenador Representación de la información en un ordenador

fayre
Download Presentation

Antonio J. Emperador Sau aemperador@efor.es

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Administrador de Redes Módulo 3. Programación en PowerShell Julio 2011 Antonio J. Emperador Sau aemperador@efor.es

  2. 1. Introducción a la programación

  3. 1. Introducción a la programación Fundamentos • Estructura de un ordenador • Representación de la información en un ordenador • Sistema binario y otros sistemas de numeración • Números con signo, con decimales y con coma flotante • Representación de caracteres • Software y lenguajes de programación • Software • De sistema • De aplicación • Lenguajes • Máquina • Ensamblador • Alto nivel • Scripting

  4. 1. Introducción a la programación Fundamentos • Principios básicos de la programación estructurada • Dividir en módulos • Dividir la funcionalidad en funciones para una sola tarea • Programar funciones en estructura de bloques • Cada bloque solo puede tener un punto de entrada y de salida • Al finalizar un bloque debe continuar con otro o finalizar • Representación = Diagramas de flujo datos proceso decisión terminador entrada datos disco imprimir

  5. 1. Introducción a la programación Fundamentos • Bloques: • Secuencial • Repetitivo • De selección o bifurcación • Pasos para resolver un problema de programación • Análisis de requisitos • Diseño del programa • Codificación • Prueba del programa • Validación del programa • Optimización

  6. 1. Introducción a la programación Fundamentos • Algoritmos • Programación estructurada vs. Programación orientada a objetos • Elementos básicos de un programa • Los datos • En variables (definidas por nombre, tipo y valor) • Las instrucciones • De asignación (Variable = Expresión o mejor Variable  Expresión) • Expresiones numéricas • suma, resta, multiplicación, división y resto de div. entera • +, -, *, /, % • Expresiones condicionales o lógicas • Operadores de relación: <,>,=,<=,>=,<> (!=) • Operadores lógicos: AND, OR, NOT (&&, ||, !)

  7. 1. Introducción a la programación Fundamentos • Elementos básicos de un programa • Estructuras básicas de control • Instrucciones condicionales (SI) • Instrucciones repetitivas • MIENTRAS • REPETIR MIENTRAS • Bucle PARA

  8. 1. Introducción a la programación Metodología • Diseño • Descendente (top-down): división en módulos • Ascendente (bottom-up): reutilización de código • Codificación • Editor: creación del código • Compilador: del fuente al objeto y de él al ejecutable • Montaje o enlazado: división en ficheros y reensamble • Ejecutar • Depurar • Uso de ayuda y manuales • Documentación de aplicaciones • Manuales de desarrollo (requisitos, diseño, código comentado, plan de pruebas, plan de calidad y control de configuración) • Manuales para usuarios (manuales de instalación, de usuario y calidad) • Pruebas de software

  9. 1. Introducción a la programación Metodología • Manuales de usuario: • Descripción general • Tipo de usuarios a los que va dirigida • Diferencia con versiones anteriores (csv) • Métodos de arranque y ejecución • Restricciones y comportamiento • Comportamiento por tipología de usuario • Errores que pueden producirse • Índice alfabético • Ejercicios (a realizar en dos grupos) • Realizar la división en módulos de una aplicación para gestionar un instituto. Se considerarán los grupos, las aulas y demás recintos, los profesores, alumnos, asignaturas, calificaciones, etc. • Realizar el manual de usuario de: • Grupo 1: aplicación de un cajero automático • Grupo 2: aplicación que suma valores hasta que se mete 0

  10. 1. Introducción a la programación Tipos de datos • Clasificaciones: • Por tamaño en memoria fija o variable (estáticos y dinámicos) • Por número de elementos (básicos y complejos) • Identificadores, variables y constantes • Tipos de datos elementales: • Tipos elementales • Operadores • Tipos numéricos enteros • Tipos numéricos reales • Números complejos • Tipo carácter (ASCII) • Tipo lógico • Tipos avanzados • Arrays • Cadena de caracteres • Estructuras y punteros • Conversión de tipos

  11. 1. Introducción a la programación Tipos de datos

  12. 1. Introducción a la programación Estructuras • Tipos de estructuras: • De secuencia • De selección • De iteración • Sentencias: • If • If-else • While • For • Do-while • Switch • Break y continue

  13. 1. Introducción a la programación Funciones y subrutinas • Motivación: • Complejidad: división en módulos más pequeños • Localización más simple de errores en código • Permite trabajar a varias personas • Reutilización de código • Subrutinas, subprogramas o procedimientos (Sub) • Llamados por su nombre • Realizan acciones pero no retornan valores • Claves en programación estructurada • Funciones (Function) • Invocados como asignación a una variable o cálculo • Realizan acciones aunque lo más importante es que retornan valores (de diverso tipo, incluso matrices) • En el código debe encontrarse una asignación de valor al nombre de la función o, en otros lenguajes, una expresión return • Argumentos

  14. 1. Introducción a la programación Matrices y cadenas • Matrices: • Motivación: • Almacenar múltiples valores con un solo nombre • Series de valores • Valores interrelacionados • Utilización • Declaración • Definición • Uso • Unidimensionales y multidimensionales • Redimensionamiento • Cadenas: • Definición • Funciones de tratamiento de cadenas de string: • Len, Right, Left, Instr, …

  15. 2. Generalidades

  16. Microsoft PowerShell: ¿Qué es? Shell de línea de comandos y lenguaje de script Basado en .NET Framework Usado para la administración y automatización de tareas en Windows ¿Dónde? Sitio del producto: http://technet.microsoft.com/es-ES/scriptcenter/dd742419.aspx Sitio de descarga ver. 2: http://support.microsoft.com/kb/968929 Ayudas Ayuda de PowerShell: En línea: get-helpcomando Desde el archivo de ayuda del ISE Manuales, temas de ayuda, comandos, etc. en http://technet.microsoft.com/es-es/library/bb978525.aspx Repositorios de scripts: http://gallery.technet.microsoft.com/scriptcenter/es-es Arranque Desde Inicio – Programas – Accesorios Escribiendo en el interfaz de comandos powershell Si hay que ejecutar determinados scripts o preferencias, arrancar en modo administrador Si hay problemas, modificar Executionpolicy (con Set-ExecutionPolicy -ExecutionPolicyUnrestricted) 2. Generalidades de PowerShell

  17. Microsoft PowerShell: ¿Cómo usarlo? Como interfaz de comandos, al igual que cmd Incluye muchos comandos cmdconodidos (dir, copy, move, ipconfig…) Como interfaz de programación Creando scripts (extensión .ps1) con cualquier editor y ejecutándolos Mediante el entorno de programación PowerShell ISE Manejo del entorno Se escriben los comandos, pudiendo usar autocompletion con el [Tab] Mantiene un amplio historial de comandos: Mediante el uso de flechas de cursor (arriba/abajo) Con [F7] Comando Get-History Cmdlets Son los comandos ampliados de PowerShell Constan de verbo-nombre parámetros Ejemplos: get-helpdir, get-process w* Canalizaciones Muy importantes: redirigen la salida a otro comando Ejemplos: get-process |format-list, get-process |Out-GridView 2. Generalidades de PowerShell

  18. Lenguaje: Comentarios con # Si queremos un mismo comando en dos líneas, acabar la primera con ` (acento grave francés) Varios comandos en una línea separados por ; (punto y coma) Para escribir una respuesta, basta con escribir el comando o variable Para pedir datos: Mediante parámetros del script que hagamos (directiva param) Mediante ventana interactiva (cmdletRead-host) Variables: Empiezan por el símbolo $ y contienen letras, números o subrayado (_) Su declaración y tipo no es necesaria, pero pueden almacenar cualquier tipo de información, incluidos objetos Constantes: No hay una expresión fija, debe utilizarseSet-Variable –namenom_const –optionreadonly –valuevalor Hay variables predefinidas ($true, $false, $home, $pshome, $host, $error…) Ver las variables: Get-Variable La última variable utilizada puede invocarse por $_ 2. Generalidades de PowerShell

  19. Variables Tipos 2. Generalidades de PowerShell

  20. Instrucciones: Operadores: Aritméticos: +, -, *, /, % De asignación; =, +=, -=, *=, /=, %= De comparación: -eq, -ne, -gt, -lt, -le, -ge También coincidencia (-match, -nomatch), sustitución (-replace) y de patrones (-like, -nolike) Lógicos: -and, -or, -xor, -not, ! De redirección: >, >> De división y combinación: -split, -join De tipo: -is, -isnot, -as… … 2. Generalidades de PowerShell

  21. Estructuras: Condicionales: Condicional if:if… then… elseif… else… Ejemplo: $a = 1; if ($a –eq 1){“Es 1”}else{“No es 1”} Múltipleswitch Ejemplo: $b="c"; switch($b){"a"{"Es a"} "b"{"Es b"} "c"{"Es c"}} Iteración: bucles Bucle while:while (<condición>){<lista de instrucciones>} Bucle do: do {<lista de instrucciones>} while (<condición>) do {<lista de instrucciones>} until (<condición>} Bucle for: for (<inicial>; <condición>; <repetir>) {<lista de instrucciones>} Ejemplo: for ($i = 1; $i -le 10; $i++) {$i} Bucle foreach: foreach ($<elemento> in $<colección>){<lista de instrucciones>} Ejemplo: $letras=“a”,”b”,”c”,”d”; foreach($letra in $letras){$letra} 2. Generalidades de PowerShell

  22. Práctica 1: 1.1. Calcular la media de 3 números a introducir (como parámetros o por petición) 1.2. Intercambiar 2 variables 1.3. Sumar los 20 primeros números naturales 1.4. Leer dos números y escribir el mayor 1.5. Calcular el factorial de un número 1.6. Escribir la tabla de multiplicar de un número que se pida 1.7. Calcular los divisores de un número Práctica 2: 2.1. Calcular las raíces de una ecuación de 2º grado 2.2. Calcular el área de un círculo 2.3. Indicar el número de horas y responder semanas, días y horas 2.4. Solicitar una letra e informar si es vocal 2.5. Decir si un número es o no primo 2. Generalidades de PowerShell

  23. 3. CommandLets (cmdlets)

  24. Comandos de PowerShell = cmdlets Convención de nomenclatura: verbo-sustantivo param1 arg1 param2 arg2 Verbo = acción Sustantivo = objeto sobre el que recae la acción Opcionalmente, se especifican parámetros con argumentos Ejemplos: Get-Help Get-Help –detailed Get-Command Get-Command –VerbGet Get-Command –NounService Get-Service Acciones: Get: obtener información o listado Set: escribir un valor Stop/Start/Suspend/Restart New, Resume… 3. cmdlets

  25. Parámetros comunes -WhatIf (qué pasaría si…) -Confirm (pregunta antes de ejecutar) -Detailed (más detalles) -Debug (información sobre depuración) -ErrorAction (realiza una acción cuando se producen errores) -ErrorVariable (usa una variable para mantener información de error = $Error) -OutVariable (variable que almacena la información de salida -OutBuffer (mantener nº de objetos antes de llamar al cmdlet siguiente) Ejemplos: Set-ExecutionPolicyUnrestricted –WhatIf Set-ExecutionPolicyUnrestricted –Confirm 3. cmdlets

  26. Get-Command Da información básica de los cmdlets y otros comandos u objetos Sintaxis: Get-Command –param1 arg1… Parámetros: -Verb: cmdlets con el verbo indicado -Noun: cmdlets con el sustantivo indicado Get-ChildItem Muestra los elementos (principales y secundarios) de una o varias ubicaciones Se utiliza para sistema de archivos (alias dir, registro, certificados, AD…) Sintaxis: Get-ChildItem –param1 arg1… Parámetros: -Path “string” (con comodines) -Include “string” / -Exclude “String” -Name (solo el nombre) -Recurse (recursivo) Alias: gci, ls, dir 3. cmdlets

  27. Get-Member Da información acerca de los miembros de objetos Por ejemplo métodos y propiedades Ejemplo: Get-ChildItem |Get-Member Parámetro importante: -MemberType Valores posibles: Aliasproperty, Codeproperty, Property, Noteproperty, Scriptproperty, Properties, PropertySet, Method, Codemethod, Scriptmethod, Methods, Parametrizedproperty, Memberset y All Get-Executionpolicy Indica la directiva de seguridad de ejecución de PowerShell Puede tener los valores: Restricted, allsigned, remotesigned o unrestricted Set-ExecutionPolicy Cambia la directiva de ejecución El parámetro –executionpolicy define la directiva con su argumento 3. cmdlets

  28. Práctica 3: 3.1. Obtener un listado de los comandos cuyo verbo sea new 3.2. Obtener un listado de comandos de Process 3.3. Listado de comandos cuyo verbo sea Set y el nombre empiece por L 3.4. Mostrar los servicios, detener el servicio “Audio de Windows” confirmando la acción, mostrar los servicios (tanto en PowerShell como en Services de Windows) y arrancar de nuevo el servicio en modo Debug Práctica 4: 4.1. Listar el directorio c:\windows\system32\drivers\etc 4.2. Mostrar los archivos de c:\windows que empiecen por a 4.3. Listar los archivos de texto (.txt) que se encuentren en c:\windows y sus subdirectorios 4.4. Crear un fichero “listado.txt” en el que se incluyan todos los ficheros ejecutables (.exe) que haya en el disco duro y en otra unidad (CD, por ejemplo) 4.5. Mostrar los objetos del registro “hkcu:\HKEY_CURRENT_USER\Software\Macromedia" 3. cmdlets

  29. 4. Formatear la salida

  30. Trabajar con tuberías (sin ser fontanero) Ejemplo: Get-Command -verb "Set"|Format-List Dar formato a la salida: Format-Table (ft): Presenta la salida en filas y columnas Opción por defecto si lo puede presentar Ejemplo: Get-ChildItem C:\Windows |Format-Table Parámetro –Autosize Format-List (fl) Presentación en lista con más información y sin contar (si queremos todos agregamos * Por defecto los elementos : Name, CreationTime, LastWriteTime y LastAccessTime Personalizablemediante el parámetro–property paraañadirotrainformación (porejemplo, FullName, CreationTime, LastWriteTime, …) Ejemplo: Get-ChildItem C:\Windows -Recurse | Format-List -Property FullName,CreationTime,LastWriteTime Format-Wide (fw) Lista comprimida a varias columnas Parámetros: Autosize, Column, Groupby… Format-Custom (personalizada) 4. Formatear la salida

  31. Filtrando y ordenando Group-Object Permite formatear la salida agrupando por alguna propiedad Muestra el nombre, el número y el grupo Ejemplos: Get-Process |Group-ObjectCompany Get-EventLogSystem |Group-ObjectEventId Sort-Object Ordena la salida por la columna o propiedad indicada Pueden indicarse varias separadas por comas Parámetros: -property, -casesensitive, descending… Ejemplos Get-Command |Sort-Object –descending Get-EventLog System | Group-Object eventid | Sort-Object Count –descending get-childitem | sort-object -property LastWriteTime > ordenado.txt Where-Object Filtra la salida con los elementosquecumplen la condición Sintaxis: cmd-let | where-objetc {$_.propiedad –comparador “expresión*”} Ejemplos get-command | where-object {$_.Name -like “get-*”} get-childitem | where-object {$_.Length -ge 10000} 4. Formatear la salida

  32. Salida ConvertTo-HTML La salida se genera en HTML Se puede reenviar a un archivo, bien con el redireccionador> o con | out-file “name.html” Puedes abrir el archivo con Invoke-Item “name.html” Ejemplos: Get-Process | ConvertTo-html | out-file “Processes.html” Export-CSV La salida del comando se exporta a un archivo de texto separado por comas (CSV) Ejemplos Get-Process | Export-CSV Processes.csv Out-GridView La salida se obtiene en un objetográfico de tipo “rejilla” (gridview) Ejemplos get-Process | Out-GridView Out-Printer La salida se envía a unaimpresoraquedebeespecificarsecomoargumento Ejemplos get-Process | Out-Printer “PDFCreator” 4. Formatear la salida

  33. Práctica 5: 5.1. Obtener un listado de los archivos de c:\archivos de programa que empiecen por A en todos los subdirectorios y presentarlo en forma de tabla autoajustada 5.2. Obtener un listado de los archivos *.txt que haya en c:\windows en forma tabular autoajustada, incluyendo el nombre, tamaño, fecha de creación, extensión y su nombre completo 5.3. Presentar en forma de lista los archivos de c:\windows\system32 que sean ejecutables (exe, com, bat, …) mostrando el nombre, tamaño, extensión y si es de solo lectura 5.4. Mostrar en forma de lista los archivos de c:\archivos de programa y todos sus subdirectorios que tengan extensión .exe, .dll o .ini, agrupándolos por su extensión 5.5. Presentar en 4 columnas el nombre de los archivos de c:\Windows que empiecen por A o por E, incluyendo sus subdirectorios 4. Formatear la salida

  34. Práctica 6: 6.1. Mostrar el número de eventos de aplicación agrupados por el tipo de entrada Pista: Get-EventLog 6.2. Listar en forma de tabla el número de archivos de cada tipo de extensión que hay en el directorio c:\windows\system32, ordenados por la extensión 6.3. Listar los archivos que hay en el directorio c:\windows\log y sus subdirectorios que tengan un tamaño mayor de 100 kB, en forma de lista con las propiedades nombre, tamaño, extensión y fecha de creación 6.4. Obtener un listado a 3 columnas de los archivos de c:\windows y sus subdirectorios que tengan tamaño mayor de 2 MB y la fecha de último acceso esté entre los últimos 7 días 6.5. Mostrar agrupados por la categoría del evento, los eventos de seguridad de nuestra máquina que han sucedido en los últimos 3 días, ordenados de mayor a menor por el número que se haya producido (prueba también a agrupar por el mensaje) 4. Formatear la salida

  35. Práctica 7: 7.1. Obtener un listado de los archivos de c:\windows\ con extensión .ini o .log y generarlo en HTML para lanzarlo en un navegador 7.2. Sacar un listado en formato CSV de los procesos que se están corriendo en la máquina ordenados de forma descendente por el uso de procesador. Abrirlo en Excel. 7.3. Sacar la lista de los servicios que estén detenidos ordenados por el site y mostrados en un objeto GridView 7.4. Imprimir en un PDF el listado en forma de tabla de los programas que aparecen en Agregar/Quitar programas de Windows, quitando las actualizaciones. Pistas: esta opción está en la clave de registro HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\ Las actualizaciones tienen la clave comanzando por { 7.5. Listar las unidades de disco (reales) que tenga tu equipo y generar con ellas una página web Pista (Get-PSDrive da las unidades) 4. Formatear la salida

  36. 5. Proveedores PowerShell

  37. ¿Qué es esto? Son programas que nos permiten trabajar con almacenes de datos como si fueran unidades montadas. Sistema de archivos, registro, certificados… ¿Con qué? This translates to being able to use the same cmdlets as working with files and folders, which are shown in the table below. 5. Proveedores de PowerShell

  38. Get-PSProvider Obtiene una lista de los proveedores Get-PSDrive: Unidades PSDrive Para unidades de disco Get-PSDrive Muestra las unidades disponibles Ejemplo: Get-PSDrive –ProviderFileSystem Alias Lo podemos tratar como otro proveedor (ya lo veremos) Ejemplos: Set-Localtion Alias: Get-ChildItem Get-ChildItem | Get-Member Variables de entorno (Proveedor env) Accede a las variables de entorno del sistema (propiedades de Mi PC) Ejemplo: Set-LocationEnv: ; Get-ChildItem Obtener una variable:Get-ChildItem OS Crear una variable: New-Item -Path . –Name Variable1 – Value “Texto de la variable” 5. Proveedores de PowerShell

  39. Proveedor Sistema de Archivos De forma predeterminada Permite trabajar con el sistema de archivos (crear, modificar, eliminar archivos y carpetas) Get-ChildItem, 1ª columna: d = directorio a = archivo r = sólo lectura h = oculto s = de sistema Get-ChildItem –force: muestra los ocultos también Creando: Directorios: New-Item –Path C:\Nuevo – TypeDirectory Archivo: New-Item –Path C:\Nuevo\Archivo.txt –TypeFile Si no indicas el tipo te lo pregunta Moviendo: Move-Item –Path C:\Nuevo\Archivo.txt C:\ Move-Item –Path C:\Nuevo C:\NuevoDir 5. Proveedores de PowerShell

  40. Proveedor Sistema de Archivos Renombrando (también con Move) Rename-Item –Path C:\Archivo.txt C:\NuevoFile.txt Rename-Item –Path C:\NuevoDir C:\Direc Borrando archivos y directorios Remove-Item –Path C:\NuevoFile.txt –Confirm Remove-Item –Path C:\Direc Contenido de un archivo Obtener el contenido: Get-content C:\Windows\System32\drivers\etc\services Obtener el contenido línea a línea: Get-content C:\Windows\System32\drivers\etc\services |ForEach-Object {write-host $i "" $_; $i++} Escribir en un archivo: Set-Content –Path C:\Archivo.txt –Value “Hola, caracola” Añadir a un archivo: Add-Content –Path C:\Archivo.txt –Value “Adios” 5. Proveedores de PowerShell

  41. Proveedor Funciones Accede a las funciones de PowerShell Set-LocationFunction: Get-ChildItem Viendo el código de una función Get-Content Path El proveedor de Registro de Windows Podemos conectar con dos ramas: HKCU: HKEY_CURRENT_USER HKLM: HKEY_LOCAL_MACHINE Para: navegar, buscar, crear claves, eliminar claves, añadir valores, modificar valores y administrar ACL (Access Control Lists) Navegar Set-Location HKLM: Get-ChildItem Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion Obtener entradas Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion 5. Proveedores de PowerShell

  42. El proveedor de Registro de Windows Podemos conectar con dos ramas: HKCU: HKEY_CURRENT_USER HKLM: HKEY_LOCAL_MACHINE Para: navegar, buscar, crear claves, eliminar claves, añadir valores, modificar valores y administrar ACL (Access Control Lists) Navegar Set-Location HKLM: Get-ChildItem Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion Obtener entradas Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion Crear una entrada: New-Item –path HKLM:\SOFTWARE\Test –Value “Hola caracola” Verificar su existencia: Get-ChildItem HKLM:\SOFTWARE\T* Verla: Get-ItemProperty –Path HKLM:\SOFTWARE\Test Borrar una entrada: Remove-Item HKLM:\SOFTWARE\Test 5. Proveedores de PowerShell

  43. Proveedor Variables Conectar: Set-Location Variable: Get-ChildItem Listar información de una variable: Poner su nombre: $PSHome Crear una variable definida por el usuario New-Item Variable –Value “Valor” Equivalente a Set-Variable Variable2 –value “Valor 2” O $Variable3 = “Valor 3” Borrar variables Remove-Item Variable,Variable2,Variable3 Proveedor Certificados Accede al almacén de certificados Set-LocationCert: Get-ChildItem Get-ChildItem –Recurse |Export-CSV “C:\Certificados.csv” ; Invoke-Item “C:\Certificados.csv” 5. Proveedores de PowerShell

  44. Práctica 8: 8.1. Mostrar todos los proveedores y todas las unidades accesibles 8.2. Mostrar todos los alias que trabajen con Object e Item, ordenados por su nombre 8.3. Indicar el nombre de la máquina, el sistema operativo, el identificador de procesador, número de procesadores y nombre de usuario 8.4. Crear una variable de entorno llamada HoraAct que contenga la hora de ese momento. Mostrarla, borrarla y volver a mostrar todas las variables de entorno. Práctica 9: 9.1. Bajo C:\ crear la estructurade directorios siguiente: 5. Proveedores de PowerShell

  45. Práctica 10: 10.1. Crear un archivo de texto llamado Ejemplo1.txt en el directorio PRACTICA1 10.2. Renombrar el archivo creado a Ej_1_1.txt y moverlo al directorio FEBRERO 10.3. Crear otro archivo de texto llamado Ej_2_1.txt que tenga el texto “Hola, caracola” en el directorio TEMA9 10.4. Mover el directorio PROGRAMACION de FEBRERO a ENERO, incluyendo sus subdirectorios, claro 10.5. Copiar el archivo Ej_2_1.txt al directorio SISTEMAS de ENERO, con el nombre Ej_3.1.txt 10.6. Añadir el texto “Adios, caraculo” al Ej_3.1.txt 10.7. Borrar el archivo Ej_2.1.txt confirmando el borrado 10.8. Renombrar los directorios PRACTICA1 y PRACTICA2 por LABORES1 y LABORES2 10.9. Borrar el directorio SISTEMAS con todos los subdirectorios y archivos que contenga 5. Proveedores de PowerShell

  46. Práctica 11: 11.1. Indicar cuantos servicios aparecen listados en el fichero C:\Windows\System32\drivers\etc\services 11.2. Contar la cantidad de servicios TCP y UDP hay en el fichero indicado anteriormente 11.3. Trabajo con un fichero de log: 11.3.1. Descargar el fichero access_log de http://cursos.integra-gestion.com/PdeS/access_log.gz 11.3.2. Indicar los días que comprende el fichero, mostrando el primer y último acceso 11.3.3. Decir cuántas petición GET hay y cuántas POST 11.3.4. Indicar cuántas visitas hay por sistema operativo (Windows, Linux u otros) 11.3.5. Mostrar cuáles son las 10 páginas más visitadas 11.3.6. Indicar el número de entradas según el código de respuesta del servidor 11.3.7. Calcular la suma de bytes transferidos por día 11.3.8. Con todos los puntos anteriores, hacer un informe en HTML que se mostrará en el navegador. 5. Proveedores de PowerShell

  47. Práctica 12: 12.1. Indicar las ramas que tiene el registro en HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion 12.2. Mostrar los programas que se inician cuando arranca tu ordenador (valores de la rama HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run) 12.3. Crear una entrada en el registro llamada Clave en la rama HKLM:\SOFTWARE\Microsoft con el valor “Hola, caracola” 12.4. Mostrar las variables actualmente en uso, crear una nueva MiVariable con el valor 4 y después borrarla. Comprobar que ya no aparece. 12.5. Mostrar un listado en página web de todos los objetos que se encuentren en el almacén de certificados. 5. Proveedores de PowerShell

  48. 6. El objeto WMI

  49. WMI = Windows Management Instrumentation (Instrumental de administración de Windows Tecnología de administración en Windows Base de datos de información del sistema Espacio de nombres para scripting, por defecto, root/cimv2 Para ver las clases, propiedades y métodos: WMI AdministrativeTool (http://www.microsoft.com/downloads/details.aspx?FamilyID=6430f853-1120-48db-8cc5-f2abdc3ed314&DisplayLang=en) 6. WMI

  50. Buscar Clases, Propiedades y Métodos Get-WmiObject –List –Namespace “root\cimv2” También para máquina remota Get-WmiObject –List –Namespace “root\cimv2” –ComputerName WIN2008 Mostrar propiedades y métodos de una clase Get-WmiObject -Class “Win32_Processor” -Namespace “root\CIMV2″ | Get-Member Ejemplo de uso (Práctica 13) Me piden los datos de fabricante, modelo y número de serie de una máquina, la información de la BIOS, el tipo de Sistema Operativo, la información de la CPU (fabricante, tipo, velocidad,…), cantidad de memoria, información de disco, red… Sintaxis: Get-WmiObject -Class [classname] -NameSpace [namespace] -ComputerName [ComputerName] Clases: Win32_ComputerSystem, Win32_BIOS, Win32_OperatingSystem, Win32_Processor, Win32_DiskDrive, Win32_NetworkAdapterConfiguration Ver Ej_13.ps1 6. WMI

More Related