无法运行PowerShell脚本,因为找不到命令“wmic”

时间:2018-01-13 22:41:44

标签: windows powershell scripting apache-kafka

我必须运行一些PowerShell脚本来运行应用程序。除了这一个,我能够运行所有这些:

Param(
    [string]$cmd = "start"
)

$script = $myInvocation.MyCommand.Name
$host.UI.RawUI.WindowTitle = $script

function StartServer {
    kafka-server-start $env:KAFKA_DIR\config\server.properties
}

function StopServer {
    kafka-server-stop
}

switch ($cmd) {
    "start" { StartServer; break }
    "stop" { StopServer; break }
    "shutdown" { StopServer; break }
    default { Write-Host "$script [cmd=start|stop|shutdown]" }
}

如果我尝试运行此脚本,则会收到一条消息,指出无法找到命令“wmic”。我没有使用命令“wmin”。我只是想通过输入./nameOfScript来启动脚本。

1 个答案:

答案 0 :(得分:0)

此错误是因为您的系统路径中没有WMIC,或者已被其他人或您的企业构建标准/ SOP从系统中删除。

WMIC多年来一直是Windows的一部分,直到Windows 10和Windows Server 2016。

这是许多人甚至不知道的其他脚本工具,因此从未使用过它的预期。作为前狂热的WMIC用户,WMIC是PowerShell IMHO的前身。如果您查看WMIC文档或网络上有关它的内容,您会看到我的意思。

WMIC - 对WMI进行命令行控制 Microsoft正在创建许多充分的理由使Windows XP和Windows Server 2003系列中的命令提示符成为系统管理的主页。 Windows Management Instrumentation命令行(WMIC)使用Windows Management Instrumentation(WMI)的强大功能从命令行启用系统管理,这是其中一个原因。

自从Microsoft Systems Management Server(SMS)2.0以来,WMI一直是Microsoft系统管理计划的重要组成部分,并且自Windows 2000推出以来,WMI已经越来越受欢迎。但是,在推出WMIC之前,您无法轻松访问WMI存储库或命令提示符下的WMI命名空间。

https://msdn.microsoft.com/en-us/library/bb742610.aspx

wmic vs WMI Powershell cmdlet WMI命令行(WMIC)实用程序为WMI提供命令行界面。使用Windows 7,您可以通过利用Windows Powershell的强大功能,使用Windows Powershell以及更多功能来执行所有操作。 https://blogs.msdn.microsoft.com/wmi/2010/01/06/wmic-vs-wmi-powershell-cmdlets

完全披露,我不知道什么是apache kafka,因此没有使用PoSH的经验。然而,这种错误是我在客户环境中不止一次看到过的。