Powershell Get-WinEvent $_.Properties[ ].value ส่งกลับค่าที่ไม่คาดคิด

ใช้ PS เพื่อผ่านเหตุการณ์บางอย่าง ค้นหาการเข้าสู่ระบบที่ล้มเหลว (4635) จากนั้นรับข้อมูลที่เกี่ยวข้อง

ฉันมีบางอย่างเช่น:

Get-WinEvent -FilterHashtable @{path=$path; id=$ID} | ? {$_.Properties[5].Value -match $user} |
Select-Object -Property TimeCreated, @{Name="AccountName"; Expression={$_.Properties[5].Value}}, @{Name="IP ADDRESS"; Expression={$_.Properties[19].Value}}, @{Name="LOGON"; Expression={$_.Properties[10].Value}}, @{Name="DOMAIN"; Expression={$_.Properties[6].Value}}, @{Name="STATUS"; Expression={$_.Properties[9].value}}  | 
Format-Table -Auto | Out-File temp.txt

ทุกอย่างทำงานได้ดี ยกเว้น $_.Properties[9].value มันควรจะส่งคืนค่าฐานสิบหกบางส่วน (เช่น 0xc0000064) แต่ฉันได้รับจำนวนเต็มลบแทน เช่น -1073741718

ฉันจะรับรหัสฐานสิบหกได้อย่างไร ขอบคุณ


person user3403041    schedule 16.06.2014    source แหล่งที่มา


คำตอบ (1)


คุณสามารถใช้ได้

.ToString('X2')

บนจำนวนเต็มที่ไม่ได้ลงนามเพื่อส่งออกเป็นเลขฐานสิบหก

คุณสามารถจัดวางฟังก์ชันเพื่อจุดประสงค์นี้ได้

function int2hex
{
    param([int]$value)
    return "0x$($value.ToString('X2'))"
}
person Mathias R. Jessen    schedule 16.06.2014