2017-01-19 28 views
0

我想创建一个powershell审计新创建的帐户&组和谁创建它们。这些对象由帐户操作员创建,但它们不是域管理员。Powershell脚本来审计新的AD帐户和组

我觉得是这样的:

$Last = (Get-Date).AddDays(-1); 
Get-Acl | Get-ADUser -Filter {WhenCreated -ge $Last} | FL DistinguishedName, Path,owner 

但这并没有工作。

+1

什么不行呢?为什么不使用本机EventLog事件? [在Active Directory上创建新用户帐户时的事件ID](https://social.technet.microsoft.com/wiki/contents/articles/17055.event-ids-when-a-new-user-account-is -created-on-active-directory.aspx) – Seth

+0

我们有很多域控制器,事件日志在一天内被覆盖,所以这不是一个选项。 – Jaap2016

+0

如果您从左侧删除了'Get-ACL |',则您的代码将起作用。 :) – Clayton

回答

0

这一个班轮将让你知道某个日期后的变化。有一个更改属性与您可以过滤对象。

Get-ADObject -Filter 'whenchanged -gt $dte' | Group-Object objectclass 

那么你可以使用:

get-adgroup -filter * | sort name | select Name 

Get-adgroupmember "Name" 

Get-ADGroup -filter "GroupCategory -eq 'Security'" –properties Member | 
Select Name,@{Name="Members"; 
Expression={($_.member | Measure-Object).count}}, 
GroupCategory,GroupScope,Distinguishedname | 
Out-GridView -Title "Select one or more groups to export" -OutputMode Multiple | 
foreach { 
    Write-Host "Exporting $($_.name)" -ForegroundColor cyan 
    #replace spaces in name with a dash 
    $name = $_.name -replace " ","-" 
    $file = Join-Path -path "C:\work" -ChildPath "$name.csv" 
    Get-ADGroupMember -identity $_.distinguishedname -Recursive | 
    Get-ADUser -Properties Title,Department | 
    Select Name,Title,Department,SamAccountName,DistinguishedName | 
    Export-CSV -Path $file -NoTypeInformation 
Get-Item -Path $file 
} 
+0

缺少'$ dte'的定义。它可能与OP中的'Last'相同,但它可以改进包含它的答案。 – Seth

相关问题