Uso de PowerShell para usuarios domésticos: una guía para principiantes

Admin

¿Quién no desearía poder ser un mago y pronunciar algunas palabras para que sucedan cosas mágicas? Bueno, no podemos mostrarte cómo ser un mago, pero podemos mostrarte cómo hacer un poco de magia informática.

Si tienes una computadora con Windows con Windows 7, tienes PowerShell. Además, si tiene una computadora con Windows 7, actualícela por razones de seguridad.

Tabla de contenido

Pero este artículo no es solo para usuarios de Windows. La última versión de PowerShell es gratuita y se puede instalar y usar en computadoras Mac y Linux.

Eso es importante porque lo que aprende sobre PowerShell ahora se puede usar en casi cualquier computadora. ¿Quién sabe? Puede llevar esta habilidad al siguiente nivel y aventurarse en una carrera en Tecnología de la Información.

¿Qué es PowerShell?

La respuesta de alta tecnología de Microsoft es que es un "... shell de línea de comandos diseñado especialmente para administradores de sistemas". Suena intimidante. Pero no lo es. ¿Cuidas su computadora? Sí, entonces eres el administrador del sistema en tu casa.

¿Le dice a su computadora qué hacer con los clics y las pulsaciones de teclas? Sí, así que piense en el shell de la línea de comandos como una ventana más en la que escribe cosas para decirle a su computadora qué hacer. Puedes hacerlo.

PowerShell es como un lenguaje de programación, pero no tan críptico como la mayoría. Realmente se parece mucho al inglés normal, que era algo por lo que Microsoft se esforzó para que los no programadores pudieran aprenderlo.

Es una forma de escribir unas pocas líneas de comandos, llamadas script, para hacer que el sistema operativo Windows haga algo que usted quiere que haga. Luego, puede guardar esas líneas en un archivo y ejecutarlo con un clic o programarlo para que se ejecute periódicamente.

¿Qué puede hacer con PowerShell?

El punto de alto nivel de PowerShell es poder automatizar tareas, por lo que no tiene que perder el tiempo haciendo cosas mundanas repetidamente. Para un administrador de sistemas profesional, eso podría ser algo como crear nuevos usuarios, generar contraseñas para ellos y enviar un correo electrónico con los detalles a su nuevo supervisor.

Hecho manualmente, con clics y escribiendo, ese proceso puede tomar de 5 minutos a una hora o más. Con los scripts adecuados, es posible que el administrador de sistemas ni siquiera tenga que hacer parte de eso.

Pero quiere saber qué puede hacer con PowerShell en casa. Prácticamente cualquier cosa que no te guste hacer una y otra vez. Úselo para liberar espacio en su disco duro eliminando archivos temporales y de registro que no necesita.

Ponga un toque de queda en la computadora de su hijo. Cambie el nombre u organice un montón de archivos. Esa es la belleza de PowerShell. Casi cualquier cosa que pueda hacer en su computadora, puede crear un script de PowerShell para automatizar y ejecutar con un clic o en un horario.

¿Cómo uso PowerShell?

La forma más sencilla de trabajar con PowerShell es en el Entorno de scripting integrado de PowerShell (ISE). Puede encontrarlo haciendo clic en Inicio y escribiendo powershell ise en la barra de búsqueda en Windows 10. Debería verlo como se muestra a continuación.

Por primera vez que lo usemos, lo ejecutaremos como Administrador. Para hacer esto, primero debe tener derechos de administrador en su computadora. En tus Menu de inicio, haga clic derecho en PowerShell ISE, luego haga clic en Ejecutar como administrador.

Puede obtener un Usuario. Control de acceso (UAC) de advertencia emergente que le pregunta si está seguro de que desea hacerlo. esta. Hacer clic .

Ahora está viendo el IDE de PowerShell. El panel superior de la ventana (1) es el panel de secuencias de comandos. Aquí es donde escribirás tu guión. El panel inferior de la ventana. (2) es el área de la consola. Cuando pruebe su secuencia de comandos, verá el resultado en este panel.

