我被一个简单的任务困住了,需要社区帮助。我在 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}
在这里我被卡住了,不知道如何将其转换为字典,或者也许有一种方法可以直接将其转换为字典而不使用列表?
谢谢你的帮助