Question Surcharge introuvable pour "delete" et le nombre d'arguments "6"

Plus d'informations
il y a 1 mois 3 semaines #32541 par Garault
Bonjour à tous,
Je suis entrain d'écrire un script qui désactive les comptes, supprime les droits d'accès, supprime un dossier personnel sur le serveur de fichier et supprime le partage de celui-ci. Mon problème se situant à ce niveau, je ne parviens pas à supprimer le partage du dossier personnel, le dossier se supprime correctement pour autant sur le serv de fichier. 
Mon erreur est la suivante : Surcharge introuvable pour "Delete" et nombre d'arguments "6" 

Surcharge introuvable pour « Delete » et le nombre d'arguments « 6 ».
Au caractère C:\Scripts\****\Gestion utilisateurs desactivé\Script désactivation + suppression droits et G depuis CSV.ps1:32 : 63
+ ... activer.SamAccountName)", "$($Users_desactiver.SamAccountName)", 0, 1 ...
+                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodCountCouldNotFindBest


#Importation du module Active Directory
Import-Module ActiveDirectory

#Définition des variables
$CheminCSV = "********"
$File_Server = "*********" 

#Ouverture du CSV
$CSV_DESACTIVATION = Import-CSV $CheminCSV -Delimiter ";"

#Lancement d'une boucle ForEach pour parser chaque ligne du fichier CSV
ForEach ($Users_desactiver in $CSV_DESACTIVATION)
{
    #Création d'une variable intermédiaire pour récupérer le SamAccountName
    $SamAccountName = $($Users_desactiver.SamAccountName)

    
    #Suppression des groupes
   # Get-AdPrincipalGroupMembership -Identity $SamAccountName | Where-Object { $_.Name -Ne "Utilisateurs du domaine" } | Remove-AdGroupMember -Members $SamAccountName -Confirm:$false  
                      
    #Désactivation du compte
    Set-ADUser -Identity $SamAccountName -Enabled:$false -Description "$(Get-Date -Format yyyy/MM/dd)*"

    #Suppression du partage

   $share = Get-WmiObject Win32_Share -ComputerName $File_Server
   $share.delete("U:\$($Users_desactiver.SamAccountName)", "$($Users_desactiver.SamAccountName)", 0, 100, "", "")

   

    #Supression du dossier sur le serveur de fichier 
    Remove-Item \\$File_Server\U$\$($Users_desactiver.SamAccountName) 
    
    Read-Host -Prompt "Appuyer sur entrée pour continuer ou fermer le script"
}



En vous remerciant pour votre aide
Très bonne journée à vous

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 3 semaines #32542 par Laurent Dardenne
Salut,
ton appel WMI renvoie une liste de share il faut 'boucler' sur le résultat et la méthode Delete n'attend aucun paramètre. Il faut l'appeler sur chaque élément de la liste.

Tutoriels PowerShell
Les utilisateur(s) suivant ont remercié: Garault

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 3 semaines #32543 par Garault
Salut, merci pour cette réponse super rapide !

Effectivement, la variable
$share = Get-WmiObject Win32_Share -ComputerName $File_Server

Me liste tous les partages sur le serveurs de fichier

Si je comprend bien je devrais faire :
For each ($shares in $share)
{
$share.delete("U:\$($Users_desactiver.SamAccountName)",
"$($Users_desactiver.SamAccountName)")

Est ce cela ou je suis à coté de la plaque? ^^"

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 3 semaines #32547 par Laurent Dardenne
> je suis à coté de la plaque?
oui, tu n'a pas lu ce que j'ai écrit. On supprime un objet share qui est lié à une machine pas à un user ( qui lui peut avoir des droits mais c'est une histoire)

Par convention on utilise 'S' en fin des noms de variable de type tableau. ton code d'exemple est erroné sur les noms de variable...

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.100 secondes
Propulsé par Kunena