获取AD里面指定OU或Container里面的计算机以及Lastlogon时间格式转换

至于什么是活动目录,大家可以去这里了解

.NET读取Active Directory(活动目录)里面的User和Computer信息主要用到了System.DirectoryServices命名空间里面的对象。

这里我主要用到了两个对象DirectoryEntryDirectorySearch

 1 //额外添加的命名空间 2 using System.DirectoryServices.ActiveDirectory; 3 using ActiveDs; 4  5 //ADComputerModel是自定义的实体对象 6 class Test 7 { 8     public List<ADComputerModel> GetComputer() 9     {10         List<ADComputerModel> list = new List<ADComputerModel>();11         DirectoryEntry deRoot = new DirectoryEntry();12         deRoot.Username = "zhangxuefei";13         deRoot.Password = "不告诉你";14         deRoot.Path = "LDAP://域名/OU=**,DC=**,DC=**";15         DirectorySearcher search = new DirectorySearcher();16         search.SearchRoot = deRoot;17         search.Filter = ("(objectClass=computer)");18         DateTime? tmp = null;19         foreach (SearchResult resEnt in search.FindAll())20         {21             var flag = resEnt.GetDirectoryEntry().Properties["Lastlogon"].Value;//获取最后登录时间22 23             if (flag == null)24             {25                 tmp = null;//这里也是Lastlogon当我们在AD里面创建一个计算机的时候什么都不设置的情况下的空值处理26             }27             else28             {29                 //这里执行对Lastlogon时间格式的转换(因为Lastlogon的时间格式不是标准的时间格式需要转换)30                 //转换方法是在国外的网站上面查到的,需要引入Interop.ActiveDs.dll这个Com组件。实现的原理在这31                 LargeInteger largeInt = (LargeInteger)resEnt.GetDirectoryEntry().Properties["Lastlogon"][0];32                 Int64 liTicks = largeInt.HighPart * 0x100000000 + largeInt.LowPart;33                 if (liTicks == 0)34                 {35                     tmp = null;//这里也是Lastlogon在我们创建一个计算机的时候什么都不设置的情况下的空值处理36                 }37                 else if (DateTime.MaxValue.Ticks >= liTicks && DateTime.MinValue.Ticks <= liTicks)38                 {39                     tmp = DateTime.FromFileTime(liTicks);40                 }41             }42             list.Add(new ADComputerModel43             {44                 ComputerName = resEnt.GetDirectoryEntry().Properties["CN"].Value.ToString(),//获取计算机名称45                 OSVersion = resEnt.GetDirectoryEntry().Properties["operatingsystem"].Value == null ? ""                                : resEnt.GetDirectoryEntry().Properties["operatingsystem"].Value.ToString(),//获取操作系统名称46                 CreateTime = Convert.ToDateTime(resEnt.GetDirectoryEntry().Properties["whencreated"].Value),//获取创建时间47                 LastLoginTime = tmp//最后登录时间48                 //...可以根据自己的需要取不同的属性值49             });50         }51     }52    53 }54                 55 public class ADComputerModel56 {57     ///<summary>58 /// 计算机名59 ///</summary>60     public string ComputerName { get; set; }61 62     ///<summary>63 /// 创建日期64 ///</summary>65     public DateTime? CreateTime { get; set; }66 67     ///<summary>68 /// 操作系统版本69 ///</summary>70     public string OSVersion { get; set; }71 72     ///<summary>73 /// 最后登录时间74 ///</summary>75     public DateTime? LastLoginTime { get; set; }76 }

明天就是六"1"节了,祝各各单们节日愉快!

时间: 2024-09-26 13:17:28

获取AD里面指定OU或Container里面的计算机以及Lastlogon时间格式转换的相关文章

Powershell批量禁用指定用户及将禁用用户移动到指定OU

作为企业管理员,日常最基本的任务就是对每日的用户删除及创建:同样我们知道,微软系统自带Dsquery命令可以帮助我们解决关于用户.计算机批量查询.删除.禁用及移动有很好的帮助,但是如果想指定用户禁用并且删除也能实现,但是很是麻烦,那有没有更好的方法呢,肯定有啊,那就是脚本,但是好像将说道批量两个字大家肯定想到的是脚本,一般都是用脚本来实现批量一用的,今天就为大家介绍如何批量禁用指定用户及将禁用用户移动到指定OU 环境介绍: Domain name:gawain.com 操作: 首先是在AD上创建

js获取url中指定参数值的示例代码

 这篇文章主要是对js获取url中指定参数值的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 如下所示: 代码如下:  ///获取url中指定参数         // <param name="paras">参数名称</param>         ///         function request(paras) {             var url = location.href;             var paraStr

python实现获取客户机上指定文件并传输到服务器的方法_python

本文实例讲述了python实现获取客户机上指定文件并传输到服务器的方法.分享给大家供大家参考.具体分析如下: 该程序实现了,把目标机器的某个目录(可控)的所有的某种类型文件(可控)全部获取并传到己方的机器上. 1.用了base64的encode(infile,outfile)加密,以及decode(infile,outfile)解密,这是2进制加密解密 2.用zip压缩 3.socket中server.py放到自己这方python server.py,然后client.py放到目标机器,然后py

js-如果不用jquery,怎么用JS获取网页中指定标签内的选中内容?

问题描述 如果不用jquery,怎么用JS获取网页中指定标签内的选中内容? 网页有一个div,里面有些文字,鼠标选中其中一部分字,怎么能感知这一事件,然后返回选中内容. 解决方案 我在贴吧也看到类似的问题,是同一个吗? <!--支持IE9+ Firefox Chrome--> <p>这是一段测试文字</p> <script type='text/javascript'> function getSlct(){//获取选中文字 return getSelect

js获取url中指定参数值的示例代码_javascript技巧

如下所示: 复制代码 代码如下:  ///获取url中指定参数        // <param name="paras">参数名称</param>        ///        function request(paras) {            var url = location.href;            var paraString = url.substring(url.indexOf("?") + 1, url.

asp教程:fso获取的名称指定的驱动器

asp教程:fso获取的名称指定的驱动器 这个例子演示如何使用GetDriveName方法获取的名称指定的驱动器. <html> <body> <% Set fs=Server.CreateObject("Scripting.FileSystemObject") p=fs.GetDriveName("c:winntcursors3dgarro.cur") Response.Write("The drive name is: &

Linux 下获取LAN中指定IP的网卡的MAC(物理地址)

// all.h// 2005/06/20,a.m. wenxy #ifndef _ALL_H#define _ALL_H #include <memory.h>#include <stdio.h>#include <stdlib.h>#include <sys/ioctl.h>#include <sys/types.h>#include <sys/socket.h>#include <net/if.h>#include

JS获取表格内指定单元格html内容的方法_javascript技巧

本文实例讲述了JS获取表格内指定单元格html内容的方法.分享给大家供大家参考.具体如下: 下面的代码先通过表格对象的rows获得指定的行的所有单元格数组,然后定位指定的单元格,通过单元格的innerHTML属性获得单元格的html内容 <!DOCTYPE html> <html> <head> <script> function cell() { var x=document.getElementById('myTable').rows[0].cells;

php输出指定时间以前时间格式的方法_php技巧

本文实例讲述了php输出指定时间以前时间格式的方法.分享给大家供大家参考.具体分析如下: 比如说你需要在php中输出3天前,20分钟以前,可以参考下面的代码 function ago($time) { $time = strtotime($time); $delta = time() - $time; if ($delta < 60) { return 'less than a minute ago.'; } else if ($delta < 120) { return 'about a m