从SQL Server 2008更新Active Directory邮件用户属性

时间:2014-06-16 03:39:27

标签: sql sql-server active-directory linked-server

Hello Stackoverflow成员

我在教育机构工作,我们需要在MSSQL2008数据库中为学生管理应用程序提供这些信息。

我想知道是否有办法使用数据库触发器自动更新Active Directory中的用户属性字段。这将特别允许我们在用户更新其记录时自动更新目录系统中的电子邮件别名。

有没有办法在不编写完整的中间件应用程序的情况下执行此操作,而不是使用db触发器触发存储过程来更新Active Directory。

我看过一些关于将AD数据导入SQL服务器的帖子,但到目前为止我还没有找到任何其他帖子。

此致

Gus

1 个答案:

答案 0 :(得分:1)

我不确定SQL命令,但xp_cmdshell命令允许您将给定的Windows命令字符串/批处理文件作为操作系统命令shell执行,并将任何输出作为文本行返回。

因此,使用xp_cmdshell,您可以通过SQL触发器运行批处理文件/ windows命令,该命令可以更新Active目录中的用户属性字段。

xp_cmdshell的语法是:

xp_cmdshell {'command_string'} [, no_output]

<强>参数

'command_string'

命令字符串是否在操作系统命令shell中执行。 command_string是varchar(8000)或nvarchar(4000),没有默认值。 command_string不能包含多组双引号。如果command_string引用的文件路径或程序名中存在任何空格,则需要一对引号。如果您在嵌入空间方面遇到问题,请考虑使用FAT 8.3文件名作为解决方法。

no_output

是一个可选参数,执行给定的command_string,并且不向客户端返回任何输出。

返回代码值

0(成功)或1(失败)

结果集

例如,执行此xp_cmdshell语句将返回当前目录的目录列表。

xp_cmdshell 'dir *.exe'

有关xp_cmdshell的详细信息,请参阅:http://technet.microsoft.com/en-us/library/aa260689(v=sql.80).aspx

希望它能帮助你找到方法...