Я новичок в программировании.Я использую PowerShell для фильтрации и возврата записей из журнала событий безопасности Windows на удаленном сервере в текстовом файле.Я использую скрипт Python, чтобы подсчитать, сколько раз имена пользователей появляются в тексте.При работе с исходным текстовым файлом, Python печатает и пустой словарь {}.Но, если я скопирую содержимое текстового файла и вставлю его в новый текстовый файл и запустю свой скрипт на python для него, он вернёт правильный счет: {'name1': 2, 'name2': 13, 'name3': 1, 'name4': 1, 'name5': 2, 'name6': 2}
.Текстовые файлы выглядят одинаково, а позиции символов идентичны.В чем может быть проблема?
Powershell
Get-WinEvent -LogName "Security" -ComputerName server01 | Where-Object {$_.ID -eq 4663} | where Message -CNotLike "*name1*" | where Message -CNotLike "*name2*" | Format-List -Property * | Out-File "C:\apowershell\winsec\events.txt"
Python
fhand = open('events2.txt')
counts = dict()
for line in fhand:
if line.startswith(' Account Name:'):
words = line.split()
words.remove('Account')
words.remove('Name:')
for word in words:
if word not in counts:
counts[word] = 1
else:
counts[word] += 1
print(counts)
Запись журнала Сообщение: была сделана попытка доступа к объекту.
Subject:
Security ID: S-1-5-21-495698755-754321212-623647154-4521
Account Name: name1
Account Domain: companydomain
Logon ID: 0x8CB9C5024
Object:
Object Server: Security
Object Type: File
Object Name: e:\share\file.txt
Handle ID: 0x439c
Resource Attributes: S:PAI
Process Information:
Process ID: 0x2de8
Process Name: C:\Windows\System32\memshell.exe
Access Request Information:
Accesses: Execute/Traverse
Access Mask: 0x20