为了在Windows 2008 R2 Server(64位)中启用Microsoft-Hyper-V和Microsoft-Hyper-V-Management,我将dism.exe作为进程调用.我用过的命令是
Dism.exe/online/Get-FeatureInfo/FeatureName:Microsoft-Hyper-V
Dism.exe/online/Get-FeatureInfo/FeatureName:Microsoft-Hyper-V-Management-Clients
当我从命令行执行此操作时,这可以正常工作,但当我尝试通过我的代码执行它时,它会失败.我在C:\ Windows\SysWoW64文件夹下尝试过64位版本的Dism.exe,但它也失败了.这是我收到的错误消息,
您无法使用32位版本的DISM为正在运行的64位操作系统提供服务.请使用与您的计算机体系结构相对应的DISM版本.
我在这里错过了什么?
更新:SLaks是对的,但问题是默认情况下MS Visual Studio express版本的目标是x86,我必须在.csproj文件中手动编辑到AnyCPU以使其工作.
我想找到名称以param1开头的结果,并以param2结尾但我的代码不起作用
string wmiQuery = string.Format("SELECT CommandLine FROM Win32_Process WHERE Name LIKE '{0}%' AND Name LIKE '%{1}'", param1, param2);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery);
ManagementObjectCollection retObjectCollection = searcher.Get();
Run Code Online (Sandbox Code Playgroud)
怎么了?
比较
string wmiQuery = string.Format("SELECT CommandLine FROM Win32_Process WHERE Name LIKE '{0}%'", param1);
Run Code Online (Sandbox Code Playgroud)
效果很好
如何在c#中列出Windows Server 2008的所有已安装功能.我试图查询dism.exe或oclist.exe但不是所有版本都有它.我可以用System.Management.ManagementClass某种方式做到这一点吗?