自动创建新创建的AD用户的Homedrive

时间:2015-07-30 10:32:03

标签: powershell powershell-v2.0

我创建了一个脚本来为新创建的AD用户创建一个homefolder(名称为SAMAccountname)。

$ADServer = 'xyz1'

Import-Module ActiveDirectory

$searchbase = "OU=xyz2,OU=xyz3,DC=xyz4,dc=xyz5"

$ADUsers = Get-ADUser -Filter {name -eq "xyz6"} -Server $ADServer -SearchBase $searchbase -Properties *

New-Item -ItemType Directory -Path "xyz7\$($ADUsers.sAMAccountname)"

除了我必须以用户名(AD帐户名)提供信息以便搜索该特定用户之外,所有内容都是自动进行的。 我想改变这个过程。我希望通过预定的运行使其自动化。

现在,我想查询事件日志并搜索EVENTID = 4720(即“创建一个新用户”)并捕获这个新创建的用户的SamAccountName(在属性[我已经检查]下) )并在我当前的脚本中传递...如果我按计划运行运行整个脚本,它将检测新用户创建并自动创建其主文件夹。

2 个答案:

答案 0 :(得分:0)

$a = (Get-EventLog System | Where-Object {$_.EventID -eq 514}).message

应该允许您取回您想要的信息。然后,您可以将结果拆分为parese SAM名称。

" 514"只是我的例子 - 您需要将其替换为您想要跟踪的EventID。

linky 有关如何使用get-eventlog过滤结果的更多信息

答案 1 :(得分:0)

要提取在过去30分钟内创建的帐户名称,您可以使用如下的正则表达式:

Get-EventLog Security -Computer SERVERNAME -After (Get-Date).AddMinutes(-30) |
  Where-Object {
    $_.EventID -eq 4720 -and
    $_.Message -match "sam account name:\s+(.*)"
  } | ForEach-Object { $matches[1] }

话虽如此,最好的方法是在用户创建过程中集成主目录创建,即在创建用户时创建目录(因为此时您已经拥有了帐户名)。