Aquí es también donde verá mensajes de error y otros que lo ayudarán a corregir y mejorar sus scripts. El panel en el lado derecho de la ventana. (3) es el complemento de comando. Piense en ello como un diccionario de todos los comandos de PowerShell disponibles para usted.

PowerShell viene configurado para no ejecutar ningún script que no sean esos. ya forma parte de Windows. Deberá cambiarlo para poder ejecutar su. propios guiones.

En la ventana de secuencias de comandos, copie y pegue lo siguiente:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

El Set-ExecutionPolicy parte de él se llama cmdlet (se pronuncia commandlet). Los cmdlets son cosas poderosas. Piense en ellos como comandos cortos que puede darle a Windows, y Windows hará un montón de cosas más complicadas para satisfacer su comando.

Una analogía sería decirle a su hijo que limpie su habitación. Corto y al grano. Si su hijo está bien versado en la limpieza de habitaciones, entonces irá y hará su cama, pondrá la ropa sucia en la canasta, guardará sus juguetes y libros, y tal vez incluso pasará la aspiradora por el piso. Entienden que el cmdlet Clean-YourRoom significaba todo eso.

En la parte superior de la ventana, verá una punta de flecha verde. Haga clic en eso para ejecutar el comando.

El -Política de ejecución parte es decir Set-ExecutionPolicy qué política establecer. Es un parámetro. Dice: "Quiero que trabajes dentro de estas pautas y que hagas esto específicamente. Le dice que use la política específica de RemoteSigned.

El RemoteSigned La política establece que PowerShell no puede ejecutar ni ejecutar ningún script que se haya descargado de Internet a menos que esté firmado por un editor de confianza.

De forma indirecta, le dice a PowerShell que está bien ejecutar cualquier script creado localmente, porque no es necesario que esté firmado por un editor de confianza remoto. Ahora, su script de PowerShell podrá ejecutar cualquier script que escriba en su computadora.

Veamos una secuencia de comandos para eliminar archivos temporales. No lo es. tan poderoso o completo como CCleaner, pero CCleaner viene con su propio conjunto de archivos. problemas.

Use PowerShell para crear espacio en su disco duro

Desglosaremos este script, línea por línea, para que pueda verlo. cómo funciona. Al final, el script se mostrará por completo para que pueda copiarlo. y péguelo si lo desea.

$ TempFileLocation = "C: \ Users \ username \ Appdata \ Local \ Temp \ *"

Todo lo que tenga un signo de dólar delante es un nombre de variable. Piense en ello como una billetera para guardar cosas valiosas. Wallet nos recuerda el signo del dólar, los objetos de valor suenan como variables, así que también lo recordaremos. Estamos creando una billetera, o variable, llamada $ TempFileLocation. El signo igual le dice a PowerShell qué poner en esa variable.

En este caso, colocamos la ubicación de los archivos temporales de Windows: C: \ Usuarios \ nombre de usuario \ AppData \ Local \ Temp \ *. Hacemos esto por dos razones; es una ubicación de la que siempre es seguro eliminar archivos, y la usaremos para indicarle a PowerShell dónde debe ir para eliminar archivos.

Donde dice nombre de usuario en eso. ubicación, cámbiela por su nombre de usuario. Ese es el nombre de usuario que usa para iniciar sesión. en su computadora. El asterisco (*) al final de. es un comodín. Lo que representa es todo lo que hay en la carpeta Temp, porque todo lo que hay en la carpeta Temp es temporal. y queremos eliminarlo.

Las comillas dobles alrededor de la ubicación también son importantes. Ese. le dice a PowerShell que lo que hay allí es una cadena. Piense en una cuerda como una cuerda. de letras y caracteres. Si fueran números ordinarios, no usaríamos. citas.

$ TempFile = Get-ChildItem $ TempFileLocation -Recurse

Estamos creando otra variable. Esta vez usaremos un comando para encontrar algo para poner en el $ TempFile variable.

Get-ChildItem 

Otra cosa que notará acerca de los cmdlets como Get-ChildItem es que es totalmente legible. ¿Ves cómo la primera palabra es un verbo? Todos los cmdlets comienzan con palabras de acción, por lo que sabrá de inmediato lo que está haciendo. ChildItem es dos sustantivos.

