escuela friki: escribir su primer guión completo PowerShell

Hace unas semanas, el friki que mostró cómo se puede utilizar el símbolo del sistema para encontrar cuando el equipo se puso en marcha el pasado. En esta última instalación de la Escuela de experto PowerShell, vamos a escribir un comando de PowerShell reutilizable para hacer lo mismo.

Asegúrese de leer los artículos anteriores de la serie

Lo primero que tenemos que hacer es encontrar una manera de acceder a la información que busca. Dado que se trata de información de gestión, es probable que echar un vistazo a mediante WMI, que tiene de hecho una clase llamada Win32_OperatingSystem que le permite ver información detallada acerca de su sistema operativo, incluyendo la última vez que se puso en marcha.

Así que ahora que sabemos donde podemos encontrar la información que busca, abrir el ISE y escriba lo siguiente.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost

Select-Object-Propiedades CSName, LastBootUpTime

Nota: he tenido que dividir mi código a través de dos líneas de modo que todo encaja en la pantalla, pero no dude en escribir en una sola línea. Si usted elige para dividirlo en dos líneas, por favor asegúrese de que el carácter de barra vertical es el último carácter en la línea 1.

Ahora haga clic en el botón verde “Ejecutar script” o presione la tecla F5 en su teclado para probar el código.

WMI veces puede ser un poco críptico. Con esto queremos decir si nos fijamos en la propiedad LastBootUpTime, que dice al 03.19.2013 18:26:21, pero por alguna razón los chicos WMI decidió concatenar todo eso en una sola cadena. Por suerte para nosotros, que no tenemos que preocuparnos de forma manual analizar la cadena, ya que es una forma más fácil de hacerlo, aunque de forma más avanzada. Tendrá que cambiar la parte Select-Objeto del código para tener este aspecto

Select-Object-Propiedades CSName, @ {n = “iniciada por última vez”

e = {[Management.ManagementDateTimeConverter] :: ToDateTime ($ _. LastBootUpTime)}}

Lo que estamos haciendo aquí es crear una propiedad personalizada denominada “Última calzada” y especificando que su valor debe ser el resultado de llamar al método estático ToDateTime en la propiedad LastBootUpTime del objeto de canal actual. Su código debe parecerse a esto.

Ejecutar el código ahora dará lugar a una hora del último arranque mucho más legible.

Ahora que estamos contentos con la funcionalidad básica de nuestro script, tenemos que guardarlo. Para simplificar, vamos a guardar como la siguiente

C: \ Get-LastBootTime.ps1

Ahora cambie a la mitad inferior de la ISE y ejecutar el siguiente

C: \ Get-LastBootTime.ps1

¡Estupendo! Nuestra secuencia de comandos funciona como se espera, sin embargo, todavía hay un problema con nuestro guión. Nos Hardcoded el nombre del equipo que queremos obtener el último momento del arranque de. En lugar de los valores hardcoding, que más bien debe proporcionar un parámetro de tal manera que quien está utilizando la secuencia de comandos puede elegir qué equipo hace funcionar el script en contra. Para hacer eso, ir a la parte superior de la secuencia de comandos y haga lo siguiente.

param; [cadena] $ ComputerName

A continuación, reemplace el valor localhost codificado con la variable $ ComputerName. La secuencia de comandos ahora debería tener este aspecto

Guarde la secuencia de comandos, a continuación, volver a la mitad inferior de la ISE y ver la ayuda de la secuencia de comandos.

ayuda C: \ Get-LastBootTime.ps1

Impresionante, por lo que ahora podemos especificar el nombre del equipo que queremos obtener el último momento del arranque para el uso de nuestro nuevo parámetro ComputerName. Por desgracia, todavía hay algunas cosas mal. En primer lugar, el parámetro ComputerName es opcional y en segundo lugar, que es el más feo útiles que he visto, así que vamos a solucionar esos problemas de manera rápida. Para hacer que el parámetro ComputerName obligatorio, cambiar el contenido del bloque param a lo siguiente.

[Parámetro (Obligatorio = $ true)] [cadena] $ ComputerName

En cuanto a hacer un mejor archivo de ayuda, el método más común es utilizar la ayuda basada comentario. Eso significa que sólo tiene que añadir un comentario extra largo de la parte superior de la escritura a cabo.

