Question
Aide sur la sortie d'une commande
- schwab
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 8 ans 7 mois #24009
par schwab
Aide sur la sortie d'une commande a été créé par schwab
Bonsoir,
Je suis débutant en Powershell, j'ai acheté Windows Powershell (3) Guide de référence pour l'administration ... afin dé découvrir ce langage.
Je suis entrain d'élaborer un script pour connaitre la version de Windows 10 (1511,1607,1703 ... et la build), en passant en paramètre un fichier texte contenant la liste des postes à requêter.
Cependant, bien que j'arrive à afficher le résultat, je n'arrive pas à lié le résultat au nom du client requêté. C'est d'autant plus important que le résultat ne correspond pas à l'ordre des clients dans le fichier.
Voici le script :
########################
$OSversion = get-content \"C:\info\ComputerList.txt\"
if (Test-Connection -ComputerName $OSversion -Count 1 -ErrorAction SilentlyContinue)
Invoke-Command -ComputerName $OSversion -ScriptBlock {
$ProductName = (Get-ItemProperty -Path \"HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\").ProductName
$ReleaseId = (Get-ItemProperty -Path \"HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\").ReleaseId
$Revisions = ($PSVersionTable).PSVersion.Revision
Write-Host ($PSComputerName,$ProductName,$ReleaseId,$Revisions)
}
}
#########################
=> le résultat est :
Windows 10 Pro 1607 1358
Windows 10 Pro 1703 447
...
Mais je souhaiterai obtenir ceci :
CLIENT01 Windows 10 Pro 1703 447
CLIENT02 Windows 10 Pro 1607 1358
...
Pouvez vous m'aider à obtenir ce résultat ?
Merci d'avance pour votre aide
Schwabs
Je suis débutant en Powershell, j'ai acheté Windows Powershell (3) Guide de référence pour l'administration ... afin dé découvrir ce langage.
Je suis entrain d'élaborer un script pour connaitre la version de Windows 10 (1511,1607,1703 ... et la build), en passant en paramètre un fichier texte contenant la liste des postes à requêter.
Cependant, bien que j'arrive à afficher le résultat, je n'arrive pas à lié le résultat au nom du client requêté. C'est d'autant plus important que le résultat ne correspond pas à l'ordre des clients dans le fichier.
Voici le script :
########################
$OSversion = get-content \"C:\info\ComputerList.txt\"
if (Test-Connection -ComputerName $OSversion -Count 1 -ErrorAction SilentlyContinue)
Invoke-Command -ComputerName $OSversion -ScriptBlock {
$ProductName = (Get-ItemProperty -Path \"HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\").ProductName
$ReleaseId = (Get-ItemProperty -Path \"HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\").ReleaseId
$Revisions = ($PSVersionTable).PSVersion.Revision
Write-Host ($PSComputerName,$ProductName,$ReleaseId,$Revisions)
}
}
#########################
=> le résultat est :
Windows 10 Pro 1607 1358
Windows 10 Pro 1703 447
...
Mais je souhaiterai obtenir ceci :
CLIENT01 Windows 10 Pro 1703 447
CLIENT02 Windows 10 Pro 1607 1358
...
Pouvez vous m'aider à obtenir ce résultat ?
Merci d'avance pour votre aide
Schwabs
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 8 ans 7 mois #24010
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Aide sur la sortie d'une commande
Salut,
tu devrais déjà renommer cette variable OSversion, c'est assez étrange à relire :
[code:1] -ComputerName $OSversion[/code:1]
La commande Invoke-Command ajoute en LOCAL la propriété PSComputerName aux objets reçus du pipeline distant :
[code:1]$Result=invoke-command -ComputerName localhost { write-output 'A'}
$Result.PSComputerName
#localhost[/code:1]
Remplace Le write-host par write-output et récupère le résultat d'invoke-command dans une variable.
Et enfin le mieux est de créer un objet personnalisé avant de l'émettre
tu devrais déjà renommer cette variable OSversion, c'est assez étrange à relire :
[code:1] -ComputerName $OSversion[/code:1]
La commande Invoke-Command ajoute en LOCAL la propriété PSComputerName aux objets reçus du pipeline distant :
[code:1]$Result=invoke-command -ComputerName localhost { write-output 'A'}
$Result.PSComputerName
#localhost[/code:1]
Remplace Le write-host par write-output et récupère le résultat d'invoke-command dans une variable.
Et enfin le mieux est de créer un objet personnalisé avant de l'émettre
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- schwab
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 8 ans 7 mois #24033
par schwab
Réponse de schwab sur le sujet Re:Aide sur la sortie d'une commande
Merci pour tes indications Laurent, je vais essayé cela dès que possible.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.042 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Aide sur la sortie d'une commande