La segunda parte del cmdlet siempre nos dirá a qué PowerShell aplicará la acción. ChildItem significa todos los elementos secundarios de una ubicación principal. Esto es como decir obtener todos los archivos que están en una carpeta, siendo los archivos los hijos y la carpeta el padre.

¿De qué obtiene el cmdlet los elementos secundarios? Todo en la variable $ TempFileLocation. PowerShell irá a la ubicación que pusimos en $ TempFileLocation anteriormente y obtendrá todos los elementos secundarios que están allí. Luego, los pondrá en la variable $ TempFile.

Entonces, ¿qué pasa con el -Recurrir ¿parte? Eso es revelador Get-ChildItem para revisar todo en ese lugar. No se limite a obtener los archivos inmediatamente dentro de la carpeta principal. Si hay carpetas en esa carpeta, obtenga todos sus hijos también, y sus hijos, etc. Vamos a conseguirlos todos.

$ TempFileCount = ($ TempFile) .count

Sí, estamos creando una tercera variable llamada $ TempFileCounty vamos a poner un número en esa variable. ¿Dónde está el número? Bien, ($ TempFile) .count nos va a dar ese número. Probablemente haya descubierto que la parte .count va a contar todos los archivos que acabamos de almacenar en $ TempFile.

¿Por qué hicimos esto? Principalmente porque es bueno saber cuántos archivos inútiles estamos limpiando con el resto del script para saber qué tan efectivo fue.

si ($ TempFileCount -eq 0)

Ahora estamos configurando una declaración condicional. Puede ver que está preguntando "si". ¿Si que? Si lo que está entre paréntesis es verdadero o falso. Los corchetes son importantes, de lo contrario, el If no sabe qué comparar. Aquí, se pregunta si el número que almacenamos en $ TempFileCount es igual a cero.

El -eq es la abreviatura de iguales. Es un tipo de operador de comparación. Es como decirle a sus hijos: "Si su habitación está limpia, genial, vamos a hacer algo ..." Esta declaración dice que si el número que se almacenó en $ TempFileCount es igual a cero, haga lo siguiente.

{Write-Host "No hay archivos en la carpeta $ TempFileLocation" -ForegroundColor Green}

Eso es lo que sucederá si $ TempFileCount es cero. Las llaves son importantes. Le dicen a PowerShell que haga solo lo que está dentro de ellos si $ TempFileCount es igual a cero.

Escribirá en el host, o en la pantalla, "No hay archivos en la carpeta C: \ Users \ username \ Appdata \ Local \ Temp \ *". El parámetro al final, -Color de primer plano le dice a PowerShell que haga que el texto sea verde. Eso solo hace que sea más fácil distinguirlo de un mensaje de error que normalmente es rojo.

Demás

Sabes lo que más significa. Esta es la parte de "Es mejor que su habitación esté limpia o de lo contrario ..." de verificar si su hijo limpió su habitación. Es lo que pasará si $ TempFileCount no es cero.

{$ TempFile | Quitar-elemento -Qué si -Confirmar: $ falso -Recurrir -Fuerza -Acción de advertencia SilentlyContinue -ErrorAction SilentlyContinue}

Esto dice ir a la ubicación actual almacenada en $ TempFile. La línea vertical que sigue a ella se llama tubería. Funciona como una tubería de la vida real, ya que le dice a PowerShell que canalice el contenido de $ TempFile en el cmdlet, como si fuera agua entubada en una lavadora. Entonces el cmdlet Remover el artículo hace lo que dice; elimina todo lo que esté en ese lugar.

El -Y si El parámetro es muy importante en esta etapa. Le dice a PowerShell que ejecute el comando, pero solo pruébelo, no elimine nada. Muéstranos qué pasaría si realmente hiciéramos esto.

Esto le permite probar comandos sin cambiar nada en su computadora. Deje el -WhatIf allí hasta que se sienta cómodo de que el guión hará lo que usted quiere que haga y nada más. Luego simplemente elimínelo y el script hará su trabajo.

