在计算机上启动远程pssession时是否存在某种事件日志?我需要能够看到远程会话的来源。
当前我正在跑步
Get-EventLog -LogName "Windows powershell" -newest 100 | Format-List -Property * | where {$_.UserID -eq "username"}
但是它没有过滤和/或显示远程连接。
答案 0 :(得分:0)
我们在这里为您解决代码问题。这实际上不是代码问题,而是对如何设置以及在何处关联此类详细信息的理解。因此,这可能是另一个论坛的问题。
无论如何,要使您接近所追求的目标,还需要采取一些额外的步骤来获取此类信息。进一步说明。
现在,一旦完成所有设置,然后编写脚本来提取/查看此类信息,就会遇到问题,然后将其发布回此处,以供人们查看可以做什么
所以,这导致我们到这里: 共有三个常规的日志记录区域:
•模块记录 •脚本块记录 •PowerShell转录
如果您还没有这样做,我建议启用PS审计和脚本日志记录,以进一步了解此用例和脚本记录(可以捕获在主机上执行的所有命令/代码)。如果正确设置了所有这些设置,则可以首先查看记录日志以获取详细信息,并查看帖子中引用的日志名称以获取其他详细信息。
通过GPO或DSC在整个企业范围内设置。
关于如何进行设置有很多指导。
例如:
使用转录和日志记录功能审计PowerShell
Get-Command -Name '*transcript*'
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-TRSTranscriptionJob 3.3.234.0 AWSPowerShell
Cmdlet Get-TRSTranscriptionJobList 3.3.234.0 AWSPowerShell
Cmdlet Start-Transcript 3.0.0.0 Microsoft.PowerShell.Host
Cmdlet Start-TRSTranscriptionJob 3.3.234.0 AWSPowerShell
Cmdlet Stop-Transcript 3.0.0.0 Microsoft.PowerShell.Host
https://docs.microsoft.com/en-us/powershell/wmf/5.0/audit_overview
实用的PowerShell安全性:使用DSC启用审核和日志记录
PowerShell V5中的更多新功能:额外的PowerShell审核
Get-Module Microsoft.* | Select Name, LogPipelineExecutionDetails
Get-Module Microsoft.* | ForEach { $_.LogPipelineExecutionDetails = $True }
(Import-Module ActiveDirectory).LogPipelineExecutionDetails = $True
Get-WinEvent -FilterHashtable @{LogName='Windows PowerShell';Id ='800'} -MaxEvents 1 | Select -Expand Message
https://learn-powershell.net/2014/08/26/more-new-stuff-in-powershell-v5-extra-powershell-auditing
研究PowerShell:命令和脚本记录
https://www.crowdstrike.com/blog/investigating-powershell-command-and-script-logging