Há várias classes WMI e um objeto de script para analisar ou converter o formato datetime do CIM. Para obter outros exemplos, consulte o TechNet ScriptCenter em https://www.microsoft.com/technet.
Os exemplos de script mostrados neste tópico obtêm dados somente do computador local. Para obter mais informações sobre como usar o script para obter dados de computadores remotos, consulte Conectando-se ao WMI em um computador remoto.
Para executar um script
O procedimento a seguir descreve como executar um script.
Copie o código e salve-o em um arquivo com uma extensão .vbs, como filename.vbs. Certifique-se de que o editor de texto não adiciona uma extensão .txt ao arquivo.
Abra uma janela de prompt de comando e navegue até o diretório onde você salvou o arquivo.
Digite cscript filename.vbs no prompt de comando.
Se não conseguir aceder a um registo de eventos, verifique se está a executar a partir de uma linha de comandos Elevados. Alguns Logs de Eventos, como o Log de Eventos de Segurança, podem estar protegidos por Controles de Acesso de Usuário (UAC).
Observação
Por padrão, o cscript exibe a saída de um script na janela do prompt de comando. Como os scripts WMI podem produzir grandes quantidades de saída, convém redirecionar a saída para um arquivo. Digite cscript filename.vbs > outfile.txt no prompt de comando para redirecionar a saída do script filename.vbs para outfile.txt.
A tabela a seguir lista exemplos de script que podem ser usados para obter vários tipos de dados do computador local.
Set dtmInstallDate = CreateObject("WbemScripting.SWbemDateTime")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each strOS in objOS
dtmInstallDate.Value = strOS.InstallDate
Wscript.Echo dtmInstallDate.GetVarDate
Next
Ou peça ao seu código que faça a tarefa manualmente.
... Determinar o nome do fuso horário em que um computador está sendo executado?
Use a classe Win32_TimeZone e verifique o valor da propriedade Description.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")
For Each objItem in colItems
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "Daylight Name: " & objItem.DaylightName
Wscript.Echo "Standard Name: " & objItem.StandardName
Wscript.Echo
Next
PowerShell
$Computer = "."
$timezone = Get-WMIObject -class Win32_TimeZone -ComputerName $computer
<# Display details #>
if ($computer -eq ".") {$computer = Hostname}
"Time zone information on computer `"{0}`"" -f $computer
"Time Zone Description : {0}" -f $timezone.Description
"Daylight Name : {0}" -f $timezone.DaylightName
"Standard Name : {0}" -f $timezone.StandardName
... garantir que "10/02/2000" seja interpretado como 2 de outubro de 2000, e não como "10 de fevereiro de 2000"?
Gerencie datas no formato deCIM DATETIME e use métodos de SWbemDateTime, como GetVarDate para convertê-las de e para formatos FILETIME ou VT_Date. Como o formato DATETIME é independente de localidade, você pode escrever um script que é executado em qualquer máquina. Use o objeto SWbemDateTime para convertê-los em datas e horas regulares. Consulte Formato de data e hora para obter mais informações sobre a conversão de datas e horas.
... converter um datetime WMI em um valor .NET DateTime?
Analise manualmente a cadeia de caracteres e, em seguida, coloque os valores recuperados em um objeto DateTime.