不可辨析的字符串,你确定是字符串???
一般不可辨析的应该不是字符串,是2进制或者16进制的字符,需要转换的。 用getByte(),先获得byte,然后再考虑转换成你需要的字符串。
这样的现象在网络中是很常见的,这只是我的一种推断,希望能够帮到你。
此前个人只知道以下不是非常完善且统计起来比较麻烦的方法:
方法1:查看共享会话数。(不完全准确)
方法2:查看当前的DNS记录。(这种方法统计并不准确,并非当前域的实时活动用户。)
方法3:查看自定义事件日志。(查看用户审核日志并进行筛选,很麻烦,而且也不完全准确)
开启审核帐户登录事件以及审核登录事件。然后您可以登录该域控制器,打开事件查看器,在windows日志中的安全中,您可以查看相关信息。为了便于您缩小找到您要查询的对象范围,这里我们已windows server 2008为例,您可以点击创建自定义视图,在d出的对话框里,您可以设置您需要定义的时间;在按日志处,选择安全;在任务类别上方可以选择您需要的事件ID,比如键入528,该事件ID表示用户已成功登录计算机,您也可以输入多个您需要的事件ID。
int flags = 512;
if (!ConvertToBoolean(flags & 0x0002))
{
string Disabled = "被禁用";
}
using System;
using SystemCollectionsGeneric;
using SystemText;
using SystemNet;
using SystemDirectoryServices;
namespace Demo
{
public class Demo
{
public Demo() { }
private void GroupInfo()
{
DirectoryEntry MainGroup = new DirectoryEntry("WinNT:");
foreach (DirectoryEntry domain in MainGroupChildren)
{
//thislistView1ItemsAdd(domainName);此代码获取局域网内的所有机器名
//当局域网内有授权用户是,即TA已经登录成功,获得权限
//SystemNetDnsGetHostName();获取用户名。
}
}
//通过机器名获取相应IP
private void ComputerInfo(String strname)
{
try
{
DirectoryEntry MainGroup = new DirectoryEntry("WinNT:");
foreach (DirectoryEntry domain in MainGroupChildren)
{
if (domainName == strname)
{
foreach (DirectoryEntry pc in domainChildren)
{
IPAddress[] ip = DnsGetHostAddresses(pcName);
//thislistView2ItemsAdd(pcName + ip[0]ToString());获取IP
}
}
}
}
catch (Exception ex) { MessageBoxShow(exMessage); }
}
}
}
AD域登陆请求会有几次信息交互过程,这个你可以查询一下NTLM的协议。 第一次服务器返回401时会d出要求输入域名和密码的对话框,这个时候你应该从系统中自动取得域名和账号名,然后跳过第一次响应的401,将域账号传给AD服务器进行验证。
public DataSet GetUsersForGroup(string GroupName) { //if (GroupNameIndexOf(';') > 0) //{ // return GetUsersForGroup(GroupNameSplit(new char[] { ';' })); //} if (GroupName == stringEmpty) return null; try { DirectoryEntry dir = GetDirectoryObject(); dirRefreshCache(); DirectorySearcher ds = new DirectorySearcher(dir); dsFilter = "(&(objectClass=group)(cn=" + GroupName + "))"; dsPropertiesToLoadAdd("memberof"); SearchResult results = dsFindOne(); DataSet dsUser = new DataSet(); DataTable tbUser = dsUserTablesAdd("Users"); tbUserColumnsAdd("GroupName"); tbUserColumnsAdd("samaccountname"); tbUserColumnsAdd("UserName"); tbUserColumnsAdd("DisplayName"); tbUserColumnsAdd("EMailAddress"); tbUserColumnsAdd("primaryGroupID"); if (results != null) { DirectoryEntry deGroup = new DirectoryEntry(resultsPath, _ADUser, _ADPwd, AuthenticationTypesSecure); SystemDirectoryServicesPropertyCollection pcoll = deGroupProperties; int n = pcoll["member"]Count; for (int i = 0; i < n; i++) { DirectoryEntry deUser = new DirectoryEntry(_ADPath + "/" + pcoll["member"][i]ToString(), _ADUser, _ADPwd, AuthenticationTypesSecure); try { DataRow rwUser = tbUserNewRow(); rwUser["GroupName"] = GroupName; rwUser["samaccountname"] = GetProperty(deUser, "samaccountname"); rwUser["UserName"] = GetProperty(deUser, "cn"); rwUser["DisplayName"] = GetProperty(deUser, "givenName") + " " + GetProperty(deUser, "sn"); rwUser["EMailAddress"] = GetProperty(deUser, "mail"); rwUser["primaryGroupID"] = GetProperty(deUser, "primaryGroupID"); tbUserRowsAdd(rwUser); deUserClose();
以上就是关于java 读取AD里User信息的objectSid全部的内容,包括:java 读取AD里User信息的objectSid、如何查看/统计当前AD域控制器的活动用户、怎么获得AD域用户的“账户已禁用”信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)