- forum
- PowerShell
- Entraide pour les débutants
- Surcharge introuvable pour "delete" et le nombre d'arguments "6"
Question
Surcharge introuvable pour "delete" et le nombre d'arguments "6"
- Garault
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 1 an 8 mois #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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 1 an 8 mois #32542
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Surcharge introuvable pour "delete" et le nombre d'arguments "6"
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.
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.
- Garault
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 1 an 8 mois #32543
par Garault
Réponse de Garault sur le sujet Surcharge introuvable pour "delete" et le nombre d'arguments "6"
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? ^^"
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 1 an 8 mois #32547
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Surcharge introuvable pour "delete" et le nombre d'arguments "6"
> 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...
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.
- forum
- PowerShell
- Entraide pour les débutants
- Surcharge introuvable pour "delete" et le nombre d'arguments "6"
Temps de génération de la page : 0.074 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Surcharge introuvable pour "delete" et le nombre d'arguments "6"