lunes, 23 de enero de 2017

Fecha de ultimo booteo con Powershell

Gracias a los amigos de Scripting Guy! que nos muestran la forma de obtener la fecha del ultimo booteo de un equipo con Powershell usando el cmdlet Get-CimInstance y consultando a la clase win32_operatingsystem.

Get-CimInstance -ClassName win32_operatingsystem | select csname, lastbootuptime

En este caso seleccionamos solo dos propiedades para mostrar (notese que si no usaramos el select la salida por defecto no nos mostraría el dato que necesitamos). Si quisiéramos ver algún otro dato podríamos usar el cmdlet Get-Member para ver el listado de propiedades y métodos del objeto devuelto:

Get-CimInstance -ClassName win32_operatingsystem | Get-Member

miércoles, 18 de enero de 2017

Obtener el SerialNumber de un disco mediante PowerShell

Existen varios métodos por el cual podemos obtener el Serial Number de un disco en PowerShell (es bueno no tener que apagar el equipo, ir al datacenter, y despanzurrar el server para encontrarlo :) ). Si bien es posible obtener el dato con WMIC desde una línea de comandos vamos a consultar WMI desde PowerShell.

Para eso vamos a utilizar el cmdlet Get-WMIObject de la siguiente manera:

Get-WMIObject -class win32_PhysicalMedia

Este cmdlet le va a consultar a WMI y va a mostrar algunos datos (incluyendo el SN) en formato de lista. Es posible cambiar el formato y mostrarlo como tabla así:

Get-WMIObject -class win32_PhysicalMedia | ft

De cualquiera de las dos formas el resultado puede ser difícil de ver por lo que podemos aprovechar que PowerShell devuelve un objeto (lo referenciamos poniendo entre paréntesis el comando anterior) y seleccionando la propiedad SerialNumber de ese objeto:

(Get-WMIObject -class win32_PhysicalMedia).SerialNumber

También podríamos hacerlo así:

Get-WMIObject -class win32_PhysicalMedia | SELECT SerialNumber

Ahora bien, en caso de tener discos agrupados en un Storage Pool esto no devuelve los SN, para eso debemos usar el cmdlet Get-PhysicalDisk, por ejemplo de la sgte manera:

Get-PhysicalDisk | SELECT FriendlyName, SerialNumber

Esto devuelve los datos para todos los discos esten o no en un Storage Pool.