如何从控制台远程确定笔记本电脑是否有网络摄像头?

如何从控制台远程确定笔记本电脑是否有网络摄像头?

我有多台可以远​​程访问的笔记本电脑,但我不知道它们是否有可用的网络摄像头。我看不到它们。我不需要访问网络摄像头;我只需要知道是否有网络摄像头。

有没有办法可以远程判断笔记本电脑是否有网络摄像头?

我希望有某种cmd可以在每台计算机上触发的代码,可以快速地给我提供可复制的打印输出,以便在计算机之间进行编译。

答案1

在 Windows 上,您可以查看设备管理器以检查是否存在摄像头设备。此检查也可以使用 PowerShell 或命令提示符执行,无需特殊权限。

命令提示符:

pnputil /enum-devices /class Camera /connected

将打印:

Microsoft PnP Utility

Instance ID:                USB\VID_0C45&PID_672E&MI_02\6&3d846a0&0&0002
Device Description:         Integrated Webcam
Class Name:                 Camera
Class GUID:                 {ca3e7ab9-b4c3-4ae6-8251-579ef933890f}
Manufacturer Name:          Microsoft
Status:                     Started
Driver Name:                usbvideo.inf

Instance ID:                USB\VID_0C45&PID_672E&MI_00\6&3d846a0&0&0000
Device Description:         Integrated Webcam
Class Name:                 Camera
Class GUID:                 {ca3e7ab9-b4c3-4ae6-8251-579ef933890f}
Manufacturer Name:          Microsoft
Status:                     Started
Driver Name:                usbvideo.inf

Instance ID:                USB\VID_0FD9&PID_0078&MI_00\8&e3fc9d&0&0000
Device Description:         Elgato Facecam
Class Name:                 Camera
Class GUID:                 {ca3e7ab9-b4c3-4ae6-8251-579ef933890f}
Manufacturer Name:          Microsoft
Status:                     Started
Driver Name:                usbvideo.inf

电源外壳:

Get-PnpDevice -PresentOnly -Class Camera

将打印:


Status     Class           FriendlyName                                                                     InstanceId
------     -----           ------------                                                                     ----------
OK         Camera          Integrated Webcam                                                                USB\VID_0C45...
OK         Camera          Integrated Webcam                                                                USB\VID_0C45...
OK         Camera          Elgato Facecam                                                                   USB\VID_0FD9...

您无法使用简单的过滤器(如上所示)可靠地区分内部和外部摄像头。您必须根据名称或其他提示进行判断。


一些不使用 USB 视频类的旧网络摄像头可能不会出现在相机类。相反,可以使用图像类,如今通常用于文档扫描仪等。

使用pnputil,您必须运行两个命令才能获取这两个类。使用 PowerShell,您只需要一个:

Get-PnpDevice -PresentOnly -Class Camera,Image

输出(不同的PC,没有-PresentOnly,因此未知):

Status     Class           FriendlyName                                                                     InstanceId
------     -----           ------------                                                                     ----------
Unknown    Image           Logitech QuickCam 3000                                                           USB\VID_...
Unknown    Image           Brother DCP-9022CDW [3c2af42c08de]                                               SWD\DAFW...
Unknown    Camera          HTC Vive                                                                         USB\VID_...

但是,这只适用于非常旧的硬件它还可以捕捉非摄像设备,比如上面的多功能打印机。

答案2

PowerShell 看起来是个不错的选择。使用 PowerShell 发现笔记本电脑网络摄像头给出了几个选项。

对我有用的是

Get-CimInstance Win32_PnPEntity | where caption -match 'cam'

您可能需要多次运行该命令,并使用“camera”或“cam”或其他可以捕捉所有不同选项的术语。例如,我的相机是 Microsoft LifeCam,如果您搜索“camera”,则不会显示该选项

如果你修改搜索条件,你也许可以看到更多内容

Get-CimInstance Win32_PnPEntity | where PNPClass -match 'Image'

这将向您显示所有成像设备,可能包括扫描仪和其他设备。

答案3

我还没有对此进行过广泛的测试,但是

Get-PnpDevice -PresentOnly | Where-Object { $_.Class -match '^Camera' }似乎有效 - 有点开始于这个答案并调整至适合

它还会在“友好名称”下为您提供相机型号的名称

相关内容