2017-05-19 1 views
0

À partir de Windows 10, PowerShell est enfin capable de créer des jonctions et des liens en mode natif. Howerver la fonction Remove-Item semble ignorer la jonction et tente de supprimer le répertoire demandant confirmation et s'il doit récursivement supprimer des éléments à l'intérieur. Donc, la question est: Existe-t-il un moyen de supprimer une jonction à l'aide de Cmdlets natives PowerShell? (À savoir sans appeler cmd)PowerShell Remove Junction

Répondre

2

Y at-il un moyen de supprimer une jonction en utilisant PowerShell?

Actuellement, au moins dans PowerShell v5, this is considered "fixed". Ce que vous pouvez faire est d'utiliser le commutateur -Force, sinon vous obtiendrez une erreur en appelant le chemin une jonction NTFS. La raison pour laquelle j'utilise au moins les guillemets sur fixed est que l'utilisation du switch fera toujours apparaître le message concernant les enfants dans le répertoire. La sélection de Y effacera toujours la jonction dans mes tests en utilisant PSv5.

Remove-Item "C:\temp\junction" -Force -Confirm:$False 

Si cela ne fonctionne pas ou si vous n'avez pas la version 5, vous pouvez utiliser la méthode .Net pour supprimer un répertoire. Cela semble fonctionner correctement aussi.

[io.directory]::Delete("C:\temp\junction") 
+0

Thx pour le lien. Apparemment, il est encore un peu cassé dans PS5.1. 'New-Item -Type symboliclink -Path D: \ test -Value D: \ testtest' ' Remove-Item "D: \ test" ' ne réussit pas en raison du manque paramètre Force (après avoir demandé confirmation): 'Remove-Item" D: \ test "-Force' et ' Remove-Item "D: \ test" -Recurse' Échec dû à un conflit entre le marqueur dans la demande et le point d'analyse (librement traduit de l'allemand) après avoir demandé pour confirmation. 'Remove-Item" D: \ test "-Force -Recurse' Échec de la même chose mais n'a pas besoin de confirmation. – Mastacheata

+0

Avec une jonction cependant, vous pouvez l'enlever sans avoir à confirmer en ajoutant à la fois force et recurse: soit: 'New-Item -Type jonction -Path D: \ test -Valeur D: \ testtest' ' Remove-Item " D: \ test "-Force -Recurse" ' – Mastacheata

0

ont un essai sur cette "commande let":

cmd /c rmdir .\Target 

source: Powershell Remove-Item and symbolic links

+0

Bien que ce soit techniquement correct, ce n'est pas vraiment ce que je cherchais. J'ai clarifié ma question pour clarifier le fait que je cherchais un Cmdlet natif PowerShell et non un bidouillage let-cmd-do-it. – Mastacheata