Nueva publicación para dar respuesta a lo que necesites sobre el topic del que te hablamos ahora.
Esperamos que te ayude:
¿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 tiene una computadora con Windows con Windows 7, tiene PowerShell. Además, si tiene una computadora con Windows 7, actualícela por razones de seguridad.

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í, entonces 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 que el sistema operativo Windows haga algo que usted desea 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, para que no tenga 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 Control de acceso de usuarios (UAC) de advertencia emergente que le pregunta si está seguro de que desea hacer esto. Hacer clic si.

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á la salida 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 los que ya forman parte de Windows. Deberá cambiarlo para poder ejecutar sus propios scripts.
En la ventana de secuencias de comandos, copie y pegue lo siguiente:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
los 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 aspirará 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.

los -Política de ejecución parte es decir Set-ExecutionPolicy qué política establecer. Es un parámetro. Está diciendo: “Quiero que trabaje dentro de estas pautas y haga específicamente esto. Le dice que use la política específica de RemoteSigned.
los RemoteSigned La política establece que PowerShell no puede ejecutar ni ejecutar ningún script que se haya descargado de Internet a menos que haya sido firmado por un editor de confianza.
De manera 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 un script para eliminar archivos temporales. No es tan poderoso o completo como CCleaner, pero CCleaner viene con su propio conjunto de problemas.
Use PowerShell para crear espacio en su disco duro
Desglosaremos este script, línea por línea, para que pueda ver cómo funciona. Al final, el script se mostrará por completo para que pueda copiarlo y pegarlo si lo desea.
$TempFileLocation = "C:UsersusernameAppdataLocalTemp*"
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. La billetera 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, colocaremos 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 esa ubicación, cámbielo por su nombre de usuario. Ese es el nombre de usuario que usa para iniciar sesión en su computadora. El asterisco
al final hay 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.
$TempFile = Get-ChildItem $TempFileLocation -Recurse
Las comillas dobles alrededor de la ubicación también son importantes. Eso le dice a PowerShell que lo que hay allí es una cadena. Piense en una cadena como una cadena de letras y caracteres. Si fueran números ordinarios, no usaríamos las comillas. Estamos creando otra variable. Esta vez usaremos un comando para encontrar algo para poner en el $ TempFile
Get-ChildItem
variable. 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 inmediatamente sabes lo que están 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
$TempFileCount = ($TempFile).count
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. 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 se haya dado cuenta de que la parte .count va a contar todos los archivos que acabamos de almacenar en $ TempFile.
if($TempFileCount -eq 0)
¿Por qué hicimos esto? Sobre todo porque es bueno saber cuántos archivos inútiles estamos limpiando con el resto del script para que podamos saber qué tan efectivo fue. Ahora estamos configurando una declaración condicional. Puedes 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. los -eq
Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green
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. Eso es lo que pasará 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
Else
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. Sabes lo que más significa. Esta es la parte de “Es mejor que tu habitación esté limpia o de lo contrario …” de verificar si tu hijo limpió su habitación. Es lo que pasará si $ TempFileCount
Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
no es cero. Esto dice ir a la ubicación actual almacenada en$ TempFile .
La línea vertical que le sigue 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 lo que esté en ese lugar. los -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 -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, 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 hace.
-Fuerza significa eliminar esa cosa pase lo que pase. -Acción de advertencia se establece enContinuar silenciosamente
. Esto evita que el script 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.
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}
Ahora estamos en la última línea. Al igual que Host de escritura
hizo la primera vez, se mostrará 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.
$TempFileLocation = "C:UsersguymcdAppdataLocalTemp*" $TempFile = Get-ChildItem $TempFileLocation -Recurse $TempFileCount = ($TempFile).count
if($TempFileCount -eq “0”)
Write-Host “There are no files in the folder $TempFileLocation” – ForegroundColor Green
Else
$TempFile
Veamos el guión por completo: Puede copiar y pegar esto en su PowerShell ISE y guardarlo como algo comodelete-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 ejecutarlo. 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 elijaEjecutar con PowerShell

. Aparecerá una consola de PowerShell durante uno o dos segundos, mientras su secuencia de comandos 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 aprender más 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
”. Luego, consulte estos otros recursos: