【发布时间】:2022-02-21 09:37:56
【问题描述】:
我被一个简单的任务困住了,需要社区帮助。 我在 C# 代码中运行 PowerShell 脚本,需要将输出转换为字典。 代码是
private void button_datecheck_Click(object sender, EventArgs e)
{
var script = "Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} –Properties \"DisplayName\", \"msDS-UserPasswordExpiryTimeComputed\" | Select-Object -Property \"Displayname\",@{Name=\"ExpiryDate\";Expression={[datetime]::FromFileTime($_.\"msDS-UserPasswordExpiryTimeComputed\")}}";
var ps = PowerShell.Create().AddScript(script);
var temp_list = ps.Invoke().ToList();
using (TextWriter tw = new StreamWriter("C:\\c#\\test_output.txt"))
{
foreach (dynamic item in temp_list)
{
tw.WriteLine(item);
}
}
不确定 PSObject 是否可以直接转换为字典,所以先将其转换为 List(另外,看看我从 PS 得到的输出是什么) 输出看起来像
@{Displayname=Name Surname; ExpiryDate=1/02/2022 9:24:48 am} @{Displayname=Name1 Surname1; ExpiryDate=2/02/2023 11:20:27 am}
我在这里卡住了,不知道如何将其转换为字典或者也许有一种方法可以将其直接转换为字典而不使用列表?
感谢您的帮助
【问题讨论】:
标签: c# powershell dictionary active-directory get-aduser