Question Aide pour de l'optimisation

Plus d'informations
il y a 8 ans 8 mois #23964 par Betrancourt
Bonjour ! Alors voila je suis en stage dans une grande entreprise dans le secteur informatique, et mon tuteur ma donné comme tâche pour 3 semaines, \"apprend Powershell depuis le début et en entier puis optimise moi ce code\".
Je vous avoue j'ai jamais touché a du powershell avant et je viens de me farcir 200 pages de formation :S je suis un peu perdu.

Du coup j’aimerais bien savoir déjà comment le code fonctionnes en général.. (je vais pas vous demander de l'optimisez pour moi hein ! ^^ ) juste pour le comprendre déjà, ça m'aiderez beaucoup, tout ce qu'il ma dit c'est : \"il s'agit d'un script qui analyse les PC du réseau et regarde les logiciels après je t'en dit pas plus\"... un vrai sadique :pinch: en plus y a du XML avec ca arrange pas les choses :/

La pièce jointe Inventaire.ps1 est absente ou indisponible




PS : je suis sous PS V3

Message édité par: Valeze, à: 19/07/17 11:25<br><br>Message édité par: Valeze, à: 19/07/17 11:46

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

Plus d'informations
il y a 8 ans 8 mois #23966 par Marc
Réponse de Marc sur le sujet Re:Aide pour de l'optimisation
Salut,
c'est exactement ce que ton tuteur t'a dit :P

On récupère la liste des *.exe et *.bat en excluant certain dossier via un Job sur le PC.

Ensuite, les logiciels installé sur le PC qui correspondent à ceux dans le XML sont stocké dans une base SQL.

Le mieux est encore que tu nous dise ce que tu ne comprend pas.

Est-ce que déjà tu as les bases ?
Excélents tutos de Laurent

Et ne pas oublié que powershell c'est du .NET

Pratique de .NET et C#

Ce bouquin est certes vieux mais la philosophie n'a pas beaucoup évolué, cette lecture à débridé ma compréhension du Framework .NET

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

Plus d'informations
il y a 8 ans 8 mois #23967 par Philippe
Réponse de Philippe sur le sujet Re:Aide pour de l'optimisation
salut Valeze

Je vous avoue j'ai jamais touché a du powershell avant et je viens de me farcir 200 pages de formation je suis un peu perdu.

et oui apprentissage passe aussi par la lecture de doc
et au passage même après pour mieux comprendre ce que l'on utilise parfois chaque jour

ce site que je conseil pour les debutants ou les cours font un survol de toutes les info de base à connaître
le site est mal fais à mon gout mais possède de bon tuto sur divers sujets dont certain te seront utile pour ton script<br><br>Message édité par: 6ratgus, à: 19/07/17 14:43

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

Plus d'informations
il y a 8 ans 8 mois #23968 par Betrancourt
Réponse de Betrancourt sur le sujet Re:Aide pour de l'optimisation
Merci beaucoup pour votre aide ^^ je commence a comprendre un peu comment est fait est organisé le code.
Je n'ai quasiment jamais fait de script avant, alors commencer directement par de \&quot;l'optimisation\&quot; ça fait un choc xD

je crois que je vais avoir du mal :S mais je vais m'en sortir ! je commence a aimer Powershell ahah !

J'ai encore quelque petit question du coup sur le code :
je ne comprend vraiment pas cette partie, cette variables $gciblock
[code:1]$gciblock = {
Param(
[parameter(mandatory = $True)]
$Path,
[parameter(mandatory = $True)]
$filter
)
[/code:1]

et celle-ci [code:1][System.Diagnostics.Process]::GetCurrentProcess().PriorityClass = \&quot;BelowNormal\&quot;
[System.Diagnostics.Process]::GetCurrentProcess().PriorityClass


Update-TypeData -Force -TypeName System.IO.FileInfo -MemberName FileVersionUpdated -MemberType ScriptProperty -Value {
[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName) | % {
[Version](($_.FileMajorPart, $_.FileMinorPart, $_.FileBuildPart, $_.FilePrivatePart)-join\&quot;.\&quot;«»)[/code:1]

pourquoi utiliser la ligne de code \&quot;[System.Diagnostics.Process] plusieurs fois ? j'ai crui comprendre qu'elle servait a mettre le script en priorité basse sur les pc du réseau mais... c'est tout


Merci beaucoup encore de prendre le temps pour moi, je sais quec'est un script qui est quand même assez long.. merci la communauté ! :D

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

Plus d'informations
il y a 8 ans 8 mois #23969 par Marc
Réponse de Marc sur le sujet Re:Aide pour de l'optimisation
[code:1]
$gciblock = {

Param(

[parameter(mandatory = $True)]

$Path,

[parameter(mandatory = $True)]

$filter

)
[/code:1]
Pour cette partie, ça ce passe ICI

Ce sont des paramètres, ils permettent de passer des valeurs à un scriptblock ou une fonction.
Dans ton cas il s'agit d'un scriptblock.


[code:1]
[System.Diagnostics.Process]::GetCurrentProcess().PriorityClass = \&quot;BelowNormal\&quot;

[System.Diagnostics.Process]::GetCurrentProcess().PriorityClass

[/code:1]

Le premier sert à définir la valeur de la priorité.
Le second à rien du tout, peut-être pour vérifier que la valeur est bien passer, enfin tu pourrais le commenter ça ne changerai rien.

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

Plus d'informations
il y a 8 ans 8 mois #23970 par Betrancourt
Réponse de Betrancourt sur le sujet Re:Aide pour de l'optimisation
marcci écrit:

[code:1]
$gciblock = {

Param(

[parameter(mandatory = $True)]

$Path,

[parameter(mandatory = $True)]

$filter

)
[/code:1]
Pour cette partie, ça ce passe ICI

Ce sont des paramètres, ils permettent de passer des valeurs à un scriptblock ou une fonction.
Dans ton cas il s'agit d'un scriptblock.


[code:1]
[System.Diagnostics.Process]::GetCurrentProcess().PriorityClass = \&quot;BelowNormal\&quot;

[System.Diagnostics.Process]::GetCurrentProcess().PriorityClass

[/code:1]

Le premier sert à définir la valeur de la priorité.
Le second à rien du tout, peut-être pour vérifier que la valeur est bien passer, enfin tu pourrais le commenter ça ne changerai rien.



Merci beaucoup d'avoir répondu ! j'ai bien compris du coup, mais ca mexplique toujours pas ce que ça [code:1] Update-TypeData -Force -TypeName System.IO.FileInfo -MemberName FileVersionUpdated -MemberType ScriptProperty -Value {

[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName) | % {

[Version](($_.FileMajorPart, $_.FileMinorPart, $_.FileBuildPart, $_.FilePrivatePart)-join\&quot;.\&quot;«»)
[/code:1] ca fait la xD, désolé je demande beaucoup...

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

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