Question
Aide A l'écriture d'un script
- Palourde
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 5
- Remerciements reçus 0
Je tien tout d’abord a préciser que je ne connait absolument pas powershell ^^''
Jusqu’à maintenant j’utilisai des batch pour m'aider dans mon travaille mais étant donnée de nombreux bug je regarde du coter du powershell.
Le but de mon script étais : (A la base en batch)
D'installer une police d’écriture
D'installer dotnetfx
D'installer une dépendance pour l'installation du programme \"x\"
Installation du programme \"x\"
Désinstallation d'un programme \"z\"
Patch de fichier de configuration
Jusqu’à maintenant cette solution étais suffisante mais a force de mise a jour du programme \"x\" et donc d’édition du script celui si s'est mit a ne plus fonctionner correctement (pause qui ne fonctionne plus echo qui déconne etc ...)
J'aimerais donc savoir les commande qui me serons utile dans l’écriture du script je ne demande pas un script clé en main juste de l'aide pour l'écriture de celui si je ferais les recherche nécessaire pour apprendre le langage
Précision supplémentaire le batch n’était pas en full auto pour l’installe des logiciel ou de la police celui si ne faisait que ouvrir les .exe au moment ou il fallait les ouvrir mais si il y a un moyen de passer en full auto ça serait vraiment cool
(Le script a était crée car la démarche est a faire régulièrement sur tout les nouveaux pc de notre parc)
Merci par avance
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
comme tous le monde au debut ! donc ta pas à t'inquiété, c'est normal de cherché et de rien comprendre au début !Je tien tout d’abord a préciser que je ne connait absolument pas powershell ^^''
Alors pour cette demande :
tu est le seul a pouvoir automatisé une installation, ou plus précisément l'éditeur du logiciel te donnera la solutionPrécision supplémentaire le batch n’était pas en full auto pour l’installe des logiciel ou de la police celui si ne faisait que ouvrir les .exe au moment ou il fallait les ouvrir mais si il y a un moyen de passer en full auto ça serait vraiment cool
par exemple en fournissant un fichier .msi plutôt que .exe
ou en donnent les paramètres à rajouté à la suite de l'exe dans la ligne de commande !
pour dotnet par exemple si tu tape ceci :
dotNetFx45_Full_setup.exe /?
tu aura une fenêtre avec la liste des paramètres (commutateurs) que tu peut passé pour l'installation
par exemple \"/q\" va te permettre de faire une install silencieux (automatique)
pour finir avec cette exemple, pour faire cette install depuis un script powershell tu pourra utilisé start-process de cette façon :
[code:1]Start-Process -FilePath \"dotNetFx45_Full_setup.exe\" -ArgumentList \"/q\" -Wait [/code:1]
pour la désinstallation d'une appli, si l'application c'est installé dans les norme de Windows tu la retrouvera avec la commande suivante en remplacent \"ton-appli\" par une partie du nom que tu dans \"Panneau de configuration\Programmes\Programmes et fonctionnalités\" :
[code:1]Get-WmiObject win32_product | where {$_.name -match 'ton-appli'}[/code:1]
exemple pour dotnet :
[code:1]Get-WmiObject win32_product | where {$_.name -match 'framework'}[/code:1]
tu aura cette réponse :
si comme ici tu trouve plusieurs réponse tu devras changé le filtre pour n'avoir qu'une reponse en retour :IdentifyingNumber : {26784146-6E05-3FF9-9335-786C7C0FB5BE}
Name : Microsoft .NET Framework 4.5.2
Vendor : Microsoft Corporation
Version : 4.5.51209
Caption : Microsoft .NET Framework 4.5.2
IdentifyingNumber : {0874D757-6DE9-31B9-BA0B-2299F3A144C0}
Name : Microsoft Windows SDK .NET Framework Tools (40715)
Vendor : Microsoft
Version : 7.0.40715
Caption : Microsoft Windows SDK .NET Framework Tools (40715)
IdentifyingNumber : {09FF89AD-A8C5-358C-A807-B07F4A50DE9E}
Name : Microsoft .NET Framework 4.5.2 (FRA)
Vendor : Microsoft Corporation
Version : 4.5.51209
Caption : Microsoft .NET Framework 4.5.2 (FRA)
.
.
.
[code:1]Get-WmiObject win32_product | where {$_.name -match 'Framework Tools'}[/code:1]
ne renvoie que :
l'appli alors elle sera desinstallable de cette façon :IdentifyingNumber : {0874D757-6DE9-31B9-BA0B-2299F3A144C0}
Name : Microsoft Windows SDK .NET Framework Tools (40715)
Vendor : Microsoft
Version : 7.0.40715
Caption : Microsoft Windows SDK .NET Framework Tools (40715)
[code:1]Get-WmiObject win32_product | where {$_.name -match 'ton-appli'} | foreach {$_.uninstall() }[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Palourde
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 5
- Remerciements reçus 0
je commence l'écriture de suite et reviens si j'ai un problème
Connexion ou Créer un compte pour participer à la conversation.
- Palourde
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 5
- Remerciements reçus 0
J'ai bien avancé
Voila ce que j'ai fait
J'ai complétement re-codé le script pour faire des menus moi même pour bien appendre les nouvelles fonction et je suis pas peu fier d'avoir réussi plutôt rapidement
Maintenant je n'est plus qu'a bosser sur l'installe des logiciels
Mais du coup j'ai réfléchie et avais oublié que l’exécution des script est bloquer par défaut.
Le script va être lancer sur énormément de pc donc si en plus de mappage réseaux pour exécuter mon script je doit ajouter une commande a taper a la main ça risque de m’embêter :/
Il y a t'il un moyen de contourner cela ?
Merci par avance<br><br>Message édité par: rogerpalourde, à: 18/11/15 17:52
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
ça fais plaisir de voir ton enthousiasme !J'ai complétement re-codé le script pour faire des menus moi même pour bien appendre les nouvelles fonction et je suis pas peu fier d'avoir réussi plutôt rapidement
je ne sais pas quelle sont tes manip d'install avant de lancé ton script, mais un clique droit \"exécuté avec powershell\" ne pose pas de problème je croisMais du coup j'ai réfléchie et avais oublié que l’exécution des script est bloquer par défaut.
sinon en début de script tu peut faire un :
[code:1]Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force[/code:1]qui autorise l'exécution de tous les scripts mais le script est déjà lancé !
via un fichier bat tu peut faire la même chose :
[code:1]powershell -command {Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force}
powershell -file \"c:\tonscript.ps1\"
[/code:1]la plus de problème
et lancé ton script par la même occasion !
et si la sécurité pose un problème par la suite tu fini par :
[code:1]Set-ExecutionPolicy -ExecutionPolicy Default[/code:1]pour remettre la valeur par défaut !
pour tous ça il faut être admin mais besoin de faire d'élévation !
pour l'UAC tu peut faire ceci pour te laisse tranquille le temps des install :
[code:1] $hklm = 2147483650 # HKEY_LOCAL_MACHINE (0x80000002)
$reg = Get-WmiObject -List -Namespace root\default | Where-Object {$_.Name -eq \"StdRegProv\"}
$value = $reg.SetDWORDValue($HKLM,\"Software\Microsoft\Windows\CurrentVersion\Policies\System\",\"EnableLUA\", 0)
$value = $reg.SetDWORDValue($HKLM,\"Software\Microsoft\Windows\CurrentVersion\Policies\System\",\"ConsentPromptBehaviorAdmin\", 0)
$value = $reg.SetDWORDValue($HKLM,\"Software\Microsoft\Windows\CurrentVersion\Policies\System\",\"PromptOnSecureDesktop\", 0)
[/code:1]
et à la fin remettre les valeurs par défaut :
[code:1] $hklm = 2147483650 # HKEY_LOCAL_MACHINE (0x80000002)
$reg = Get-WmiObject -List -Namespace root\default | Where-Object {$_.Name -eq \"StdRegProv\"}
$value = $reg.SetDWORDValue($HKLM,\"Software\Microsoft\Windows\CurrentVersion\Policies\System\",\"EnableLUA\", 1)
$value = $reg.SetDWORDValue($HKLM,\"Software\Microsoft\Windows\CurrentVersion\Policies\System\",\"ConsentPromptBehaviorAdmin\", 5)
$value = $reg.SetDWORDValue($HKLM,\"Software\Microsoft\Windows\CurrentVersion\Policies\System\",\"PromptOnSecureDesktop\", 3)
[/code:1]
voir ce site pour les détails des clés de la base de registre.
tu peut faire le mappage dans le script aussi mais faut avoir accès au script dans tous les cas ! (une cle usb ?)
tu travail avec une AD ? Tu peut faire la même chose par GPO aussi !<br><br>Message édité par: 6ratgus, à: 19/11/15 10:26
Connexion ou Créer un compte pour participer à la conversation.
- Palourde
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 5
- Remerciements reçus 0
Oui j'ai un AD mais mais je fait partis du service informatique d'une usine parmi tant d'autre de ma boite.
Du coup je suis pas le service info qui gère l'AD ^^'
Mais c'est bon avec le .bat qui débloque les script powershell c'est impeccable
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Aide A l'écriture d'un script