我是一个PowerShell新手,我想创建一个过滤器来捕获人类用户的登录信息。查看那里的文档,最流行的WMI查询似乎是:
SELECT * FROM __InstanceCreationEvent WITHIN 15 WHERE TargetInstance
ISA 'Win32_LogonSession' AND TargetInstance.LogonType = 2
这似乎不起作用,我认为交互式登录应该是0型而不是2.但是,这似乎仍然不起作用。你们有没有过滤器?加尔斯知道这有用吗?
答案 0 :(得分:3)
正如您所说,基于Microsoft's documentation,交互式登录似乎是2的值。
使用PowerShell,您可以使用以下内容进行查询:
如果您不确定运行$PSVersionTable.PSVersion
的版本并查看主要版本。
Powershell版本2或以下
Get-WmiObject -Class 'Win32_LogonSession' | Where {$_.LogonType -eq '2'}
PowerShell版本3或更高版本
Get-CimInstance -ClassName 'Win32_LogonSession' | Where {$_.LogonType -eq '2'}
基于Microsoft's documentation,您可以通过以下任何方式进行查询:
2 =互动
3 =网络
4 =批次
5 =服务
6 =代理
7 =解锁
8 = NetworkClearText
9 = NewCredentials
10 = RemoteInteractive
11 = CachedInteractive
12 = CachedRemoteInteractive
13 = CachedUnlock
如果要查询多个登录类型,可以将where语句更改为:
Where {$_.LogonType -in ('2','10','11','12')}
希望这有帮助。