0
私のC#アプリケーションから次のPowerShellコマンドを実行しようとしました。C#からPowerShellを実行できません: 'Dism'モジュールで 'Get-WindowsOptionalFeature'コマンドが見つかりましたが、モジュールをロードできませんでした
$check = Get-WindowsOptionalFeature -Online -FeatureName WCF-HTTP-Activation45
if ($check.Installed -eq 'False') {
Enable-WindowsOptionalFeature -Online -FeatureName WCF-HTTP-Activation45
}
しかし、私はこれを実行すると、PowerShellは、次の例外が発生します:
「ゲット・WindowsOptionalFeature」コマンドは、モジュールのます。Dism "で見つかりましたが、モジュールがロードできませんでした。詳細については、 'Import-Module Dism'を実行してください。
ただし、PowerShellウィンドウから同じスクリプトを実行するとうまく動作します。私の問題の根源は何ですか? 1 - - 5 14393から953
C#コード::私のオペレーティングシステムが
PowerShellのバージョンのWindows 10で、このようなあなたのスクリプト内の 'インポートモジュールます。Dism' を含む
const string psScript = @"$check = Get-WindowsOptionalFeature -Online -FeatureName WCF-HTTP-Activation45
if ($check.Installed -eq 'False') {
Enable-WindowsOptionalFeature -Online -FeatureName WCF-HTTP-Activation45
}";
using (var PowerShellInstance = PowerShell.Create())
{
PowerShellInstance.AddScript(psScript);
var PSOutput = PowerShellInstance.Invoke();
if (PowerShellInstance.Streams.Error.Count > 0)
{
foreach (var err in PowerShellInstance.Streams.Error)
logger.LogError(err.ToString());
}
foreach (var outputItem in PSOutput)
{
if (outputItem != null)
logger.LogInfo(outputItem.ToString());
}
}
これが原因である可能性もありますが、この問題を起こしたマシンでは機能しませんでした。私のマシンでは正常に動作しますが、Windows 10マシンではそのスクリプトに失敗します。私が推測しているのは、Windowsマシン上にモジュールがないことです。どこかに壊れたモジュール。しかし、PowerShellコマンドラインアプリケーションでうまく動作するのはなぜですか?しかし、このエラーはC#で表示されますか? – Saeid
はい、モジュールをインストールしていない可能性があります。 win10マシンにhttps://www.microsoft.com/es-ES/download/details.aspx?id=40855をインストールしてみてください。 –