Question problem de script pour desinstaller une aplication

Plus d'informations
il y a 12 ans 10 mois #14769 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

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

Plus d'informations
il y a 12 ans 10 mois #14772 par SiSMik
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 ?

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

Plus d'informations
il y a 12 ans 10 mois #14773 par kone
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.

Plus d'informations
il y a 12 ans 10 mois #14775 par kone
Merci d'avance !!!

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

Plus d'informations
il y a 12 ans 10 mois #14781 par SiSMik
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

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.

Plus d'informations
il y a 12 ans 10 mois #14783 par kone
vraiment merci bcp !!!! :) :) ;)

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

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