我正在尝试使用Hyper-V设置VM。我需要运行get-vmserver和一些相关的comdlet,但是我无法找到它们所在的模块。当我运行时:
(get-command -name start-transcript).modulename
我收到了回复
Microsoft.Powershell.Host
但是当我跑步时
(get-command -name get-vm).modulename
我得到了无法识别get-vm的响应。
我相信这意味着我必须使用某个模块名称运行import-module,但我找不到"标准"的列表。 cmdlet及其模块。
答案 0 :(得分:2)
这意味着PowerShell不知道任何名为Get-VM
的命令。
对于要识别的命令,它必须:
Microsoft的模块往往格式正确并且支持自动加载,因此如果安装了它,它将会正常工作。
因此,我强烈怀疑您没有安装Hyper-V
模块(Get-VM
所在的模块)。
要查看已安装但未必导入的模块,请使用Get-Module -ListAvailable
。
但请注意,如果模块在那里列出并且格式正确,那么这些命令也可以在Get-Command
中使用。
查看Get-Module -ListAvailable
中列出的模块,但如果明确调用Get-Command -Name
,则不会列出。在我的系统上,我将使用VpnClient
。
从Get-Module -ListAvailable
的输出中我可以看到它有一个命令Add-VpnConnection
。
如果我拨打Get-Command -Name Add-VpnConnection
,则通话有效,并将命令来源显示为VpnClient
。
另外,如果我现在打电话给Get-Module -Name VpnClient
,它会显示出来,而不是之前。
这是因为Get-Command
引用模块时隐式加载了模块。
答案 1 :(得分:0)
您是正确的,您必须运行Import-Module并选择Hyper-V模块。确保已在Windows Server上安装Hyper-V功能。这可以在服务器管理器中执行。