Question
Help Please
- Patrick
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 4 ans 2 mois #29691
par Patrick
Help Please a été créé par Patrick
Bonjour à tous. Vila ce qui m amene a poser ma question.
Je dois réaliser un script pour récupérer certaines info des ordinateurs que je gère. J ai beaucoup de contrainte que je ne vais pas énuméré ici. Je dois récupérer le numero de série des uc l utilisateur la marque et model et le nom du Pc ainsi que les numero de serie des ecrans.
Je le fais avec le script suivant:
clear
# Recuperation du nom de l Uc
$NomUc = [system.environment]::MachineName
# Chemin du Fichier de résultat
$Resultat = \"d:\$NomUc.txt\"
# Creation du fichier txt avec nom Uc
New-Item -ItemType file -Path \"$Resultat\" -Force
$job1 = start-job {Get-wmiobject WIN32_ComputerSystem | select name, Username, model | Out-File $Resultat }
$job2 = start-job {Get-wmiobject WIN32_bios | select SerialNumber | Out-File $Resultat}
$job3 = start-job {
$SerialNumberASCII = Get-WmiObject -Query \"Select * FROM WMIMonitorID\" -Namespace root\wmi | Select -ExpandProperty SerialNumberID | Out-File $Resultat
# Convert ASCII to Char
#
Write-Host([char[]]($SerialNumberASCII))
}
Wait-job $job1, $job2, $job3
Receive-Job $job1, $job2, $job3
Je récupère toutes les info voulues, mais je n'arrivent pas à les enregistrer dans un fichier texte.
Mes utilisateurs exécuteront le fichiers. Et le résultat ira dans un répertoire sur un partage. (Chemin que je dois changer)
Si quelqu un peut m aider. Merci
Je dois réaliser un script pour récupérer certaines info des ordinateurs que je gère. J ai beaucoup de contrainte que je ne vais pas énuméré ici. Je dois récupérer le numero de série des uc l utilisateur la marque et model et le nom du Pc ainsi que les numero de serie des ecrans.
Je le fais avec le script suivant:
clear
# Recuperation du nom de l Uc
$NomUc = [system.environment]::MachineName
# Chemin du Fichier de résultat
$Resultat = \"d:\$NomUc.txt\"
# Creation du fichier txt avec nom Uc
New-Item -ItemType file -Path \"$Resultat\" -Force
$job1 = start-job {Get-wmiobject WIN32_ComputerSystem | select name, Username, model | Out-File $Resultat }
$job2 = start-job {Get-wmiobject WIN32_bios | select SerialNumber | Out-File $Resultat}
$job3 = start-job {
$SerialNumberASCII = Get-WmiObject -Query \"Select * FROM WMIMonitorID\" -Namespace root\wmi | Select -ExpandProperty SerialNumberID | Out-File $Resultat
# Convert ASCII to Char
#
Write-Host([char[]]($SerialNumberASCII))
}
Wait-job $job1, $job2, $job3
Receive-Job $job1, $job2, $job3
Je récupère toutes les info voulues, mais je n'arrivent pas à les enregistrer dans un fichier texte.
Mes utilisateurs exécuteront le fichiers. Et le résultat ira dans un répertoire sur un partage. (Chemin que je dois changer)
Si quelqu un peut m aider. Merci
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 4 ans 2 mois #29694
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Help Please
Salut,
tu déclares ta variable dans la porté du script princiap mais elle n'existe pas dans la portée du Job.
Essaie avec $using:Resultat dans le code du Job.
Tu devrais écrire un seul job, voir aucun dans ton cas
Le script étant exécuté en local...
tu déclares ta variable dans la porté du script princiap mais elle n'existe pas dans la portée du Job.
Essaie avec $using:Resultat dans le code du Job.
Tu devrais écrire un seul job, voir aucun dans ton cas
Le script étant exécuté en local...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Patrick
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 4 ans 1 mois #29702
par Patrick
Réponse de Patrick sur le sujet Re:Help Please
Merci Karma pour ta réponse. Je débute en powershell.
J ai changé mon script completement et j ai fait ca. Ce qui répond a mes attentes
clear
# Recuperation du nom de l Uc
$NomUc = [system.environment]::MachineName
# Recuperation du nom de l'utilisateur courant
$UserCourant = [Environment]::UserName
# Creation du dossier du nom de l'Uc
New-Item -Path d:\00$NomUc-$UserCourant -ItemType Directory
# Chemin du dossier
$Chemin = \"d:\00$NomUc-$UserCourant\"
Function Get-WMIServices
{
Get-WmiObject win32_ComputerSystem |
Select-Object name, Username, model
}
$Result = Get-WMIServices
$result | Out-File $Chemin\File1.txt
Function Get-WMIServices
{
Get-wmiobject WIN32_bios |
Select-Object SerialNumber
}
$Result1 = Get-WMIServices
$result1 | Out-File $Chemin\File2.txt
Get-Content $Chemin\File?.txt | Out-File $Chemin\$NomUc.txt
Remove-Item -Path $Chemin\File1.txt -Recurse
Remove-Item -Path $Chemin\File2.txt -Recurse
Il y a certainement mieux a faire, mais cela fonctionne.
J ai juste un dernier soucis avec cette commande que je veux rajouter
$SerialNumberASCII = Get-WmiObject -Query \"Select * FROM WMIMonitorID\" -Namespace root\wmi | Select -ExpandProperty SerialNumberID
# Convert ASCII to Char
#
Write-Host([char[]]($SerialNumberASCII))
Elle m'affiche le ou les numéro de serie des écran connecté au poste. Le résultat s'affiche a l'ecran dans la console mais impossible de le copier dans un fichier texte. Si j'enlève Write-Host([char[]]($SerialNumberASCII)) j ai le résultat en ASCII, pas top a comprendre.
Si quelqu un a une solutin pour que le resultat afficher à l'ecran puisse etre copié dans un Txt je suis preneur.
Par avance Merci
J ai changé mon script completement et j ai fait ca. Ce qui répond a mes attentes
clear
# Recuperation du nom de l Uc
$NomUc = [system.environment]::MachineName
# Recuperation du nom de l'utilisateur courant
$UserCourant = [Environment]::UserName
# Creation du dossier du nom de l'Uc
New-Item -Path d:\00$NomUc-$UserCourant -ItemType Directory
# Chemin du dossier
$Chemin = \"d:\00$NomUc-$UserCourant\"
Function Get-WMIServices
{
Get-WmiObject win32_ComputerSystem |
Select-Object name, Username, model
}
$Result = Get-WMIServices
$result | Out-File $Chemin\File1.txt
Function Get-WMIServices
{
Get-wmiobject WIN32_bios |
Select-Object SerialNumber
}
$Result1 = Get-WMIServices
$result1 | Out-File $Chemin\File2.txt
Get-Content $Chemin\File?.txt | Out-File $Chemin\$NomUc.txt
Remove-Item -Path $Chemin\File1.txt -Recurse
Remove-Item -Path $Chemin\File2.txt -Recurse
Il y a certainement mieux a faire, mais cela fonctionne.
J ai juste un dernier soucis avec cette commande que je veux rajouter
$SerialNumberASCII = Get-WmiObject -Query \"Select * FROM WMIMonitorID\" -Namespace root\wmi | Select -ExpandProperty SerialNumberID
# Convert ASCII to Char
#
Write-Host([char[]]($SerialNumberASCII))
Elle m'affiche le ou les numéro de serie des écran connecté au poste. Le résultat s'affiche a l'ecran dans la console mais impossible de le copier dans un fichier texte. Si j'enlève Write-Host([char[]]($SerialNumberASCII)) j ai le résultat en ASCII, pas top a comprendre.
Si quelqu un a une solutin pour que le resultat afficher à l'ecran puisse etre copié dans un Txt je suis preneur.
Par avance Merci
Connexion ou Créer un compte pour participer à la conversation.
- Patrick
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 4 ans 1 mois #29703
par Patrick
Réponse de Patrick sur le sujet Re:Help Please
J ai trouve au lieu de write-host mettre write-output.
et ca fonctionne je récupère mon numéro de serie dans un fichier txt ou csv au choix
et ca fonctionne je récupère mon numéro de serie dans un fichier txt ou csv au choix
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 4 ans 1 mois #29706
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Help Please
Salut pour info :
[code:1]
#valeur par défaut de $OFS ( voir la doc)
#transforme implicitement un tableau de caractère en une string
\"$SerialNumberASCII\"
#91 72 43 14 05 56 53 48 52 48 0 0 0 0 0 0
#Pas de valeur dans $OFS
$ofs='';\"$SerialNumberASCII\"
#91724314055653485248000000
[/code:1]
[code:1]
#valeur par défaut de $OFS ( voir la doc)
#transforme implicitement un tableau de caractère en une string
\"$SerialNumberASCII\"
#91 72 43 14 05 56 53 48 52 48 0 0 0 0 0 0
#Pas de valeur dans $OFS
$ofs='';\"$SerialNumberASCII\"
#91724314055653485248000000
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.097 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Help Please