使用Visual Studio 2017 WIN-Form C#
当我使用PowerShell RunSpace在Winform C#中运行以下PowerShell脚本时,我得到了相同的结果。
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName | Format-Table –AutoSize > C:\Temp\InstalledSoftwareList1.txt
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName | Format-Table –AutoSize > C:\Temp\InstalledSoftwareList2.txt
但是,如果我在PowerShell伊势中运行这些相同的脚本,我会得到两个不同的结果,这正是我所希望的。
我不明白为什么在WinForms中运行它们会得到相同的结果。
这是我在Winform中使用的。
private string RunScript(string script)
{
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(script);
pipeline.Commands.Add("Out-String");
Collection<PSObject> results = pipeline.Invoke();
runspace.Close();
StringBuilder stringBuilder = new StringBuilder();
foreach (PSObject pSObject in results)
stringBuilder.AppendLine(pSObject.ToString());
return stringBuilder.ToString();
}
像这样运行代码。
RunScript(@"Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName | Format-Table –AutoSize > C:\Temp\InstalledSoftwareList1.txt");
RunScript(@"Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName | Format-Table –AutoSize > C:\Temp\InstalledSoftwareList2.txt");
有什么建议吗?
此致,
1条答案
按热度按时间ymdaylpp1#
正如Mathias R. Jessen建议的那样,我编译了x64的C#应用程序,现在脚本返回了两个不同的结果。