Question
Aide pour de l'optimisation
- Betrancourt
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 11
- Remerciements reçus 0
Je vous avoue j'ai jamais touché a du powershell avant et je viens de me farcir 200 pages de formation
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
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
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Marc
- Hors Ligne
- Membre premium
-
- Messages : 90
- Remerciements reçus 0
c'est exactement ce que ton tuteur t'a dit
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.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
et oui apprentissage passe aussi par la lecture de docJe 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 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.
- Betrancourt
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 11
- Remerciements reçus 0
Je n'ai quasiment jamais fait de script avant, alors commencer directement par de \"l'optimisation\" ça fait un choc xD
je crois que je vais avoir du mal
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 = \"BelowNormal\"
[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\".\"«»)[/code:1]
pourquoi utiliser la ligne de code \"[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é !
Connexion ou Créer un compte pour participer à la conversation.
- Marc
- Hors Ligne
- Membre premium
-
- Messages : 90
- Remerciements reçus 0
$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 = \"BelowNormal\"
[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.
- Betrancourt
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 11
- Remerciements reçus 0
[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 = \"BelowNormal\"
[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\".\"«»)
[/code:1] ca fait la xD, désolé je demande beaucoup...
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Aide pour de l'optimisation