martes, 29 de octubre de 2013

Nuevo blog sobre informática básica

He abierto un segundo blog sobre informática pero esta vez sobre informática en general. Se habla de software, resolución de incidencias, antivirus, Linux, cifrado, programas útiles, redes, Windows, scripts de ayuda, trucos, peligros, webs y mucho mas... Hay entradas muy interesantes que os pueden ayudar. No dejeis de visitar mi otro blog:

http://enekoysuinformatica.blogspot.com

Un saludo

miércoles, 23 de octubre de 2013

Sacar información de un fichero .csv con PowerShell

Tenemos un fichero csv llamado ficheroCSV.csv con la siguiente información:
Imaginemos que queremos sacar por ejemplo el email de cada uno:
$lineas = Import-Csv C:\Users\Administrador\Desktop\ficheroCSV.csv
foreach ($registro in $lineas) {
 Write-Output "El email es: " $registro.email
}

# fin del programa

Ahora tenemos un fichero csv llamado ficheroCSV2.csv con la siguiente información:
Imaginemos que queremos toda la información de cada registro y además el email repetido:
$contenidos = Get-Content C:\Users\Administrador\Desktop\ficheroCSV2.csv
Write-Output "Total líneas: " $contenidos.Length

foreach ($linea in $contenidos) {
 Write-Output $linea
 $registro = $linea.Split(",")
 Write-Output "El email es: " $registro[2]
}

# fin del programa

Espero que os haya gustado.
Un saludo

lunes, 21 de octubre de 2013

Información de control de acceso con PowerShell

Acceder a la información sobre el control de acceso de un recurso compartido con PowerShell. Luego cambiaremos el control de acceso sobre ese mismo elemento usando Set-Acl.

1- Obtener la información
$contenido = Get-Acl C:\compartidas | Format-List *
$contenido > C:\Users\Administrador\Desktop\infoControlDeAcceso.txt

# fin del programa

2- Cambiar el control de acceso
$acl1 = Get-Acl C:\compartidas
$permisos = New-Object System.Security.AccessControl.FileSystemAccessRule "nombre_usuario","FullControl","Allow"
$acl1.SetAccessRule($permisos)
$acl1 | Set-Acl C:\compartidas

# fin del programa

Espero que os sirva de ayuda.
Un saludo.

viernes, 18 de octubre de 2013

Hacer una calculadora básica con PowerShell

Vamos a hacer una calculadora muy básica con PowerShell la cual solo tendra cuatro posibles operaciones: suma, resta, multiplicación y división. Para ello usaremos una función llamada "operar" a la que se pasaremos dos números y una operación.
# calculadoraBasica.ps1

function operar($valor1,$valor2,$op){
 switch ($op){
   1 { $result = $valor1 + $valor2 }
   2 { $result = $valor1 - $valor2 }
   3 { $result = $valor1 * $valor2 }
   4 { $result = $valor1 / $valor2 }
 }
 return $result
}

do{
 cls
 Write-Output "1. Sumar " 
 Write-Output "2. Restar" 
 Write-Output "3. Multiplicar" 
 Write-Output "4. Dividir"
 $opcion = Read-Host "¿Que desea hacer? "
 } while (($opcion -lt 1) -or ($opcion -gt 4))

 $num1 = Read-Host "Introduce un número: "
 $num2 = Read-Host "Introduce otro número: "

 $res = operar $num1 $num2 $opcion
 Write-Output "El resultado es: $res"

# fin del programa

Espero que os haya gustado.
Un saludo.

jueves, 17 de octubre de 2013

Ejercicios con funciones de PowerShell

1- Comprobar un DNI con PowerShell
function dniValido([string]$dni){
 if($dni -match "^[0-9]{8}[a-zA-Z]{1}$"){
  return $true
 }
 else{
  return $false
 }
}

$dni = Read-Host "Mete un DNI: "
if (dniValido $dni){
 Write-Output "Es válido."
}

2- Comprobar si es numero o no con PowerShell
function isNumeric ([string]$value){
 if($value -match "^(\-)?\d+(\.\d+)?$"){
  return $true
 }
 else{
  return $false
 }
}

$number = Read-Host "Mete un número: "
if (isNumeric $number){
 Write-Output "Es un número."
}

Espero que os haya gustado.
Un saludo.

Hacer funciones en PowerShell

