Remove-SymbolicLink - Supprimer un lien symbolique

CréationNicolas THOREZ 2019/11/29 11:54

Créer un lien symbolique, c'est bien. Mais le supprimer sans supprimer la cible du lien c'est mieux. La commande Remove-Item peut parfois avoir du mal avec ça. La fonction suivante résout le problème :

# Suppression d'un lien symbolique
Function Remove-SymbolicLink()
{
	<#
		.SYNOPSIS
			Supprime un lien symbolique.
	
		.DESCRIPTION
			Supprime un lien symbolique, précédemment créé grâce à la commande New-SymbolicLink et sans impacter les fichiers contenus dans la cible du lien.
	
		.PARAMETER  Path
			Chemin du lien à supprimer.
	
		.EXAMPLE
			Remove-SymbolicLink -Path 'C:\hosts'
	
		.INPUTS
			System.String
	
				Prends en charge les chemins sous forme de chaîne de caractères.
	
		.OUTPUTS
			Aucun
	
		.NOTES
			Crée par Nicolas THOREZ, Shyrka System
	
		.LINK
			https://www.shyrkasystem.com
	
	#>
	
	Param
	(
		# Chemin du lien
		[Parameter(Mandatory = $true, ValueFromPipeline = $false)]
		[string]$Path
	)

    # Vérification de l’existence du lien
    If (((Get-Item -Path $Path).Attributes) -match "ReparsePoint")
    {
        # Suppression du lien
        (Get-Item -Path $Path).Delete()
    }
    Else
    {
        # Ce n'est pas un lien symbolique, on émet un message d'erreur
        Write-Error -Message "$Path n'est pas un lien symbolique"
    }
}

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • powershell_removesymlink.txt
  • Dernière modification : 2021/03/05 16:11
  • de nekan