Microsoft 的第一个简单示例无法在我的计算机上运行。有什么建议吗Get-NetAdapter
?Get-Help
PS C:\Users\lit> Get-NetAdapter -Name *
Get-NetAdapter : Invalid class
At line:1 char:1
+ Get-NetAdapter -Name *
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : MetadataError: (MSFT_NetAdapter:ROOT/StandardCimv2/MSFT_NetAdapter) [Get-NetAdapter], CimException
+ FullyQualifiedErrorId : HRESULT 0x80041010,Get-NetAdapter
PS C:\Users\lit> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.14393.1066
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14393.1066
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
看来我的系统上有 NetAdapter 模块。
PS C:\Users\pwatson> Get-Module -ListAvailable | Where-Object {$_.Name -Like '*NetAdapter*'}
Directory: C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 2.0.0.0 NetAdapter {Disable-NetAdapter, Disable-NetAdapterBinding, Disable-NetAdapterChecksumOffload, Disable-NetAdapt...
我终于看到了所有的 ExportedCommands,但 Get-NetAdapter 不在其中。
Get-Module -ListAvailable | Where-Object {$_.Name -Like '*NetAdapter*'} | Select-Object -Property {$_.ExportedCommands} | Format-Custom
根据 Seth 的回答,我有:
C:\Users\pwatson>winmgmt /verifyrepository
WMI repository verification failed
Error code: 0x80041003
Facility: WMI
Description: Access denied
我将接受Seth的回答并发布一个关于权限设置的新问题。
答案1
Get-NetAdpater
不是一个模块,而是一个命令。您需要运行Get-Command
而不是Get-Module
。此外,如果您仔细阅读第一种情况下的异常,您会发现它是元数据异常。它告诉您无法读取后端数据结构。0x80041010
似乎是 WMI 返回的代码invalid class
。因此您的 WMI 可能已损坏(这可能会有帮助)或者可能是您没有足够的权限。后者的可能性比前者小得多。
从上面的链接为了重建您可以尝试:
1. winmgmt /verifyrepository
If the result is shown as inconsistent, go to step 2
2. winmgmt /salvagerepository
3. winmgmt /verifyrepository - to check again wmi repository had been repaired successfully
我不提更高级的解决方案。因为这应该可以帮助您验证您的 WMI 是否可能被损坏。
答案2
必须运行网络设置服务才能使“Get-NetAdapter”命令在 PowerShell 中返回任何内容。