. <# SINOPSIS; Aparece cuando la última comenzó su PC up..DESCRIPTION; Esta es una función de contenedor de WMI para obtener el tiempo que su PC inició por última vez up..PARAMETER ComputerName; El nombre del equipo que desea ejecutar el comando en contra. .EJEMPLO; Get-LastBootTime -ComputerName localhost.LINK; www..com; #>

Una vez que todo lo que se hace, debe terminar con un guión con este aspecto.

Ahora vamos a ir y comprobar nuestro nuevo archivo de ayuda.

Ahhh, que parece grande! Ahora que nuestro guión es completa, tenemos una última cosa por hacer: la prueba. Para ello, voy a salir fuera de la ISE y la cabeza hacia atrás en la consola de PowerShell sólo para que podamos asegurarnos de que no hay anomalías.

Si usted comienza con un simple forro y acaba de seguir construyendo sobre ella como lo hicimos en esta guía, usted conseguirá la caída de ella en ningún momento. Eso es todo por esta vez las personas, nos vemos en la próxima instalación de la Escuela experto.

Hola

En primer lugar, por favor, quiero expresar mi agradecimiento al Sr. Gibb para la serie PowerShell. Y cómo hacerlo experto también. He marcado cada artículo (12 en total, si he contado correctamente) y estoy deseando que llegue mi educación en PowerShell a través de los artículos.

Si se me permite, una pregunta rápida … ¿Hay un orden recomendado en la que los artículos deben ser leídos y absorbidos?

Gracias.

El primero al último sería queridos suposición natural

El Sr. Nanoexperto

Con respecto a su estado de “el primero al último sería queridos suposición natural,” pudiera volver atrás y mirar hacia arriba las fechas de publicación de cada artículo y por supuesto que esas fechas proporcionarían el orden correcto en que deben ser estudiados.

Sin embargo, otras consideraciones pueden dictar la orden de publicación, tales como

a) la cantidad de espacio disponible en wordage un tema en particular

b) de la simple disponibilidad de un artículo para su publicación inmediata cuando otros están aún se está escribiendo, o

c) cualquier número de otras razones que podrían dar lugar a la publicación de los artículos en un orden que no conducen al aprendizaje.

En otros foros, cuando he sido el que responde en lugar de la pregunta, he tenido cuidado de proporcionar exacta, investigado y respuestas corteses, incluso cuando pensaba que la respuesta a la pregunta era ya sea obvia o disponible rápidamente con poco esfuerzo por parte de la persona que solicite .

Su respuesta de “First to Last hubieran sido los suposición natural.” era poco más que una observación inteligente Alec gritó desde la última fila de un aula al anfiteatro de tamaño por una C o D + estudiante. Además, su gramática era pobre. Peor aún, no ha respondido a la pregunta.

Conjeturo que no se convertirá en un recurso de gran valor para los que buscan ayuda en este o cualquier otro foro. Respuestas como la suya pueden ser auto-cumplida, sin embargo. En este punto mi primera pregunta en este foro bien podría ser la última.

Mientras tanto, la pregunta sigue sin respuesta. En el estudio de los artículos PowerShell, en qué orden deben ser leídos y que absorben?

Gracias.

Así que alguien está teniendo un mal día … Por favor, tenga en cuenta que la Giñar muestra que estoy hablando de una manera jovial. Nunca traté de agravar ti. Y la gramática pobre sería porque es extremadamente difícil de navegar en una iPod.Is su nombre real Sheldon Cooper por casualidad (nótese el guiño)

Por favor, acepte mis más sinceras disculpas. Hice paso a la arena de la grosería, ¿verdad?

Mi esposa le encanta Big Bang. Yo no lo encuentro divertido que yo (mi sentido del humor favorece la versión anterior de Dos hombres y medio), pero me encanta escuchar su risa a Sheldon y los demás. Para mí, su sonido de su risa es mucho mejor que la propia comedia.

Y he encontrado la respuesta a mi pregunta a mí mismo: ya que voy a leer todos los artículos de todos modos, ¿por qué no seguir adelante y hacer eso y ordenarlos en mi cabeza sobre la marcha?

Te deseo lo mejor ….

¡No es para preocuparse! Disfruta tu día

El hecho es que su pregunta sí señala algo que ha estado en mi lista de tareas … la navegación para los artículos escolares experto es pésimo, y necesita ser arreglado.

Y sí, por desgracia @Nanoexperto un sarcasmo no es el más útil primera respuesta a su pregunta.

A pesar de la creencia de muchos años que las pirámides fueron construidas por esclavos, en realidad estaban construidas por miles de trabajadores remunerados.