Sql-Server
ProcessID Owner 與第三方應用程序
我在嘗試使用 SQLServer 後端審核第三方應用程序時遇到問題。
該應用程序通過 SQL 表管理使用者和使用者訪問,使用單個 SQL 登錄來訪問數據庫。
我正在嘗試通過使用主機 PID 來審核這一點,就像 Windows 任務管理器為每個程序關聯一個 PID 和所有者一樣。
這是我嘗試過的和嘗試過的
- 我能夠弄清楚如何提取
app.exe
PID。- 我無法弄清楚如何讓 Windows 所有者與該 PID 關聯。
- 我曾嘗試使用
xp_cmdshell
查詢 Windows 任務列表,甚至編寫了一個 .Net 控制台應用程序,該應用程序由 SQL 呼叫以收集資訊,但每次我嘗試提取所有者時它都是空白的。關於如何獲得所有者的任何想法?
我無法弄清楚如何讓 Windows 所有者與該 PID 關聯。
您可以使用 PowerShell 獲取所有者:
# Identify the name of the remote computer you want to query $computerName = 'SomeRemoteComputerName' # Invoke the command on the remote system to get the information that is necessary Invoke-Command -ComputerName $computerName -ScriptBlock { # Build a hashtable that associates process ids with owners $processOwners = @{} Get-WmiObject -Class Win32_Process | ForEach-Object { $processOwner = $_.GetOwner() # Combine the domain and user information together to get the process owner $processOwners[[int]$_.ProcessId] = $processOwner.Domain + '\' + $processOwner.User } # Now get all processes and add the owner information to them Get-Process | ForEach-Object { $processOwner = $null # If we have process owner information for the process, look up the owner in the table if ($processOwners.ContainsKey($_.Id)) { $processOwner = $processOwners[$_.Id] } # Add the owner information to the current process object Add-Member -InputObject $_ -MemberType NoteProperty -Name Owner -Value $processOwner # Return the current process object from the script block $_ } | Select-Object Name,Owner,Description }
我假設您的應用程序正在執行使用者/密碼檢查,正如您所說的它管理使用者。通過擴展事件,您可以審核登錄名和每個需要的欄位。