首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Get-ADUser总是返回0

Get-ADUser总是返回0
EN

Stack Overflow用户
提问于 2018-07-25 12:37:33
回答 2查看 226关注 0票数 1

我在PowerShell中有脚本:

代码语言:javascript
运行
复制
Get-ADUser $Login -Properties msDS-UserPasswordExpiryTimeComputed |
    select -expand msDS-UserPasswordExpiryTimeComputed

我正在尝试将它导入到C# (WPF)中,但是结果/结果2总是0。PowerShell脚本运行良好,并返回信息。

代码语言:javascript
运行
复制
using (PowerShell PS = PowerShell.Create())
{
    PS.AddScript("Get - ADUser");
    PS.AddParameter("Identity", TextBox_UserLoginIn.Text);
    PS.AddParameter("Properties", "msDS-User-Account-Control-Computed");
    PS.AddStatement();
    PS.AddCommand("Select");
    PS.AddParameter("-expand", "msDS-UserPasswordExpiryTimeComputed");

    var result = PS.Invoke();

    long result2 = long.Parse(result.ToString());

    DateTime psdata = DateTime.FromFileTimeUtc(result2);
    _MetroWindow.TextBox_UserPassExpire.Text = psdata.ToString();
}

也尝试使用import activedirectory,但结果是相同的:

代码语言:javascript
运行
复制
PS.AddCommand("Import-Module").AddParameter("Name", "activedirectory");
PS.AddCommand("Get - ADUser").AddParameter("Identity", TextBox_UserLoginIn.Text);
PS.AddParameter("Properties", "msDS-User-Account-Control-Computed");
PS.AddStatement();
PS.AddParameter("-expand", "msDS-UserPasswordExpiryTimeComputed");

编辑:试图换:

代码语言:javascript
运行
复制
PS.AddScript("import-module activedirectory");
PS.AddScript("Get-ADUser -Identity " + TextBox_UserLoginIn.Text + " -Properties msDS-UserPasswordExpiryTimeComputed | select -expand msDS-UserPasswordExpiryTimeComputed");

其结果是:

代码语言:javascript
运行
复制
result  Count = 1
result2 0

也许有一种方法可以接收从"DirectoryEntry“或"PrincipalContext”计算出来的msDS用户帐户-控制?我使用这两个类从AD获取信息,但我无法访问这个。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-27 10:08:10

这样做是可行的:

代码语言:javascript
运行
复制
PS.AddScript("Get-ADUser " + TextBox_UserLoginIn.Text + " -Properties msDS-UserPasswordExpiryTimeComputed | Select -Expand \"msDS-UserPasswordExpiryTimeComputed\"");
票数 1
EN

Stack Overflow用户

发布于 2018-07-25 12:44:34

我认为您为您所寻求的属性的参数做了一个错误的输入:

代码语言:javascript
运行
复制
PS.AddParameter("Properties", "msDS-User-Account-Control-Computed");

应该是

代码语言:javascript
运行
复制
PS.AddParameter("Properties", "msDS-UserPasswordExpiryTimeComputed");

我猜

编辑

您正在更新/试用这两个版本中的哪一个?

我认为完整的事情应该是

代码语言:javascript
运行
复制
using (PowerShell PS = PowerShell.Create())
{
    PS.AddCommand("Import-Module").AddParameter("Name", "activedirectory");
    PS.AddScript("Get-ADUser");
    PS.AddParameter("Identity", TextBox_UserLoginIn.Text);
    PS.AddParameter("Properties", "msDS-UserPasswordExpiryTimeComputed");
    PS.AddStatement();
    PS.AddCommand("Select");
    PS.AddParameter("-expand", "msDS-UserPasswordExpiryTimeComputed");

    var result = PS.Invoke();

    long result2 = long.Parse(result.ToString());

    DateTime psdata = DateTime.FromFileTimeUtc(result2);
    _MetroWindow.TextBox_UserPassExpire.Text = psdata.ToString();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51519085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档