2017-09-14 3 views
0

Je suis tombé sur ce script powershell très utile et simple pour écrire un journal des événements. Mon problème est que je veux écrire le résultat en tant que message d'événement. Je reçois quelque chose qui ressemble à la variable $ result mais pas exactement comme imprimé sur l'écran. Quelqu'un peut-il me diriger vers la bonne direction?Ajout du résultat de la variable Powershell au journal des événements

begin { 
    $EventHashInformation = @{ 
     LogName = 'Application' 
     Source = 'My Script' 
     EventId = 2783 
     EntryType = 'Information' 
    } 
    $EventHashWarning  = @{ 
     LogName = 'Application' 
     Source = 'My Script' 
     EventId = 2784 
     EntryType = 'Warning' 
    } 
    Write-EventLog @EventHashInformation -Message 'Script started' 
} 

process { 
    try { 
     $result = Get-CimInstance -ClassName Win32_Bios -ErrorAction Stop 
     Write-EventLog @EventHashInformation -Message $result 
    } catch { 
     Write-EventLog @EventHashWarning -Message 'Error occurred while queried Win32_Bios' 
    } 
} 

end { 
    Write-EventLog @EventHashInformation -Message 'Script finished' 
} 

C'est ce que je reçois dans le journal des événements

Win32_BIOS: BIOS Date: 05/23/12 17:15:53 Ver: 09.00.06 (Name = "BIOS Date: 05/23/12 17:15:53 Ver: 09.0..., SoftwareElementID = "BIOS Date: 05/23/12 17:15:53 Ver: 09.0..., SoftwareElementState = 3, TargetOperatingSystem = 0, Version = "VRTUAL - 5001223") : %2 

C'est ce que je dois (impression écran en Powershell)

SMBIOSBIOSVersion : 60KT38AUS 
Manufacturer  : LENOVO 
Name    : Lenovo ThinkStation BIOS Ver 60KT38.0 
SerialNumber  : MJWNY54 
Version   : LENOVO - 60400d0 
+1

Pouvez-vous montrer ce que vous obtenez et ce que votre expecti ng? – ArcSet

Répondre

1
$result = (Get-CimInstance -ClassName Win32_Bios -ErrorAction Stop | Out-String).Trim() 

Convertir la sortie chaîne

+0

Merci Vincent K. C'est ce qu'il a fait –