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

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

¿Quién no desearía que pudieran 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 de Windows con Windows 7, tienes PowerShell. Además, si tiene una computadora con Windows 7, actualice por el bien de la seguridad.

Tabla de contenido

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

    Puedes obtener un Control de acceso de usuario (UAC) ADVERTENCIA PARA PARA PARA SE SEGURO QUE QUIERE HACER ESTO. Hacer clic .

    Ahora estás mirando el ide de PowerShell. El panel superior de la ventana (1) es el panel de secuencias de comandos. Aquí es donde escribirás tu script. El panel inferior de la ventana (2) es el área de la consola. Cuando pruebe su script, verá la salida en este panel.

    Aquí también es donde verá mensajes de error y de tal manera que lo ayudará a arreglar 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 a no ejecutar ningún script que no sea una parte de Windows. Deberá cambiarlo para que pueda ejecutar sus propios scripts.

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

    Set -ejecutionPolicy -ExecutionPolicy Remotesigned

    El Set-ExecutionPolicy Parte de ella se llama cmdlet (pronunciado comandle). Los cmdlets son cosas poderosas. Piense en ellos como comandos cortos que puede dar Windows, y Windows irá a hacer un montón de cosas más complicadas para satisfacer sus 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 la habitación, entonces irá a preparar su cama, la ropa en la canasta, envuelve sus juguetes y libros, y tal vez incluso aspiran el piso. Entienden que el cmdlet limpio yeurroom significaba todo eso.

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

    El -Ejecución Parte es decir Set-ExecutionPolicy que política establecer. Es un parámetro. Está diciendo: "Quiero que trabajes dentro de estas pautas y hagas específicamente esto. Le dice que use la política específica de remoteseño.

    El Remoturado La política establece que PowerShell puede no ejecutar ni ejecutar ningún script que se descargara de Internet a menos que fuera firmado por un editor de confianza.

    De manera indirecta, le dice a PowerShell que está bien ejecutar cualquier script creado localmente, porque no necesitan ser firmados 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 minucioso 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 puedas ver cómo funciona. Al final, el script se mostrará por completo para que pueda copiarlo y pegarlo si lo desea.

    $ TempfileLocation = "c: \ users \ username \ appData \ local \ temp \*"

    Cualquier cosa con un signo de dólar frente a él es un nombre variable. Piense en ello como una billetera para poner cosas valiosas en. La billetera nos recuerda el signo de dólar, los valores de valor suenan como variables, por lo que también lo recordaremos. Estamos creando una billetera o variable con nombre $ TempfileLocation. El signo igual le dice a PowerShell qué poner en esa variable.

    En este caso, estamos colocando la ubicación de la ubicación de los archivos temporales de Windows - C: \ Users \ UserName \ AppData \ Local \ Temp \*. Estamos haciendo esto por dos razones; Es una ubicación que siempre es segura para eliminar archivos, y la usaremos para decirle a PowerShell a dónde debe ir a 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 es un comodín. Lo que representa es todo en la temperatura de la carpeta, porque todo en la carpeta de temperatura es temporal y queremos eliminarlo.

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

    $ Tempfile = get -childItem $ tempfileLocation -Recurse

    Estamos haciendo otra variable. Esta vez vamos a usar un comando para encontrar algo para poner en el $ Tempfile variable.

    Get-Childitem 

    Otra cosa que notarás sobre cmdlets como Get-Childitem es que es totalmente legible. Vea cómo la primera palabra es un verbo? Los cmdlets comienzan con palabras de acción, por lo que inmediatamente sabes lo que está haciendo. ChildItem es dos sustantivos.

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

    ¿Cuál es el cmdlet obteniendo los artículos infantiles de? Todo en la variable $ TempfileLocation. PowerShell irá a la ubicación que ponemos en $ tempfilelocation antes y obtendrá todos los artículos para niños que están allí. Entonces, los pondrá en la variable $ Tempfile.

    Entonces, ¿qué pasa con el -Recurrir parte? Eso es revelador Get-Childitem pasar por todo en ese lugar. No solo vaya a buscar los archivos inmediatamente dentro de la carpeta principal. Si hay carpetas en esa carpeta, obtenga a todos sus hijos también, y sus hijos, etc. Vamos a conseguirlos todos.

    $ TempfileCount = ($ tempfile).contar

    Sí, estamos creando una tercera variable llamada $ Tempfilecount, y vamos a poner un número en esa variable. Donde esta el número? Bien, ($ Tempfile).contar nos va a conseguir ese número. Probablemente hayas descubierto que el .La parte del recuento 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 que podamos decir cuán efectivo fue.

    if ($ tempfileCount -eq 0)

    Ahora estamos configurando una declaración condicional. Puedes ver que está preguntando 'si'. Si que? Si la cosa en los soportes es verdadera o falsa. Los soportes son importantes, de lo contrario, si no sabe qué comparar. Aquí, está preguntando si el número en el que almacenamos $ Tempfilecount es igual a cero.

    El -ecualización es la taquigrafía para iguales. Es un tipo de operador de comparación. Es como decirles a sus hijos: "Si su habitación está limpia, genial, vamos a hacer algo ..." Esta declaración dice si el número que se almacena en $ tempfilecount es igual a cero hacer lo siguiente.

    Write -Host "No hay archivos en la carpeta $ TempFilelocation" -ForegroundColor Green

    Eso es lo que sucederá si $ Tempfilecount es cero. Los soportes rizados son importantes. Le dicen a PowerShell que haga solo lo que hay 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 el texto verde. Eso hace que sea más fácil distinguir de un mensaje de error que normalmente es rojo.

    Demás

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

    $ Tempfile | Eliminar -Item -whatif -confirm: $ FALSE -Recurse -force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue

    Esto dice ir a la ubicación actual almacenada en $ Tempfile. La línea vertical después de que 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 en una lavadora. Entonces el cmdlet Remover el artículo hace lo que dice; Elimina lo que sea 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. Solo muéstranos lo que pasaría si realmente hiciéramos esto.

    Esto le permite probar comandos sin cambiar nada en su computadora. Deja el -whatif allí hasta que te sientas cómodo de que el guión haga lo que quieras que haga y nada más. Entonces simplemente elimine eso y el guión 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 sin importar qué. -Advertencia se establece en Contener en silencio.

    Esto evita que el guión te dé advertencias sobre lo que estás eliminando. -ErrorAction se establece en Contener en silencio para que si hay algún tipo de error en el proceso, simplemente sigue avanzando.

    Ahora estamos en la última línea.

    Write -Host "Cleared $ tempfilecount archivos en la carpeta $ tempfileLocation" -foregroundColor Green

    Al igual que Host de escritura Hice la primera vez, generará la siguiente oración, por lo que sabemos lo que ha sucedido. Nos dirá cuántos archivos se eliminaron de la carpeta que simplemente procesó y lo hará en verde para que sea fácil de detectar.

    Veamos el script por completo:

    $ TempfileLocation = "C: \ Users \ Guymcd \ AppData \ Local \ Temp \*"
    $ Tempfile = get -childItem $ tempfileLocation -Recurse
    $ TempfileCount = ($ tempfile).contar
    if ($ tempfileCount -eq "0")
    Write -Host "No hay archivos en la carpeta $ tempfileLocatation" - FeergroundColor Green

    Demás
    $ TEMPFILE | Eliminar -item -confirm: $ false -Recurse -force -Warningactaction SilentlyContinue -RroractionContinue
    Write -Host "Cleared $ tempfilecount archivos en la carpeta $ tempfileLocation" -ForegroundColor Green

    Puede copiar y pegar esto en su ISE PowerShell y guardarlo como algo así como Delete-TemporaryFiles.PS1. También puede seguir con la convención de nombres de los cmdlets ahora que los comprende.

    Si el código no funciona para usted por alguna razón, también puede descargar el script PowerShell que creamos y simplemente ejecutarlo. Simplemente descompite primero para ver el archivo de script.

    Siempre que desee ejecutar este script, simplemente haga clic derecho y elija Correr con PowerShell. Una consola PowerShell aparecerá por un segundo o dos, mientras que su guión hace lo suyo, y luego desaparecerá si no hay errores.

    ¿Dónde puedo aprender más PowerShell??

    Eso parece mucho! Para su primer script de PowerShell es un poco. Si has llegado tan lejos, aplaudirte. Has aprendido mucho hoy, pero ahora quieres aprender más. 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 mira estos otros recursos:

    • Comenzando con Microsoft PowerShell - Microsoft Virtual Academy
    • Tutorial de PowerShell - TutorialSpoint.comunicarse