En esta entrada vamos a ver como se hace funciones en PowerShell. Esta vez os voy a mostrar cuatro maneras diferentes de hacer funciones y como llamarlas.
1- Función simple
function mulNumbers{
 $num1 = 5
 $num2 = 10
 $res = $num1 * $num2
 Write-Output $res
}

#para llamar a la función
mulNumbers

2- Función simple con return
function mulNumbers0{
 $num1 = 5
 $num2 = 10
 return $num1 * $num2
}

#para llamar a la función
$resFunc = mulNumbers0
Write-Output $resFunc

3- Función con parámetros
function mulNumbers1($valor1,$valor2){
 $resultado = $valor1 * $valor2
 Write-Output $resultado
}

#para llamar a la función
mulNumbers1 5 10     # también se puede mulNumbers1 5,10
                     # también se puede mulNumbers1 -valor1 5 -valor2 10

4- Función con argumentos
function mulNumbers2{
 $resul = $args['0'] * $args['1']
 Write-Output $resul
}

#para llamar a la función
mulNumbers2 5 10     # también se puede mulNumbers2 5,10
Todas las funciones sacan el mismo resultado: 50
Espero que os haya servido de ayuda.
Un saludo.

miércoles, 16 de octubre de 2013

Ejercicios PowerShell

Ejercicio 4

2- Crea un cmdlet que recoja como parámetro un nombre de directorio. Verifica que ese directorio exista. Luego debes listar los contenidos del directorio ordenados por tamaño, y de cada elemento debes sacar el tamaño y el nombre.
# recogerParam.ps1
$nombreDir = $args[1]
$comprobar = Test-Path $nombreDir
if ($comprobar -eq $true){
    Get-ChildItem $nombreDir | Sort-Object size
}

3- Crea un cmdlet llamado CheckPorts que defina un array con los puertos que queremos que estén en listening. Ejecuta el comando para sacar los puertos y verifica que están abiertos los indicados en el array. Vete sacando un mensaje que indique qué puertos están correctamente en estado listening y cuáles no.
$ip = "127.0.0.1" # ip del host
$puertos = 20,21,22,23,24,25,80
$con = New-Object net.Sockets.TcpClient
foreach ($port in $puertos)
{
 try{
  $con.Connect($ip,$port)
  $con.Close()
  Write-Output "Puerto $port en listening."
 }
 catch{
  Write-Output "Puerto $port cerrado."
 }
}

# fin del programa

4- Crea un cmdlet llamado AlertDist que defina un array relacional con las unidades y el límite de capacidad. Debe ejecutarse un comando que saque el tamaño ocupado en las unidades y que nos avise si se ha superado el límite impuesto.
$unidades = Get-WmiObject Win32_logicaldisk | select -Property DeviceID,FreeSpace
foreach ($libre in $unidades){
 $id = $libre.DeviceID
 $espacio = $libre.FreeSpace
 Write-Output "La unidad $id tiene $espacio de espacio libre."
}

# fin del programa

5- Crea un cmdlet de PowerShell que defina un array relacional con usuarios. Los campos de cada elemento deben ser nombre_cuenta, nombre y password. El programa debe mantener ese array con un menú en el que se pueda:
-añadir
-eliminar
-buscar por nombre
-mostrar todos
Al crear uno nuevo deben solicitarse datos y el campo password debe ocultarse al escribir.
$alumnos = @{
              "juan" = @{ nombre_cuenta = "juan_20"; nombre = "juan"; password = "2345";};
              "eneko" = @{ nombre_cuenta = "eneko_23"; nombre = "eneko"; password = "3456";};
              "urko" = @{ nombre_cuenta = "urko_33"; nombre = "urko"; password = "4567";}
            }
do {
 Write-Output "---- MENU ----"
 Write-Output "1. Añadir alumno"
 Write-Output "2. Eliminar alumno"
 Write-Output "3. Buscar por nombre"
 Write-Output "4. Mostrar alumnos"
 Write-Output "5. Salir"
 $op = Read-Host "Selecciona opción: "
 switch ($op){
   1{
     Write-Output "Vas a añadir un alumno."
     $nombre = Read-Host "Introduce un nombre: "
     $nombre_cuenta = Read-Host "Introduce un nombre de cuenta: "
     $password = Read-Host "Introduce una contraseña: "
     $alumnoNuevo = @{ nombre_cuenta = $nombre_cuenta; nombre = $nombre; password = $password;}
     $alumnos = $alumnos + $alumnoNuevo
    }
   2{
     foreach ($alumno in $alumnos.GetEnumerator()){
      Write-Output $alumno.name
     }
     $opElim = Read-Host "Mete el nombre del que quieras eliminar: "
     $alumnos.Remove($opElim);
    }
   3{
     $opBuscar = Read-Host "Mete el nombre del que quieras buscar: "
     $sino = 0
     foreach ($alum in $alumnos.GetEnumerator()){
      if ($alum.name -eq $opBuscar){
       Write-Output "El usuario existe."
       $sino = 1
      }
     }
     if ($sino -eq 0){
      Write-Output "El usuario no existe."
     }
    }
   4{
     Write-Output "Alumnos existentes: "
     foreach ($alumno in $alumnos.GetEnumerator()){
      Write-Output $alumno.name
     }
    }
   5{ 
     Write-Output "Saliendo del programa..."
     exit
    }
   default{
     Write-Output "Opción incorrecta."
   }
  }
} while ($op -ne 4)

# fin del programa

martes, 15 de octubre de 2013

Arrays relacionales en PowerShell (Ejercicio extra)

Una variable contiene un único valor:
$numeroEntero = 12         # ejemplo de numero entero
$cadena = "Hola mundo!"    # ejemplo de cadena

Write-Output $cadena       # saca Hola mundo!

Un array contiene varios valores:
$esteArray = "Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"

Write-Output $esteArray[3] # saca Marzo

Un array relacional se construye de la siguiente manera:
$usuario = @{ name = "Barack Obama";
              login = "Barack_obama";}

Write-Output "Hola " $usuario.name

Ejemplo de un ejercicio con un array relacional:
$ordenador = @{marca = "HP";
               sistema_operativo = "Windows 7";
               procesador = "Intel Core i5";}

Write-Output "La marca del ordenador es:" $ordenador{"marca"} # también se puede con $ordenador.marca
Write-Output "El SO es: " $ordenador.sistema_operativo
Write-Output "El procesador es: " $ordenador{"procesador"}

Espero que os sirva de ayuda.
Un saludo.

Ejercicios PowerShell

Ejercicio 3

4- Desarrolla un cmdlet de powershell que defina un array de 10 nombres y los muestre por pantalla con un while, con un for y con un foreach.
# ejemploArrays1.ps1

$nombres = "Bustingorri","Arozarena","Urban","Pepin"
$nombres = $nombres + "Gandalf"

# ahora los hacemos con el for
for ($i = 0; $i -lt $nombres.Length; $i++){
 Write-Output $nombres[$i]
}

# ahora con el foreach
foreach ($jugador in $nombres){
 Write-Output $jugador
}

# ahora con el while
while ($i -lt $nombres.length){
 Write-Output $nombres[$i]
 $i++
}
5- Desarrolla un cmdlet de powershell que defina un array de 10 números inicializados a 0. A continuacíon haz un bucle (for o foreach) que inicialice el array con números enteros aleatorios entre 10 y -10. Debes investigar el cmdlet Get-Random para conseguir esos números. Una vez generado ese array debes hacer otro bucle for que contabilice cuántos números positivos, negativos e iguales a 0 hay en ese array.
# arrayNumeros.ps1
$positivo = 0
$negativo = 0
$cero = 0
$numeros = 0,0,0,0,0,0,0,0,0,0
foreach ($num in $numeros){
 $aleatorio = Get-Random -Maximum 10 -Minimum -10
 $numeros[$num] = $aleatorio
}

for ($i = 0; $i -lt $nombres.Length; $i++){
 if ($numeros[$i] -eq 0){
  $cero++
 }
 else{
  if ($numeros[$i] -lt 0){
   $negativo++
  }
  else{
   $positivo++
  } 
 }
}

