我必须运行一些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
来启动脚本。
答案 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的经验。然而,这种错误是我在客户环境中不止一次看到过的。