Question Help Please

Plus d'informations
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

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

Plus d'informations
il y a 4 ans 2 mois #29694 par Laurent Dardenne
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...

Tutoriels PowerShell

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

Plus d'informations
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

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

Plus d'informations
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

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

Plus d'informations
il y a 4 ans 1 mois #29706 par Laurent Dardenne
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]

Tutoriels PowerShell

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

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