現在 AD に接続されているすべてのコンピューターと、ユーザーが AD にログオンしているコンピューターを受信しようとしています。ComputerPrincipal
のプロパティを試してみました.LastLogon
が、約 1 週間で完全にずれている値が得られました。
AD で利用可能なコンピュータを知りたいです。私が使用できる別の方法はありますか?
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "192.168.0.101:389", "Administrator", "XXXX");
// define a "query-by-example" principal - here, we search for a ComputerPrincipal
ComputerPrincipal qbeComputer = new ComputerPrincipal(ctx);
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeComputer);
// find all matches
foreach (var found in srch.FindAll())
{
// do whatever here - "found" is of type "Principal" - it could be user, group, computer.....
ComputerPrincipal cp = found as ComputerPrincipal;
if (cp != null)
{
string computerName = cp.Name;
DateTime? lastLogon = new DateTime();
lastLogon = cp.LastLogon;
DateTime convertedDate = DateTime.SpecifyKind(DateTime.Parse(cp.LastLogon.ToString()), DateTimeKind.Utc);
var kind = convertedDate.Kind;
DateTime dt = convertedDate.ToLocalTime();
Response.Write(cp.Name+" : "+ dt.ToString()+ "<br />");
}
}
編集:
印刷物を次のようにしたい:
コンピュータ 1: True コンピュータ 2: False コンピュータ 3: False コンピュータ 4: True
現在ログオンしている場合、コンピューターにクエリを実行することはできませんか? ブール値、True または False が必要です。