Hello @jack63ss,
If you wanted to see exactly what information you actually have on your PC for a Camera
, Copy & Paste
the following [ ALL at once ] into a CMD Prompt
and press Enter
.
Code:
@echo off
PowerShell ^
$Tot=((Get-PnpDevice ^| Where-Object {$_.Class -Like '*Camera*'}) ^| Measure-Object).Count; ^
$List=(Get-PnpDevice ^| Where-Object {$_.Class -Like '*Camera*'} ^| Sort-Object -Property Class, Name ^| Format-Table -AutoSize ^
@{L='Name' ;E={;if([string]::IsNullOrWhiteSpace($_.Name)) {'-'} else {$_.Name}}}, ^
@{L='Class' ;E={;if([string]::IsNullOrWhiteSpace($_.Class)) {'-'} else {$_.Class}}}, ^
@{L='Device ID' ;E={;if([string]::IsNullOrWhiteSpace($_.DeviceID)) {'-'} else {$_.DeviceID}}}, ^
@{L='Description' ;E={;if([string]::IsNullOrWhiteSpace($_.Description)) {'-'} else {$_.Description}}}, ^
@{L='Manufacturer';E={;if([string]::IsNullOrWhiteSpace($_.Manufacturer)) {'-'} else {$_.Manufacturer}}}, ^
@{L='Present' ;E={;if([string]::IsNullOrWhiteSpace($_.Present)) {'-'} else {$_.Present}};A='Left'}, ^
@{L='Service' ;E={;if([string]::IsNullOrWhiteSpace($_.Service)) {'-'} else {$_.Service}};A='Right'}, ^
@{L='Status' ;E={;if([string]::IsNullOrWhiteSpace($_.Status)) {'-'} else {$_.Status}};A='Right'} ^| ^
Out-String -Width 1000).Trim("""`r`n"""); ^
if ($List.Length) {Write-Host """`n--- Camera(s) [$Tot] - Sorted by [Class, Name] ---`n`n `n`n$List"""} else ^
{Write-Host """`n--- NO Camera(s) Available ---"""; exit 1; goto :Capabilities_Online} >> %Temp%\A.txt
for /f "delims=" %i in (%Temp%\A.txt) do echo. %i
del %Temp%\A.txt
PowerShell ^
$Tot=((Get-PnpDevice ^| Where-Object {$_.Class -Like '*Camera*'}) ^| Measure-Object).Count; ^
$List=(Get-PnpDevice ^| Where-Object {$_.Class -Like '*Camera*'} ^| Sort-Object -Property Class, Name ^| Select ^
@{L=' Name' ;E={;if([string]::IsNullOrWhiteSpace($_.Name)) {'-'} else {$_.Name}}}, ^
@{L=' Description' ;E={;if([string]::IsNullOrWhiteSpace($_.Description)) {'-'} else {$_.Description}}}, ^
@{L=' PnP Class' ;E={;if([string]::IsNullOrWhiteSpace($_.PNPClass)) {'-'} else {$_.PNPClass}}}, ^
@{L=' PnP Device ID' ;E={;if([string]::IsNullOrWhiteSpace($_.PNPDeviceID)) {'-'} else {$_.PNPDeviceID}}}, ^
@{L=' Manufacturer' ;E={;if([string]::IsNullOrWhiteSpace($_.Manufacturer)) {'-'} else {$_.Manufacturer}}}, ^
@{L=' Device ID' ;E={;if([string]::IsNullOrWhiteSpace($_.DeviceID)) {'-'} else {$_.DeviceID}}}, ^
@{L=' Instance ID' ;E={;if([string]::IsNullOrWhiteSpace($_.InstanceId)) {'-'} else {$_.InstanceId}}}, ^
@{L=' Hardware ID' ;E={;if([string]::IsNullOrWhiteSpace($_.HardwareID)) {'-'} else {$_.HardwareID -Replace ('\s *',' ') -Join (', ')}}}, ^
@{L=' Compatible ID' ;E={;if([string]::IsNullOrWhiteSpace($_.CompatibleID)) {'-'} else {$_.CompatibleID -Replace ('\s *',' ') -Join (', ')}}}, ^
@{L=' Present' ;E={;if([string]::IsNullOrWhiteSpace($_.Present)) {'-'} else {$_.Present}}}, ^
@{L=' Creation Class Name' ;E={;if([string]::IsNullOrWhiteSpace($_.CreationClassName)) {'-'} else {$_.CreationClassName}}}, ^
@{L=' System Creation Class Name' ;E={;if([string]::IsNullOrWhiteSpace($_.SystemCreationClassName)) {'-'} else {$_.SystemCreationClassName}}}, ^
@{L=' Availability' ;E={;if([string]::IsNullOrWhiteSpace($_.Availability)) {'-'} else {$_.Availability}}}, ^
@{L=' Service' ;E={;if([string]::IsNullOrWhiteSpace($_.Service)) {'-'} else {$_.Service}}}, ^
@{L=' Install Date' ;E={;if([string]::IsNullOrWhiteSpace($_.InstallDate)) {'-'} else {$_.InstallDate}}}, ^
@{L=' Config Manager User Config' ;E={;if([string]::IsNullOrWhiteSpace($_.ConfigManagerUserConfig)) {'-'} else {$_.ConfigManagerUserConfig}}}, ^
@{L=' Config Manager Error Code' ;E={;if([string]::IsNullOrWhiteSpace($_.ConfigManagerErrorCode)) {'-'} else {$_.ConfigManagerErrorCode}}}, ^
@{L=' Power Management Supported' ;E={;if([string]::IsNullOrWhiteSpace($_.PowerManagementSupported)) {'-'} else {$_.PowerManagementSupported}}}, ^
@{L=' Power Management Capabilities';E={;if([string]::IsNullOrWhiteSpace($_.PowerManagementCapabilities)) {'-'} else {$_.PowerManagementCapabilities}}}, ^
@{L=' Last Error Code' ;E={;if([string]::IsNullOrWhiteSpace($_.LastErrorCode)) {'-'} else {$_.LastErrorCode}}}, ^
@{L=' Error Description' ;E={;if([string]::IsNullOrWhiteSpace($_.ErrorDescription)) {'-'} else {$_.ErrorDescription}}}, ^
@{L=' Error Cleared' ;E={;if([string]::IsNullOrWhiteSpace($_.ErrorCleared)) {'-'} else {$_.ErrorCleared}}}, ^
@{L=' Problem' ;E={;if([string]::IsNullOrWhiteSpace($_.Problem)) {'-'} else {$_.Problem}}}, ^
@{L=' Problem Description' ;E={;if([string]::IsNullOrWhiteSpace($_.ProblemDescription)) {'-'} else {$_.ProblemDescription}}}, ^
@{L=' Class' ;E={;if([string]::IsNullOrWhiteSpace($_.Class)) {'-'} else {$_.Class}}}, ^
@{L=' Class GUID' ;E={;if([string]::IsNullOrWhiteSpace($_.ClassGuid)) {'-'} else {$_.ClassGuid -Replace ('{','') -Replace ('}','')}}}, ^
@{L=' CIM Class' ;E={;if([string]::IsNullOrWhiteSpace($_.CimClass)) {'-'} else {$_.CimClass}}}, ^
@{L=' Status' ;E={;if([string]::IsNullOrWhiteSpace($_.Status)) {'-'} else {$_.Status}}}, ^
@{L=' Status Info' ;E={;if([string]::IsNullOrWhiteSpace($_.StatusInfo)) {'-'} else {$_.StatusInfo}}} ^| ^
Format-List ^| Out-String -Width 1000).Trim("""`r`n"""); ^
if ($List.Length) {Write-Host """`n --- Camera(s) [$Tot] - Sorted by [Class, Name] ---`n`n$List"""} else {exit 1}
echo. & echo ^>Press ANY key to EXIT . . . & pause >nul & Exit
The above is an extract from my PROJECT: Computer Report - Comprehensive
in my signature.
For the Driver Version
[ Probably USB Video Device
], look at the Description
from the above output and then run the following command in a CMD Prompt
. . .
Code:
PowerShell "Get-wmiObject Win32_PnPSignedDriver| Select DeviceName, Driverversion | Sort DeviceName"
If it is USB Video Device
, run the following one-liner command in a CMD Prompt
rather than the one above . . .
Code:
PowerShell "Get-wmiObject Win32_PnPSignedDriver| Where {$_.DeviceName -Match 'USB Video Device'} | Select DeviceName, Driverversion | Sort DeviceName"
I hope this helps.