El parámetro -Confirmar: $ falso evita que el script le pregunte si realmente desea eliminar el archivo. Sabes que -Recurrir lo hace. -Fuerza significa eliminar esa cosa pase lo que pase. -Acción de advertencia se establece en Continuar silenciosamente.

Esto evita que la secuencia de comandos le dé advertencias sobre lo que está eliminando. -ErrorAction se establece en Continuar silenciosamente de modo que si hay algún tipo de error en el proceso, siga avanzando.

Ahora estamos en la última línea.

Write-Host "Archivos $ TempFileCount borrados en la carpeta $ TempFileLocation" -ForegroundColor Green}

Al igual que Host de escritura hizo la primera vez, va a generar la siguiente oración, para que sepamos lo que sucedió. Nos dirá cuántos archivos se eliminaron de la carpeta que acaba de procesar y lo hará en verde para que sea más fácil de detectar.

Echemos un vistazo al guión en conjunto:

$ TempFileLocation = "C: \ Users \ guymcd \ Appdata \ Local \ Temp \ *"
$ TempFile = Get-ChildItem $ TempFileLocation -Recurse
$ TempFileCount = ($ TempFile) .count
if ($ TempFileCount -eq "0") {
Write-Host "No hay archivos en la carpeta $ TempFileLocation" - ForegroundColor Green
}
Demás {
$ TempFile | Eliminar-elemento -Confirmar: $ falso -Recurrir -Fuerza -Acción de advertencia en silencioContinuar -ErrorAcción en silencioContinuar
Write-Host "Archivos $ TempFileCount borrados en la carpeta $ TempFileLocation" -ForegroundColor Green
}

Puede copiar y pegar esto en su PowerShell ISE y guardarlo como algo como delete-TemporaryFiles.ps1. También puede ceñirse a la convención de nomenclatura de los cmdlets ahora que los comprende.

Si el código no le funciona por alguna razón, también puede descargar el script de PowerShell que creamos y simplemente lo ejecutamos. Simplemente descomprímalo primero para ver el archivo de secuencia de comandos.

Siempre que desee ejecutar este script, simplemente haga clic derecho sobre él y elija Ejecutar con PowerShell. Aparecerá una consola de PowerShell durante uno o dos segundos, mientras su script hace lo suyo, y luego desaparecerá si no hay errores.

¿Dónde puedo obtener más información sobre PowerShell?

¡Eso parece mucho! Para su primer script de PowerShell, es bastante. Si ha llegado hasta aquí, aplauda. Has aprendido mucho hoy, pero ahora quieres aprender más. ¡Eso es genial!

Hay muchos recursos en Internet para obtener más información sobre PowerShell. Un buen lugar para comenzar es nuestro artículo, "Genere una lista de programas de inicio a través de la línea de comandos o PowerShell”. Entonces echa un vistazo a estos otros recursos:

  • Introducción a Microsoft PowerShell - Academia Virtual de Microsoft
  • Tutorial de PowerShell - TutorialsPoint.com

Bienvenido a Help Desk Geek, un blog lleno de consejos técnicos de expertos en tecnología de confianza. Tenemos miles de artículos y guías para ayudarlo a solucionar cualquier problema. Nuestros artículos se han leído más de 150 millones de veces desde su lanzamiento en 2008.

También odiamos el spam, cancela tu suscripción en cualquier momento.

Las 8 mejores aplicaciones de software OCR gratuitas para convertir imágenes a texto
Las 8 mejores aplicaciones de software OCR gratuitas para convertir imágenes a texto

OCR o Reconocimiento óptico de caracteres es una técnica de software sofisticada que permite a un...

E-Learning para niños: las mejores aplicaciones y herramientas para educar a sus hijos en casa
E-Learning para niños: las mejores aplicaciones y herramientas para educar a sus hijos en casa

Entonces las escuelas pueden estar cerradas y los niños están en casa. No importa por qué esto es...

Las mejores herramientas de FTP para transferir archivos al dominio de su sitio web
Las mejores herramientas de FTP para transferir archivos al dominio de su sitio web

Usted sabe acerca de la nube y cómo son básicamente sus archivos en un servidor en otro lugar. Pe...