‘SELECT’ 未被识别为内部或外部命令

‘SELECT’ 未被识别为内部或外部命令

我正在尝试使用以下命令将 wmi 过滤器应用于组策略:

Select * from Win32_Processor where AddressWidth = '64' 

当过滤器链接时,这只会将 GPO 应用于 64 位计算机(我们所有的计算机都是 Windows 7)。但是,GPO 未应用,当我在计算机上运行 select 语句时,我得到:

Select 不被识别为内部或外部命令、可运行程序或批处理文件。

我知道这与环境变量有关,但如果是这种情况,我不确定如何分配这个特定的变量。

任何帮助将不胜感激!

答案1

我知道这与环境变量有关

无论这些知识从何而来,它都是错误的。

您的SELECT语句是 WMI 查询,使用名为 WQL(SQL 的一个子集)的语言。您不能只是在cmd命令解释器的提示符下输入它。 cmd完全解释不同的语言。你不能随意地用一种计算机语言向使用另一种完全不同的语言的工具发出命令。计算机不是这样工作的。

进一步阅读

答案2

正如 JdeBP 所述。您需要使用可以处理 WQL(类似 sql)语句的工具。您可以从使用 cmd.exe 命令 shell 切换到使用 powershell.exe 命令 shell 来运行查询。它提供了一个允许处理 WQL 语句的 cmdlet。试试这个:

打开命令窗口并输入Powershell并按回车键。这将导致 powershell 实例在当前 cmd 会话中运行。现在您已进入 powershell,您可以使用 Get-WmiObject 命令行来查询您的信息:

get-wmiobject -query "select * from win32_processor where addresswidth='64'"

然后按回车键。这应该会返回您尝试获取的信息。完成后,您可以键入exit以结束您在 cmd 会话中运行的 powershell 会话。

请注意,您也可以直接打开 Powershell,而不必通过 cmd.exe。只需在运行框或开始菜单底部的搜索字段中键入“Powershell”,屏幕上就会打开一个 powershell 窗口,就像使用 cmd.exe 一样。

如果由于某种原因您无法启动 powershell,您可以检查并确保它已安装。在我的 Win 7 安装中,它位于此处:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

希望这可以帮助,

相关阅读:

Powershell 介绍

关于 Get-WmiObject cmdlet

相关内容