Write-Output "Hay $cero ceros."
Write-Output "Hay $negativo negativos."
Write-Output "Hay $positivo positivos."
6- Desarrolla un cmdlet de Powershell que solicite al usuario un nombre de directorio. El cmdlet debe crear ese directorio y meterse en él. Una vez centro el cmdlet debe crear 10 directorios cuyo nombre debe ser un número aleatorio, y dentro de cada uno de ellos debe crear 10 ficheros de texto cuyo nombre debe ser un número aleatorio.
# crearDirectorio.ps1
[string]$cadena = $( Read-Host "Introduce un nombre de directorio para crear: " )
mkdir $cadena
cd $cadena
for ($i = 0; $i -lt 10; $i++){
 $nombreParaCarpeta = Get-Random 1000
 mkdir $nombreParaCarpeta
 cd $nombreParaCarpeta
 for ($j = 0; $j -lt 10; $j++){
  $nombreParaFichero = Get-Random 1000
  echo Hola > "$nombreParaFichero.txt"
 }
 cd..
}
7- Utilizando arrays y números aleatorios, desarrolla un cmdlet de powershell que genere contraseñas. Añádele parámetros para poder indicarle longitud concreta. Modifica el cmdlet 6 para que utilice este cmdlet.
# crearPassword.ps1
$abecedario = 'a','b','c','d','e','f','g','h','i','j','k','l','m','ñ','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','_','?','¿','*','A','B','C','D','E','F','G','H','I','J','K','L','M','Ñ','O','P','Q','R','S','T','U','V','W','X','Y','Z'
$contra = ""
$passwordLength = 20
for ($i = 0; $i -lt $passwordLength; $++){
 $j = Get-Random -Maximum 56 -Minimum 1
 $contra = $contra + $abecedario[$j]
}
Write-Output "Su contraseña es: $contra"
# FIN PROGRAMA
Espero que os haya gustado.
Un saludo.

lunes, 14 de octubre de 2013

Comprobar si existe usuario y contraseña en base de datos con PHP y MySQL y acceder a la web

Cuando un usuario se ha registrado ya puede acceder a la web sin problema. En el formulario de acceso donde se introduce email y contraseña se pueden dar dos casos:

1- El usuario no existe:




2- El usuario existe:


Los archivos que hay que generar son los siguientes:

