Question
problem de script pour desinstaller une aplication
- kone
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
il y a 12 ans 10 mois #14769
par kone
problem de script pour desinstaller une aplication a été créé par kone
salut a tous ,je suis novice en powershell mais jaun probleme , jai eu un sscript sur le site mais le probleme est que je ne le comprens pas ,je ne sais pas comment l'executer ...aide !!!!!
Function Unistall-Software ([string] $name, [string] $computer = \".\")
{
if (! $path)
{
throw \"Vous devez spécifier le chemin d'accès de l''application à désinstaller.\"
}
else
{
(Get-WmiObject -Class Win32_Product -Filter \"Name=\"+$name -ComputerName . ).InvokeMethod(\"Uninstall\",$null)
}
}
jaimeras savoir comment l'utiliser ....merci d'avance
Function Unistall-Software ([string] $name, [string] $computer = \".\")
{
if (! $path)
{
throw \"Vous devez spécifier le chemin d'accès de l''application à désinstaller.\"
}
else
{
(Get-WmiObject -Class Win32_Product -Filter \"Name=\"+$name -ComputerName . ).InvokeMethod(\"Uninstall\",$null)
}
}
jaimeras savoir comment l'utiliser ....merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 12 ans 10 mois #14772
par SiSMik
Réponse de SiSMik sur le sujet Re:problem de script pour desinstaller une aplication
Bonjour,
Désolé de faire mon casse couille, mais l'utilisation des balises [cod e] sont préférables quand on poste du code dans un message, ça permet d'avoir une jolie coloration syntaxique et ça facilite la lecture à ceux qui vont t'aider
Pour exécuter un script powershell, plsuieurs solutions existent, mais tout d'abord il faut sauvegarder les lignes de code dans un fichier avec une extension *.ps1
- Lancer l'ISE, Faire fichier > ouvrir et sélectionner le .ps1 à ouvrir.
Ensuite, si le script contient des fonctions que tu souhaites exécuter, il faut rajouter dans l'ISE Powershell l'appel à cette fonction en ajoutant l'appel suivant en fin de script.
-> Verb-Noun -param1 Value -ParamN Value
- Lancer une console Powershell, naviguer dans le répertoire qui contient le script et l'exécuter. Si il contient des paramètres, il est aussi possible delui passer (ex: .\Script.ps1 -param1 Value)
Par contre (lire les commentaires en vert), j'ai des interrogations sur ton script.
[code:1]Function Unistall-Software ([string] $name, [string] $computer = \".\"«») {
if (! $path) { ### <-- elle vient d'où cette variable $path ?
throw \"Vous devez spécifier le chemin d'accès de l''application à désinstaller.\"
}
else {
(Get-WmiObject -Class Win32_Product -Filter \"Name=\"+$name -ComputerName . ).InvokeMethod(\"Uninstall\",$null) # ComputerName devrait être renseigné avec la variable $computer définit en paramètre du scrit et le filtre me parait bizarre.
}
}
[/code:1]
En bref, es-tu sur que cette fonction marchait ?
Désolé de faire mon casse couille, mais l'utilisation des balises [cod e] sont préférables quand on poste du code dans un message, ça permet d'avoir une jolie coloration syntaxique et ça facilite la lecture à ceux qui vont t'aider
Pour exécuter un script powershell, plsuieurs solutions existent, mais tout d'abord il faut sauvegarder les lignes de code dans un fichier avec une extension *.ps1
- Lancer l'ISE, Faire fichier > ouvrir et sélectionner le .ps1 à ouvrir.
Ensuite, si le script contient des fonctions que tu souhaites exécuter, il faut rajouter dans l'ISE Powershell l'appel à cette fonction en ajoutant l'appel suivant en fin de script.
-> Verb-Noun -param1 Value -ParamN Value
- Lancer une console Powershell, naviguer dans le répertoire qui contient le script et l'exécuter. Si il contient des paramètres, il est aussi possible delui passer (ex: .\Script.ps1 -param1 Value)
Par contre (lire les commentaires en vert), j'ai des interrogations sur ton script.
[code:1]Function Unistall-Software ([string] $name, [string] $computer = \".\"«») {
if (! $path) { ### <-- elle vient d'où cette variable $path ?
throw \"Vous devez spécifier le chemin d'accès de l''application à désinstaller.\"
}
else {
(Get-WmiObject -Class Win32_Product -Filter \"Name=\"+$name -ComputerName . ).InvokeMethod(\"Uninstall\",$null) # ComputerName devrait être renseigné avec la variable $computer définit en paramètre du scrit et le filtre me parait bizarre.
}
}
[/code:1]
En bref, es-tu sur que cette fonction marchait ?
Connexion ou Créer un compte pour participer à la conversation.
- kone
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
il y a 12 ans 10 mois #14773
par kone
Réponse de kone sur le sujet Re:problem de script pour desinstaller une aplication
non elle ne marche pas, jai essayé de faire des modification mais rien... aidez moi a trouver un script qui me permettra de désinstaller une application que ce soit en local ou sur une machine distante svp !!!! urgent
Connexion ou Créer un compte pour participer à la conversation.
- kone
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
il y a 12 ans 10 mois #14775
par kone
Réponse de kone sur le sujet Re:problem de script pour desinstaller une aplication
Merci d'avance !!!
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 12 ans 10 mois #14781
par SiSMik
Réponse de SiSMik sur le sujet Re:problem de script pour desinstaller une aplication
Sincèrement,
Tu as tout ce qu'il te faut sous le coude...
Pour récupérer la liste des applications installées sur ton server:
[code:1]$Applications = Get-WmiObject -Class Win32_Product
$Applications[/code:1]
Si tu veux le faire à distance sur un autre server
[code:1]$Applications = Get-WmiObject -Class Win32_Product -ComputerName \"Server\"
$Applications[/code:1]
Après il faut filtrer pour n'avoir que l'application que tu souhaites.
[code:1]
#Exemple avec Windows Live
$Appli = $Applications | Where ( $_.Name -eq \"Windows Live\"} [/code:1]
Ensuite, il faudrait que tu trouves une méthode pour déinstaller l'application
[code:1]$Appli | Get-Member[/code:1]
Tu obtiens ceci
Là, tu remarqueras la géniale présence de la méthode \"Uninstall\"
Et bien y'a plus qu'à l'appeller
[code:1]$Appli.Unstall()[/code:1]
Maintenant tu peux faire le tout en OneLiner
[code:1](Get-WmiObject -Class Win32_Product -ComputerName \"Server\" | ? { $_.Name -eq \"Windows Live\" }).Uninstall[/code:1]
Voilà
Tu as tout ce qu'il te faut sous le coude...
Pour récupérer la liste des applications installées sur ton server:
[code:1]$Applications = Get-WmiObject -Class Win32_Product
$Applications[/code:1]
Si tu veux le faire à distance sur un autre server
[code:1]$Applications = Get-WmiObject -Class Win32_Product -ComputerName \"Server\"
$Applications[/code:1]
Après il faut filtrer pour n'avoir que l'application que tu souhaites.
[code:1]
#Exemple avec Windows Live
$Appli = $Applications | Where ( $_.Name -eq \"Windows Live\"} [/code:1]
Ensuite, il faudrait que tu trouves une méthode pour déinstaller l'application
[code:1]$Appli | Get-Member[/code:1]
Tu obtiens ceci
PS C:\Users\fdibot> $Appli | gm
TypeName : System.Management.ManagementObject#root\cimv2\Win32_Product
Name MemberType Definition
----
PSComputerName AliasProperty PSComputerName = __SERVER
Configure Method System.Management.ManagementBaseObject Configure(System.UInt16 InstallState, Syste...
Reinstall Method System.Management.ManagementBaseObject Reinstall(System.UInt16 ReinstallMode)
Uninstall Method System.Management.ManagementBaseObject Uninstall()
Upgrade Method System.Management.ManagementBaseObject Upgrade(System.String PackageLocation, Syst...
AssignmentType Property uint16 AssignmentType {get;set;}
Caption Property string Caption {get;set;}
Description Property string Description {get;set;}
HelpLink Property string HelpLink {get;set;}
HelpTelephone Property string HelpTelephone {get;set;}
IdentifyingNumber Property string IdentifyingNumber {get;set;}
InstallDate Property string InstallDate {get;set;}
InstallDate2 Property string InstallDate2 {get;set;}
InstallLocation Property string InstallLocation {get;set;}
InstallSource Property string InstallSource {get;set;}
InstallState Property int16 InstallState {get;set;}
Language Property string Language {get;set;}
LocalPackage Property string LocalPackage {get;set;}
Name Property string Name {get;set;}
PackageCache Property string PackageCache {get;set;}
PackageCode Property string PackageCode {get;set;}
PackageName Property string PackageName {get;set;}
ProductID Property string ProductID {get;set;}
RegCompany Property string RegCompany {get;set;}
RegOwner Property string RegOwner {get;set;}
SKUNumber Property string SKUNumber {get;set;}
Transforms Property string Transforms {get;set;}
URLInfoAbout Property string URLInfoAbout {get;set;}
URLUpdateInfo Property string URLUpdateInfo {get;set;}
Vendor Property string Vendor {get;set;}
Version Property string Version {get;set;}
WordCount Property uint32 WordCount {get;set;}
__CLASS Property string __CLASS {get;set;}
__DERIVATION Property string[] __DERIVATION {get;set;}
__DYNASTY Property string __DYNASTY {get;set;}
__GENUS Property int __GENUS {get;set;}
__NAMESPACE Property string __NAMESPACE {get;set;}
__PATH Property string __PATH {get;set;}
__PROPERTY_COUNT Property int __PROPERTY_COUNT {get;set;}
__RELPATH Property string __RELPATH {get;set;}
__SERVER Property string __SERVER {get;set;}
__SUPERCLASS Property string __SUPERCLASS {get;set;}
PSStatus PropertySet PSStatus {Name, Version, InstallState}
ConvertFromDateTime ScriptMethod System.Object ConvertFromDateTime();
ConvertToDateTime ScriptMethod System.Object ConvertToDateTime();
Là, tu remarqueras la géniale présence de la méthode \"Uninstall\"
Et bien y'a plus qu'à l'appeller
[code:1]$Appli.Unstall()[/code:1]
Maintenant tu peux faire le tout en OneLiner
[code:1](Get-WmiObject -Class Win32_Product -ComputerName \"Server\" | ? { $_.Name -eq \"Windows Live\" }).Uninstall[/code:1]
Voilà
Connexion ou Créer un compte pour participer à la conversation.
- kone
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
il y a 12 ans 10 mois #14783
par kone
Réponse de kone sur le sujet Re:problem de script pour desinstaller une aplication
vraiment merci bcp !!!!
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.050 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- problem de script pour desinstaller une aplication