質問: PowerShell.Create()) { powershell.AddCommand("Get-ChiledItem"); powershell.AddCommand("Out-String"); foreach (var result in powershell.Invoke()) { Console.WriteLine(result); } } Console.WriteLine(" ktkr "); } catch { Console.WriteLine("ダメです!"); } } } } ``` ### 試したこと * プロジェクトのプロパティの対象プラットフォームを変更 x64, x86, Any CPUで32ビットを選ぶ,32ビットのチェックを外す * 最適化コードのチェック ON/OFF * オプションのデバッグから,マイコードのみのチェックを ON/OFF * System.Management.Automationの参照の仕方を変更 1. "C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0\System.Management.Automation.dll"を指定 2. ソリューションのNuGetパッケージ管理から,Microsoft.PowerShell.5.ReferenceAssembliesのv1.1.0をダウンロード(".netcoreapp 2.1 ~ではなく .NET v4.6を使用して復元されました.~" の警告が出ました) 3. 同様のパッケージ管理から,2.のを消して5.1をダウンロード.同様の警告が出ました ``` NU1701 パッケージ 'Microsoft.PowerShell.5.ReferenceAssemblies 1.1.0' はプロジェクトのターゲット フレームワーク '.NETCoreApp,Version=v2.1' ではなく '.NETFramework,Version=v4.6.1' を使用して復元されました。このパッケージは、使用しているプロジェクトとの完全な互換性がない可能性があります。 ``` ### 補足情報(FW/ツールのバージョンなど) OS:Windows 10 Pro 1809 IDE:Visual Studio Community 2019 Version 16.2.3 .NET Framework Version 4.7.03190 PowerShell: 5.1.17763.316 (Get-Host) ※PSの別バージョンを故意にインストールしようとことはありません. 最終的に,冒頭で述べた動作ができれば良いので,WinRM on GUIな良い方法があれば,そちらでもご教授いただければ有り難いです. よろしくお願いします.
回答: System.Management.*** の参照をすべて外し、NuGet で Microsoft.PowerShell.5.ReferenceAssemblies をインストールしてください。 > > powershell.AddCommand("Get-ChiledItem"); > > > これを次のように変えください。 ``` powershell.AddCommand("Get-ChildItem"); ``` 以上でうちでは動きました。