1- index.php
<?php
   if(!empty($HTTP_GET_VARS['user'])){
    $user = $HTTP_GET_VARS['user'];
    if($user == 'found')
    {echo "
Uste ha accedido correctamente.
"; } if($user == 'not_found') {echo "
El usuario introducido no existe
"; } } ?>
Iniciar sesión y acceder a tu perfil.



¿Todavía no tienes una cuenta? Registrate aquí

2- home.php
<?php

 include("conect.php");
 
 $email = strtoupper($_POST['correo']);
 $pass = md5($_POST['pass']);

 $sql_chk = mysql_query("SELECT * FROM users WHERE email='$email' AND passwordmd5='$pass'",$link) or die(mysql_error());
 
 if(mysql_num_rows($sql_chk)==0)
 {
  mysql_close($link);
  header("Location: index.php?user=not_found");
 }
 else
 {
  //hacer lo que quieras...
  /*
  header("Location: index.php?user=found");
  */
 }
 
 mysql_close($link);
?>

3- Javascript para el formulario (en el head de index.php)
function validateForm(){
 if(document.form.correo.value.length == 0)
 {alert("Introduce un correo v\u00e1lido."); 
  document.form.correo.focus(); 
  return 0;
 }
 if(document.form.pass.value.length == 0)
 {alert("Introduce una contrase\u00f1a."); 
  document.form.pass.focus(); 
  return 0;
 } 
 document.form.submit();}

Si os ha gustado por favor comentadlo.
Un saludo.

domingo, 13 de octubre de 2013

Registrar un usuario en una base de datos

En este caso vamos a aprender a meter un usuario que se registra en una base de datos de MySQL. Al final puede haber dos resultados: el usuario ya existe o el usuario no existe y se añade a la base de datos. Para hacer eso comprobaremos el email que introduce. Para ello necesitamos crear una página de bienvenida (index) y darle una opción de registrar usuario:


Luego nos mandará a:



Veamos el código el archivo donde se registra el usuario :

1- register.php
<?php
 if(!empty($HTTP_GET_VARS['new_user'])){
  $user = $HTTP_GET_VARS['new_user'];
  if($user == 'inserted'){
   echo "
Registrado con éxito. Comprueba los datos en tu correo electrónico.
"; } if($user == 'rejected'){ echo "
No puedes registrarte. Este email ya está registrado.
"; } } ?>
Rellena los datos para registrarte.

Una vez el usuario introduce los datos, la información se manda a otro archivo que comprobara la información y en caso de  que el usuario no exista lo añadira a la base de datos y en caso de que exista devolverá un mensaje. Si el usuario se ha añadido con éxito recibirá un email en el correo con la información que ha introducido:

2- newuser.php
<?php
 /* MySql: Este script inserta un nuevo usuario en la tabla 'users' de la base de datos. */
 include("conect.php");
 
 $nombre = $_POST['nombre'];
 $apellidos = $_POST['apellidos'];
 $email = $_POST['correo'];
 $contra = $_POST['pass'];
 $contra1 = md5($contra);
 $genre = $_POST['sex'];
 
 $day = $_POST['dia_cumple']; 
 if($day < 10){ $day = "0".$day;}
 $month = $_POST['mes_cumple'];
 if($month < 10){ $month = "0".$month;}
 $year = $_POST['anyo_cumple'];
 
 $birthday = $year."-".$month."-".$day;
 
 $sql_chk = mysql_query("SELECT * FROM users WHERE email='$email'",$link) or die(mysql_error());

 if(mysql_num_rows($sql_chk)==0){
  mysql_query("INSERT INTO users (id, name, lastname, email, password, passwordmd5, birthday, genre) VALUES ('','$nombre','$apellidos','$email','$contra','$contra1','$birthday','$genre')",$link);
  mysql_close($link);
  if($genre == 'male'){ $genre = 'hombre';} else { $genre = 'mujer';}
  $cabeceras = "From: no-reply@dominio.com\r\nContent-type: text/html\r\n";
  $mensaje = "Le damos la bienvenida por habese registrado en dominio. 
Este mensaje se ha enviado a: ".$nombre." ".$apellidos.". 
Su email es: ".$email.". 
Su password es: ".$contra.". 
Su fecha de nacimiento es: ".$birthday.". 
Su genero es: ".$genre.". 

 Muchas gracias por unirse a nuestra red. 
Un saludo. 

 El equipo de dominio.
"; mail($email,"dominio: Email de usuario.",$mensaje,$cabeceras); header("Location: register.php?new_user=inserted"); } else{ mysql_close($link); header("Location: register.php?new_user=rejected"); } ?>

El script para validar el formulario antes de enviarlo debe estar en el "head" del html en el archivo register.php.
function validateFormReg(){
 if(document.form.nombre.value.length == 0)
  {alert("Introduce un nombre.");
   document.form.nombre.focus();
   return 0;
  }
 if(document.form.apellidos.value.length == 0)
  {alert("Introduce los apellidos.");
   document.form.apellidos.focus();
   return 0;
  }
 if(document.form.correo.value.length == 0)
  {alert("Introduce un correo v\u00e1lido."); 
   document.form.correo.focus();
   return 0;
  }
 if(document.form.correo2.value.length == 0)
  {alert("Repite el correo."); 
   document.form.correo2.focus();
   return 0;
  }
 if(document.form.pass.value.length == 0)
  {alert("Introduce una contrase\u00f1a.");
   document.form.pass.focus();
   return 0;
  }
 if(document.form.pass2.value.length == 0)
  {alert("Repite la contrase\u00f1a.");
   document.form.pass2.focus();
   return 0;
  }
 if(document.form.correo.value != document.form.correo2.value)
  {alert("Introduce correos iguales.");
   document.form.correo.value = "";
   document.form.correo2.value = "";
   document.form.correo.focus();
   return 0;
  }
 if(document.form.pass.value != document.form.pass2.value)
  {alert("Introduce contrase\u00f1as iguales.");
   document.form.pass.value = "";
   document.form.pass2.value = "";
   document.form.pass.focus();
   return 0;
  }
 var meses = document.form.mes_cumple.value; 
 var dias = document.form.dia_cumple.value; 
 var anyos = document.form.anyo_cumple.value;
 if(anyos == -1 || meses == -1 || dias == -1)
  {alert("Introduce una fecha correcta.");
   document.form.anyo_cumple.value = -1;
   document.form.mes_cumple.value = -1;
   document.form.dia_cumple.value = -1;
   return 0;
  }
 if((meses == 2 || meses == 4 || meses ==  6 || meses ==  9 || meses ==  11) && dias == 31)
  {alert("Introduce una fecha correcta.");
   document.form.anyo_cumple.value = -1;
   document.form.mes_cumple.value = -1;
   document.form.dia_cumple.value = -1;
   return 0;
  }
 if(document.form.sex.value == 0)
  {alert("Introduce un sexo.");
   return 0;
  }
 document.form.submit();
}

Una vez mas espero que os haya servido de mucho esta entrada de registrar un usuario en una página web con HTML, CSS, PHP y JAVASCRIPT.
Un saludo.

sábado, 12 de octubre de 2013

Conectarse a una base de datos MySQL con PHP (conect.php)

Archivo para conectarse a una base de datos MySQL.
1- conect.php
<?php 

/* MySql: Seleccionamos nuestra base de datos de MySQL. */

$servername = "tu_dominio.com";//el dominio
$username = "tu_usuario";      //tu usuario de MySQL
$password = "tu_contraseña";   //tu contraseña de MySQL
$bbdd = "nombre_bbdd";         //nombre de la base de datos

$link = mysql_connect ($servername,$username,$password); 
mysql_select_db($bbdd, $link); 

?>

Ahora que esta hecho, para llamarlo desde otro archivo PHP podemos hacerlo solo poniendo el siguiente código (estando conect.php y otro_archivo.php en la misma carpeta).
2- otro_archivo.php
<?php
include('conect.php');
/* Código php+mysql que quieras... */
?>

jueves, 10 de octubre de 2013

Ejercicios PowerShell

Ejercicio 2

2- Crea un cmdlet de powershell que espere tres parámetros un llamado $primero que espere un [int], otro llamado $segundo que espere un String que si no se introduce debe solicitarlo al usuario. Una vez hecho el programa debe hacer un bucle for que muestre el valor de $segundo tantas veces como indique $primero.
# esperarTresParametros.ps1
param (
[int]$veces = 1,
[string]$cadena = $( Read-Host "Introduce el segundo parametro:")
Write-Output "Has metido $veces y $cadena"
for ($i = 0; $i -lt $veces; $i++){
   Write-Output $cadena
}
3- Crea un cmdlet de powershell llamado Get-España.ps1 con parámetros que permita indicar los puestos de un equipo de fútbol y luego los muestre. Algo así: Get-España.ps1 -portero 'Casillas' -defensa 'Sergio Rambo' -pivote 'Busquets' -medio 'Javier Alonso' -delantero 'Erroberto Gudari'
# Get-España.ps1
param (
[string]$portero = "Casillas",
[string]$defensa = "Sergio Rambo",
[string]$pivote = "Busquets",
[string]$medio = "Javier Alonso",
[string]$delantero = "Erroberto Gudari",
)
Write-Output "Portero: $portero"
Write-Output "Defensa: $defensa"
Write-Output "Pivote: $pivote"
Write-Output "Medio: $medio"
Write-Output "Delantero: $delantero"
4-

5-

martes, 8 de octubre de 2013

Ejercicios PowerShell

Ejercicio 1

Aquí vamos a hacer unos pequeños scripts de introducción a PowerShell.

1-
# saludo1.ps1
$saludo = "Buenas tardes"
$nombre = "Eneko"
Write-Output $saludo $nombre
2-
#saludo2.ps1
$saludo = $args[0]
$nombre = $args[1]
Write-Output $saludo $nombre
3-
# saludo3.ps1
$saludo = Read-Host "Introduce un saludo: "
$nombre = Read-Host "Introduce un nombre: "
Write-Output $saludo $nombre
4-
# aritmeticas.ps1
[int]$num1 = Read-Host "Introduce un numero: "
[int]$num2 = Read-Host "Introduce otro numero: "
$sum = $num1 + $num2
$res = $num1 - $num2
$mul = $num1 * $num2
$div = $num1 / $num2
Write-Output $sum
Write-Output $res
Write-Output $mul
Write-Output $div
5-
# compararNums.ps1
$num1 = Read-Host "Introduce un numero: "
$num2 = Read-Host "Introduce otro numero: "
if ( $num1 -eq $num2 ) {
Write-Output "Son iguales."
}
 if ( $num1 -gt $num2 ) {
Write-Output "El primer numero es mayor."
}
 if ( $num1 -lt $num2 ) {
Write-Output "El primer numero es menor."
}
6-
# fapFor.ps1
$fap = Read-Host "Introduce un numero: "
if ( $fap -gt 0 ) {
   for ( $i = 0 ; $i < $fap ; $i++ ) {
    Write-Output $fap
   }
}
7-
# entreUnoYCien.ps1
$cont = 0
do {
$num1 = Read-Host "Introduce un numero: "
$cont++
}while (($i -gt 0) -and ($i -lt 100 ))
if ( $cont -eq 0 ) {
   Write-Output "Campeon"
}
else
{
  for ( $i = 0 ; $i < $cont ; $i++ ) {
   Write-Output "Eres retrasado"
  }
}
8-

jueves, 3 de octubre de 2013

Primeros ejercicios - Comandos PowerShell

Ejercicio 6

0- Crear usuarios PowerShell
New-ADUser
-DisplayName:"Jack Bauer"
-GivenName:"Jack"
-Name:"Jack Bauer"
-Path:"CN=Users,DC=bernaldo,DC=evil,DC=lan"
-SamAccountName:"jack_bauer"
-Server:"pdc.bernaldo.evil.lan"
-Surname:"Bauer" -Type:"user"
-UserPrincipalName:"jack_bauer@bernaldo.evil.lan"

Set-ADAccountPassword
-Identity:"CN=Jack Bauer,CN=Users,DC=bernaldo,DC=evil,DC=lan"
-NewPassword:"System.Security.SecureString"
-Reset:$null -Server:"pdc.bernaldo.evil.lan"
Enable-ADAccount
-Identity:"CN=Jack Bauer,CN=Users,DC=bernaldo,DC=evil,DC=lan"
-Server:"pdc.bernaldo.evil.lan"

Set-ADAccountControl
-AccountNotDelegated:$false
-AllowReversiblePasswordEncryption:$false
-CannotChangePassword:$false
-DoesNotRequirePreAuth:$false
-Identity:"CN=Jack Bauer,CN=Users,DC=bernaldo,DC=evil,DC=lan"
-PasswordNeverExpires:$false -Server:"pdc.bernaldo.evil.lan"
-UseDESKeyOnly:$false

Set-ADUser
-ChangePasswordAtLogon:$true
-Identity:"CN=Jack Bauer,CN=Users,DC=bernaldo,DC=evil,DC=lan"
-Server:"pdc.bernaldo.evil.lan"
-SmartcardLogonRequired:$false
1- Crear grupos PowerShell
New-ADGroup
-Description:"Chicos buenos"
-GroupCategory:"Security"
-GroupScope:"Global"
-Name:"Good guys"
-Path:"CN=Users,DC=bernaldo,DC=evil,DC=lan"
-SamAccountName:"Good guys"
-Server:"pdc.bernaldo.evil.lan"
2- Agregando un grupo a otro (Evil wizards a Bad guys)
Add-ADPrincipalGroupMembership
-Identity:"CN=Evil wizards,CN=Users,DC=bernaldo,DC=evil,DC=lan"
-MemberOf:"CN=Bad guys,CN=Users,DC=bernaldo,DC=evil,DC=lan"
-Server:"pdc.bernaldo.evil.lan"
3- Agregar usuarios a un grupo (Jack Bauer y Bruce Wayne a Good guys)
Add-ADPrincipalGroupMembership
-Identity:"CN=Jack Bauer,CN=Users,DC=bernaldo,DC=evil,DC=lan"
-MemberOf:"CN=Good guys,CN=Users,DC=bernaldo,DC=evil,DC=lan"
-Server:"pdc.bernaldo.evil.lan"

Add-ADPrincipalGroupMembership
-Identity:"CN=Bruce Wayne,CN=Users,DC=bernaldo,DC=evil,DC=lan"
-MemberOf:"CN=Good guys,CN=Users,DC=bernaldo,DC=evil,DC=lan"
-Server:"pdc.bernaldo.evil.lan"
6-
::hola.bat
@echo off
echo %1
for /L %%i in (2,1,%2%) do (
   echo %1
)

::invocar.bat
@echo off
call hola.bat eneko 4
7-
::llamarlibreria.bat
@echo off
echo ¿Que quieres hacer?
echo 1- Crear carpeta
echo 2- Borrar carpeta
echo 3- Listar carpeta
echo 4- Copiar carpeta
echo.
choice /C 1234 /N /M "Selecciona uno: "
if errorlevel 4 call libreria.bat 4
if errorlevel 3 call libreria.bat 3
if errorlevel 2 call libreria.bat 2
if errorlevel 1 call libreria.bat 1

::libreria.bat
@echo off
if %1==1 goto crearCarpeta
if %1==2 goto borrarCarpeta
if %1==3 goto listarCarpeta
if %1==4 goto copiarCarpeta
:crearCarpeta
mkdir Nueva_Carpeta
echo Estoy en crear
goto final
:borrarCarpeta
rd /S Nueva_Carpeta
echo Estoy en borrar
goto final
:listarCarpeta
dir Nueva_Carpeta
echo Estoy en listar
goto final
:copiarCarpeta
copy Nueva_Carpeta C:\temp
echo Estoy en copiar
goto final
:final

Primeros ejercicios - Comandos DOS

Ejercicio 5

3-
@echo for
for %%i in ( hello hola kaixo aloha ) do (
 echo %%i
)
4- (Sin acabar)
::@echo off
::echo Introduce el nombre de un directorio (ruta completa):
::set /p dir1=
::echo Introduce el nombre de otro directorio:
::set /p dir2=
::cd %dir1%
::set bucle = forfiles /M *.bat
::echo %bucle%
::for %%i in %bucle% do (
:: echo %%i
::)
5-
@echo off
cd C:\
if not exist temp mkdir temp
cd temp
for /L %%i in (1,+1,10) do (
 mkdir carpeta%%i
)
6-
@echo off
:pedirNum
echo introduce un numero
set /p num1=
if %num1% leq 0 goto pedirNum
if %num1% geq 10 goto pedirNum
for /L %%i in (1,+1,%num1%) do (
echo Windows ruleS, Linux sucks %%i
)
7-
@echo off
set cont=1
set sum=1
:pedirNum
echo introduce un numero
set /p num1=
if %num1% leq 0 goto pedirNum
if %num1% geq 10 goto pedirNum
cls
:sacarOtroViaje
echo Windows ruleS, Linux sucks %cont%
set /a cont=%cont%+%sum%
if %cont% leq %num1% goto sacarOtroViaje

martes, 1 de octubre de 2013

Primeros ejercicios - Comandos DOS

Ejercicio 4

3-
@echo off
goto saludo
:saludo
echo Hola caracola
goto final
:final
4-
@echo off
echo ¿Que quieres comer?
echo 1- Confit de pato
echo 2- Jarrete de cordero
echo 3- Merluza a la romana
echo.
choice /C 123 /N /M "Selecciona uno: "
if errorlevel 3 goto merluza
if errorlevel 2 goto jarrete
if errorlevel 1 goto confit
:merluza
echo.
echo Has elegido Merluza
goto final
:jarrete
echo.
echo Has elegido Jarrete
goto final
:confit
echo.
echo Has elegido Confit
goto final
:final
echo Fin del programa
5-
@echo off
echo Introduce un tipo de operacion
echo 1- Suma
echo 2- Resta
echo 3- Multiplicacion
echo 4- Division
echo.
choice /C 1234 /N /M "Selecciona uno: "
if errorlevel 4 goto div
if errorlevel 3 goto mul
if errorlevel 2 goto res
if errorlevel 1 goto sum
:div
echo Introduce un numero
set /p num1=
echo Introduce otro numero
set /p num2=
set /a resul = %num1% / %num2%
echo El resultado es %sresul%
:mul
echo Introduce un numero
set /p num1=
echo Introduce otro numero
set /p num2=
set /a resul = %num1% * %num2%
echo El resultado es %sresul%
:res
echo Introduce un numero
set /p num1=
echo Introduce otro numero
set /p num2=
set /a resul = %num1% - %num2%
echo El resultado es %sresul%
:sum
echo Introduce un numero
set /p num1=
echo Introduce otro numero
set /p num2=
set /a resul = %num1% + %num2%
echo El resultado es %sresul%
6-
@echo off
:pedirDir
echo Introduce un directorio
set /p dir=
if not exist %dir% goto pedirDir
else
echo Elige una opcion
echo 1- dir
echo 2- attrib
echo 3- tree
echo 4- salir
echo.
choice /C 1234 /N /M "Selecciona uno: "
if errorlevel 4 goto salir1
if errorlevel 3 goto tree1
if errorlevel 2 goto attrib1
if errorlevel 1 goto dir1
:salir1
goto final
:tree1
tree %dir%
goto final
:attrib1
attrib %dir%
goto final
:dir1
dir %dir%
goto final
:final
echo Fin del programa