Question Aide A l'écriture d'un script

Plus d'informations
il y a 10 ans 4 mois #21037 par Palourde
Bonjour,
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 :D

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

Plus d'informations
il y a 10 ans 4 mois #21048 par Philippe
Réponse de Philippe sur le sujet Re:Aide A l'écriture d'un script
salut rogerpalourde

Je tien tout d’abord a préciser que je ne connait absolument pas powershell ^^''

comme tous le monde au debut ! donc ta pas à t'inquiété, c'est normal de cherché et de rien comprendre au début !

Alors pour cette demande :

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

tu est le seul a pouvoir automatisé une installation, ou plus précisément l'éditeur du logiciel te donnera la solution
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 :

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)
.
.
.

si comme ici tu trouve plusieurs réponse tu devras changé le filtre pour n'avoir qu'une reponse en retour :
[code:1]Get-WmiObject win32_product | where {$_.name -match 'Framework Tools'}[/code:1]
ne renvoie que :

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)

l'appli alors elle sera desinstallable de cette façon :
[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.

Plus d'informations
il y a 10 ans 4 mois #21056 par Palourde
Réponse de Palourde sur le sujet Re:Aide A l'écriture d'un script
Merci :D
je commence l'écriture de suite et reviens si j'ai un problème :D

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

Plus d'informations
il y a 10 ans 4 mois #21060 par Palourde
Réponse de Palourde sur le sujet Re:Aide A l'écriture d'un script
# Update #

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.

Plus d'informations
il y a 10 ans 4 mois #21062 par Philippe
Réponse de Philippe sur le sujet Re:Aide A l'écriture d'un script

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

ça fais plaisir de voir ton enthousiasme ! :)

Mais du coup j'ai réfléchie et avais oublié que l’exécution des script est bloquer par défaut.

je ne sais pas quelle sont tes manip d'install avant de lancé ton script, mais un clique droit \&quot;exécuté avec powershell\&quot; ne pose pas de problème je crois

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 \&quot;c:\tonscript.ps1\&quot;
[/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 \&quot;StdRegProv\&quot;}
$value = $reg.SetDWORDValue($HKLM,\&quot;Software\Microsoft\Windows\CurrentVersion\Policies\System\&quot;,\&quot;EnableLUA\&quot;, 0)
$value = $reg.SetDWORDValue($HKLM,\&quot;Software\Microsoft\Windows\CurrentVersion\Policies\System\&quot;,\&quot;ConsentPromptBehaviorAdmin\&quot;, 0)
$value = $reg.SetDWORDValue($HKLM,\&quot;Software\Microsoft\Windows\CurrentVersion\Policies\System\&quot;,\&quot;PromptOnSecureDesktop\&quot;, 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 \&quot;StdRegProv\&quot;}
$value = $reg.SetDWORDValue($HKLM,\&quot;Software\Microsoft\Windows\CurrentVersion\Policies\System\&quot;,\&quot;EnableLUA\&quot;, 1)
$value = $reg.SetDWORDValue($HKLM,\&quot;Software\Microsoft\Windows\CurrentVersion\Policies\System\&quot;,\&quot;ConsentPromptBehaviorAdmin\&quot;, 5)
$value = $reg.SetDWORDValue($HKLM,\&quot;Software\Microsoft\Windows\CurrentVersion\Policies\System\&quot;,\&quot;PromptOnSecureDesktop\&quot;, 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.

Plus d'informations
il y a 10 ans 4 mois #21064 par Palourde
Réponse de Palourde sur le sujet Re:Aide A l'écriture d'un script
Impec c'est bien pour les règles policy que j'avais un soucis

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.

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