活动目录新用户工作stream程

我在一个使用单个文件和打印服务器的Active Directory域进行用户pipe理的小型组织中工作。

导入新人的办公室pipe理员是非技术人员,通常会创buildAD用户帐户,因为现场没有永久的IT支持,用户需要立即进行帐户pipe理。 但是之后需要做的后续工作(创build对PBX的扩展,build立语音信箱,表格填写等等),需要对不同的人进行养殖。

我们手工操作的过程大部分都是有效的,但是有一些差距,有时甚至会被遗忘。 我不能重新devise这些业务stream程,所以就这个问题而言,我们可以认为业务stream程是不可改变的 。 我的解决scheme需要与现有stream程进行网格划分。

本质上,我认为我需要的是一种在Active Directory中手动创build新用户时生成电子邮件通知的方式 – 一种轻量级的工作stream引擎,只需通过电子邮件将人员和/或我的售票系统发送给需要执行的后续任务即可。 是的,我知道这不是最好的做法,是的,我知道这不是很酷,但考虑到我的情况,我认为这是最实用的解决scheme。

有一个简单的,轻量级的方式来做到这一点? 我正在考虑PowerShell脚本或类似的东西(没有适当的IDM系统的预算,正如我所提到的,业务stream程是不可变的)。

来帮助一下Powershell的电子邮件。 我使用System.Net.Mail.SmtpClient从powershell发送。

 $Mail = New-Object System.Net.Mail.MailMessage($Sender,$Recipient) $Mail.IsBodyHTML = $True ## Setup SMTP Mail Server info $MailClient = New-Object System.Net.Mail.SmtpClient $MailClient.Host = $Mailserver $Mail.Subject = "Subject" $Mail.Body = "blah blah blah" # Send the message $MailClient.Send($Mail) } 

您需要指定$发件人,$收件人和$ mailserver。

所以这更像是一个过程问题而不是技术问题。 在我看来,你没有某种票务系统。 我强烈build议把它放在一个地方,因为它也会帮助其他地区。 体面的系统可以让你设置一个工作stream程,让你一旦完成工作,就可以将票据“推”到队伍中的下一个人。

最糟糕的情况是,您可以通过推送票据来手动创buildstream程,让一个“所有者”被推回到下一个人员。

要回答你的直接问题,是的,你可以创build一个Powershell脚本,将创build一个AD用户,然后你可以发送邮件 – 不必在Powershell V2中做到这一点,但在V1中,你必须潜入.Net对象发送邮件,但不是那么辛苦(get-object是你的朋友)

根据迄今为止发生的争议以及您对他们的评论,我会build议一个计划的任务,每小时运行一次,以捕获任何新用户,在最后一小时内发送包含任何新用户的电子邮件。

如果您很好地格式化电子邮件,包括工作stream程中的所有步骤,则第一个获得该电子邮件的人可以对其任务发表评论(或删除文本),然后转发电子邮件。

虽然没有立即沟通新雇员的有效性,但是:

  1. 简单
  2. 有效沟通你的小企业规模
  3. 资源非常低

以下是PowerShell,您可以使用它查找在过去一小时内创build的用户名称:

 $date = [datetime]::UtcNow.addhours(-1) $lasthour = "{0:0000}{1:00}{2:00}{3:00}{4:00}{5:00}.0Z" -f $date.year,$date.month,$date.day,$date.hour,$date.minute,$date.second $strFilter = "(&(objectCategory=User)(whenCreated>=$lasthour))" $objDomain = New-Object System.DirectoryServices.DirectoryEntry $objSearcher = New-Object System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = $objDomain $objSearcher.PageSize = 1000 $objSearcher.Filter = $strFilter $colProplist = "name" foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)} $colResults = $objSearcher.FindAll() foreach ($objResult in $colResults) {$objItem = $objResult.Properties; $objItem.name} 

或者,你可以在PowerShell中写一些东西,以便根据员工的input创build一个用户,然后在这个过程结束的时候用电子邮件继续。

总的来说,如果你已经有一个票务系统,我build议作为最好的select,因为这是可以用来跟踪详细的方式。 我上面input的只是一张非常错误的非正式票。

你真正要求的是一个新的ADpipe理员。 虽然技术上可以创build一个脚本来轮询AD更改,但要查找新的用户对象并向您发送一个列表,甚至validation新用户所需的工作量也需要您的工作stream中的下一个步骤。关于由于错误而重新创build的账户?)不仅仅是让pipe理员遵循你所概述的过程。 这是pipe理员应该要求一个自动化他的电子邮件的方式,而不是你想办法看到他做的。 在考虑自动化之前,您需要解决您的stream程问题