0
votes

Comment exporter le nom de la machine et les informations de l'application à CSV à l'aide de PowerShell

J'essaie de créer un script PS simple à utiliser sur Solarwinds qui appuiera ce script et exécutera sur un tas d'ordinateurs. J'en ai essentiellement besoin pour exporter le nom de la machine et dites-moi une version logicielle particulière installée sur l'ordinateur. Pensez audit logiciel. Donc, par exemple, j'ai 5 ordinateurs. Je souhaite que ce script fonctionne sur les 5 machines et appendez des données sur un fichier CSV montrant leurs noms de machine, leur nom de l'application et la version de l'application pour uniquement les applications contenant «Office» dans le nom.

$Results =  
 Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | 
 Select-Object $env:computername, displayName, DisplayVersion |
 where-object {$_.DisplayName -match 'office'}
 $Results | Export-CSV -Append -Path \\filepath\office.csv -NoTypeInformation 


3 commentaires

Modifiez votre Select-Object Pour insérer une propriété calculée => Select-objet @ {étiquette = 'nom informatique'; expression = {$ env: ordinateur informatique}}, déplacement Ayname, DisplayVersion


Est-ce le script exact? Parce que $ env: ComputerName n'est pas membre de l'objet que vous collectez.


@Lotpings qui travaillent juste pour moi. Merci


3 Réponses :


0
votes

meilleure pour utiliser la commande invoke pour obtenir des données distantes.

$export = @()
$computers = Get-Content Machines.txt

foreach($computer in $computers){
$Results = @()
$Results = Invoke-Command -ComputerName $computer -ScriptBlock { Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall* | Select-Object $computer, displayName, DisplayVersion | where-object {$_.DisplayName -match 'office' } }

$Results += $export
}

$export | Export-CSV -Append -Path \filepath\office.csv -NoTypeInformation


2 commentaires

Je ne pense pas que cela fonctionnera exactement depuis que je ne tire pas les noms de la machine à partir d'un fichier texte, mais cela l'exécute plutôt sur toutes les machines à l'aide de SolarWinds. Si ça a du sens? Cependant, je pense que c'est proche de ce dont j'ai besoin.


$ résultats + = $ exporter devrait être vice versa. $ export + = $ résultats . Mieux vaut assigner le tout pour acheter à l'exportation de consommer toutes les sorties, aucun résultat intermédiaire $ nécessaire alors.



0
votes

Selon mon commentaire: xxx

rendements ici (court-circuité): xxx


0 commentaires

0
votes

Si vous voulez aller directement à Excel, Install-module ImportExcel

 Entrez la description de l'image ici


0 commentaires