J'essaie de démonter un lecteur USB externe à l'aide de PowerShell et je ne parviens pas à le faire. Le script suivant est ce que j'utilise:
#get the Win32Volume object representing the volume I wish to eject
$drive = Get-WmiObject Win32_Volume -filter "DriveLetter = 'F:'"
#call dismount on that object there by ejecting drive
$drive.Dismount($Force , $Permanent)
Je vérifie ensuite mon ordinateur pour vérifier si le lecteur n'est pas monté, mais ce n'est pas le cas.
Les paramètres booléens $ force et $ permanent ont été essayés avec différentes permutations en vain. Le code de sortie renvoyé par la commande de démontage change lorsque les paramètres sont basculés.
(0,0) = exit code 0
(0,1) = exit code 2
(1,0) = exit code 0
(1,1) = exit code 2
La documentation du code de sortie 2 indique qu'il existe des points de montage existants comme raison pour laquelle il ne peut pas être démonté. Bien que j'essaie de démonter le seul point de montage qui existe, je ne sais pas ce que ce code de sortie essaie de me dire.
Ayant déjà parcouru le Web pour les personnes rencontrant des problèmes similaires, je n'ai trouvé qu'une seule commande supplémentaire à essayer et c'est la suivante:
# executed after the .Dismount() command
$drive.Put()
Cette commande supplémentaire n'aide pas.
Je suis à court de choses à essayer, donc toute aide que n'importe qui peut me donner serait grandement appréciée.
Réponses:
Une solution propre qui ne laisse pas de références ouvertes à moitié cuites comme le fait l'échantillon de pk:
Récupéré de http://sushihangover.blogspot.nl/2012/02/powershell-eject-local-or-remote.html
la source
powershell (New-Object -comObject Shell.Application).Namespace(17).ParseName(\"E:\").InvokeVerb(\"Eject\")
$?
estTrue
après avoir appelé la deuxième ligne. Y a-t'il quelque chose que je puisse faire?Je ne peux pas faire un excellent travail en répondant de l'extrémité PowerShell, vous voudrez peut-être regarder comment
mountvol
fonctionne . Il existe différents degrés de démontage.J'ai essayé de faire quelque chose de similaire à ce dont vous aviez besoin dans VBScript pour réorganiser les appareils sur les anciens bureaux où les montages de disques pour le matériel plus ancien qui étaient trop fastidieux à supprimer (lire le lecteur Flash) interféraient avec les raccourcis sur une interface graphique personnalisée où je ne pouvais que mentionner explicitement les points de montage ( D :, E :, F :) avec un but particulier. Cela est devenu extrêmement frustrant, et vous devez démonter et remonter les choses en utilisant les entrées et sorties mountvol pour vérifier que tout s'est bien passé et procéder aux modifications. J'espère que vous avez plus de chance que moi.
la source