Active directory 从AD OU查找用户,并在事件日志中查找每个用户的登录和注销时间

Active directory 从AD OU查找用户,并在事件日志中查找每个用户的登录和注销时间,active-directory,powershell-3.0,Active Directory,Powershell 3.0,我正在搜索一个脚本,该脚本将来自Active Directory OU的所有用户作为 $searchBase=“ou=users,ou=ABC,ou=Gardezi,DC=Gardezi,DC=com” $searchTree=“ou=XXDepartment,”,“ou=CSDepartment,” foreach($searchTree中的ou){ 编写主机“在OU中搜索:$OU$searchBase” $name=$ou $name=$name.subString($name.IndexO

我正在搜索一个脚本,该脚本将来自Active Directory OU的所有用户作为

$searchBase=“ou=users,ou=ABC,ou=Gardezi,DC=Gardezi,DC=com”
$searchTree=“ou=XXDepartment,”,“ou=CSDepartment,”
foreach($searchTree中的ou){
编写主机“在OU中搜索:$OU$searchBase”
$name=$ou
$name=$name.subString($name.IndexOf(“=”)+1,$name.IndexOf(“,”)-3)
}
对于每个用户,请在上周通过EventLog在我的两台计算机上查找登录和注销时间。登录要求应满足EventId=4624和登录类型=2 0r 10的要求

($.InstanceId-eq 4624)-和($.Message-match“Logon Type:2”)-或
($.InstanceId-eq 4624)-和($.Message-match“登录类型:10”)
比如说7天

有人能帮我完成吗?

如有疑问,请阅读。Get-EventLogcmdlet有一个参数
-ComputerName
,该参数接受计算机名列表。时间范围可以通过
-Before
-After
参数进行限制

$username='foo'
$hosts='HostA','HostB'。。。
$age=(获取日期).AddDays(-7)
获取事件日志-日志安全性-计算机$hosts-InstanceId 4624-在$age |之后{
$\消息-匹配“帐户名:\s+$username\s”-和
$\消息-匹配'登录类型:\s+(2 | 10)\s'
}

@Ansgar Wiechers。亲爱的先生,谢谢您的回复。请您为我制作密码,我将非常感谢您的电子邮件地址:qasim。gardezi@hotmail.comSO是一个地方,我们帮助你解决问题,你写的代码,而不是编写代码为您。考虑合并上述与您的其他代码您的家庭作业。(我不知道该怎么做Wieches:先生,我想添加注销条件,并检查每个用户它将如何工作,因为我想为每个用户登录也注销时间。如果我申请如果否则,那么只有1个条件将是真的?请帮我…我可以在这里申请开关,如果是,请怎么办?