2017-06-20 2 views
3

Est-ce possible?Powershell - vérifier si un CD est dans le lecteur de CD-ROM

Ma première hypothèse serait quelque chose comme:

C:> Get-WmiObject Win32_CDROMDrive

Mais quand j'ai essayé cela, il ne me dit Caption, Drive, Manufacturer, VolumeName

Aucune information sur si oui ou non il y a un CD dans le lecteur de disque.

+2

'[IO.DriveInfo] :: GetDrives() | où {$ _. DriveType -eq 'CDRom' - et $ _. IsReady} '(basé sur les réponses C#) – wOxxOm

+3

Personnellement, je trouve que des questions comme celles-ci sont trompeuses. Y at-il un cd dans le lecteur, oui, quand vous avez vérifié, mais 1 seconde plus tard, l'utilisateur l'a éjecté. Pourquoi ne pas simplement essayer de lire (ou écrire) sur le disque ou quoi que ce soit que vous voulez faire, et gérer les échecs? –

+0

@KoryGill La lecture ou l'écriture sur le CD est à côté du point. L'objectif final est de vérifier s'il y a des médias dans le lecteur ou non. –

Répondre

3

Vous pouvez obtenir ces informations par

(Get-WMIObject -Class Win32_CDROMDrive -Property *).MediaLoaded 

Vous pouvez voir quelles propriétés sont disponibles pour cette classe WMI par

Get-WMIObject -Class Win32_CDROMDrive -Property * | Get-Member 

et plus une documentation détaillée de

Get-WMIHelp -Class Win32_CDROMDrive 

En général , vous trouverez cette utilisation libérale de la Get-Help, Get-Member, Get-Command, et Get-WMIHelp cmdlets vous fournira beaucoup d'informations, et éventuellement éliminer la nécessité de poser des questions comme celle-ci ici et attendre une réponse qui peut ou ne peut pas venir.

+0

Ah, j'aurais dû essayer '-Properties *'. J'oublie toujours qu'il peut y avoir des propriétés non déclarées –

+1

Get-WMIHelp n'est pas une applet de commande PowerShell standard. –

+0

True. Voir https://blogs.msdn.microsoft.com/powershell/2007/09/24/get-wmihelp-amp-search-wmihelp/ et https://ss64.org/viewtopic.php?id=1440 - I ' Je les ai eu sur mon système depuis si longtemps que j'avais oublié qu'ils étaient des ajouts. –