Blog
Hier poste ich dinge zu Themen die mich beschäftigten.
2023-04-30
Um Benutzer zu finden, die innerhalb der letzten X Stunden Microsoft Edge, Mozilla Firefox oder Google Chrome verwendet haben, können Sie das folgende PowerShell-Skript verwenden. Dieses Skript durchsucht die Windows-Ereignisprotokolle auf Anwendungsstart-Ereignisse und erfasst die Benutzernamen und die Gesamtnutzungszeit für jeden Benutzer.
Bitte beachten Sie, dass das Skript möglicherweise nicht in allen Fällen funktioniert, da es von der Verfügbarkeit und Struktur der Ereignisprotokolle abhängt.
“`powershell
$hours = 2 # Setzen Sie die Anzahl der Stunden, die berücksichtigt werden sollen
$logFile = “C:tmpUserBrowserUsage.log” # Pfad zur Logdatei
$startTime = (Get-Date).AddHours(-$hours)
# Browser-Namen und Prozessnamen definieren
$browsers = @(
@{Name = “Microsoft Edge”; ProcessName = “msedge”},
@{Name = “Mozilla Firefox”; ProcessName = “firefox”},
@{Name = “Google Chrome”; ProcessName = “chrome”}
)
# Funktion zum Abrufen der Anwendungsstart-Ereignisse
function Get-AppStartEvents {
param (
[string]$ProcessName,
[datetime]$StartTime
)
Get-WinEvent -FilterHashtable @{
LogName = “Security”
Id = 4688
StartTime = $StartTime
} | Where-Object {
$_.Properties[5].Value -eq $ProcessName
}
}
# Funktion zum Schreiben in die Logdatei
function Write-Log {
param (
[string]$Message
)
Add-Content -Path $logFile -Value $Message
}
# Hauptausführung
$userUsage = @{}
foreach ($browser in $browsers) {
$events = Get-AppStartEvents -ProcessName $browser.ProcessName -StartTime $startTime
foreach ($event in $events) {
$username = $event.Properties[1].Value
if (-not $userUsage.ContainsKey($username)) {
$userUsage[$username] = @{}
}
if (-not $userUsage[$username].ContainsKey($browser.Name)) {
$userUsage[$username][$browser.Name] = 0
}
$userUsage[$username][$browser.Name]++
}
}
foreach ($user in $userUsage.Keys) {
Write-Log “User: $user”
foreach ($browser in $browsers) {
$browserName = $browser.Name
$usageCount = $userUsage[$user][$browserName]
Write-Log “$browserName Usage Count: $($usageCount -eq $null ? 0 : $usageCount)”
}
Write-Log “”
}
“`
Das Skript gibt die Benutzernamen und die Nutzungsanzahl der Browser innerhalb der angegebenen Zeit in die angegebene Logdatei aus. Sie können `$hours` anpassen, um die Anzahl der Stunden festzulegen, die berücksichtigt werden sollen, und `$logFile`, um den Pfad zur Logdatei zu ändern.
Admin - 19:23:31 @ Projekte, Powershell-Skripte | Kommentar hinzufügen
Die an dieser Stelle vorgesehenen Inhalte können aufgrund Ihrer aktuellen Cookie-Einstellungen nicht angezeigt werden.
Diese Webseite bietet möglicherweise Inhalte oder Funktionalitäten an, die von Drittanbietern eigenverantwortlich zur Verfügung gestellt werden. Diese Drittanbieter können eigene Cookies setzen, z.B. um die Nutzeraktivität zu verfolgen oder ihre Angebote zu personalisieren und zu optimieren.
Diese Webseite verwendet Cookies, um Besuchern ein optimales Nutzererlebnis zu bieten. Bestimmte Inhalte von Drittanbietern werden nur angezeigt, wenn die entsprechende Option aktiviert ist. Die Datenverarbeitung kann dann auch in einem Drittland erfolgen. Weitere Informationen hierzu in der Datenschutzerklärung.