我遇到了從C#應用程序執行powershell命令的問題。 我發現很多與這個問題有關的東西,但沒有一個幫助我找出可能發生的事情。來自C#的Powershell命令'該術語無法識別爲cmdlet'
所以我有這個小測試功能:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript("msg * test");
pipeline.Invoke();
runspace.Close();
}
的問題是,在一些電腦它工作得很好,但在其他我收到消息說:「術語‘味精’未被識別爲一個cmdlet,函數等「 這發生在c:\ windows \ system32中的每個可執行文件中。 當我使用像Get-Process這樣的cmdlet時,它可以正常工作...
我在兩臺計算機上測試,他們都將ExecutionPolicy設置爲無限制,並且它們具有相同的Powershell版本。 環境變量上的'路徑'也是一樣的。
感謝任何幫助。
在此先感謝。
Paulo
兩個系統上都存在可執行文件msg.exe嗎?這取代了從Vista開始的「網絡發送」,我相信這就是你的命令要調用的內容。 – mjolinor
是的,如果我直接在powershell中鍵入命令,它工作正常。 正如我所說,它發生在system32(msg,psexec,tscmd等)中的每個文件。 –
您是否正在創建自定義Cmdlet? – Aravind