- forum
- PowerShell
- Entraide pour les débutants
- Script de récupération d'information de poste puis export-csv des résultats
Résolu
Script de récupération d'information de poste puis export-csv des résultats
- kren
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 1 an 1 mois #33719
par kren
Bonjour à tous,
Je rencontre une difficulté au niveau de l'export-csv pour quelques variables seulement. Les variables seules fonctionnent bien.
Voici le script de base:
###############################################################################################
# Script Extraction information pc
# Version : 1.0
# Date : 05/12/2023
# Auteur : xxxxxx
###############################################################################################
# Récupération date
$DATE=Get-Date -Format "yyyyMMdd_HHmmss"
# Nom Machine
$Computer=[system.environment]::MachineName
# Récupération version OS
$OS=(Get-WmiObject -class Win32_OperatingSystem).Caption
# Vérification Pare-feu actif ou non
$Parefeu =Get-NetFirewallProfile | Select-Object Name,Enabled
# Récupération des users PC profil admin
$UserAdmin=Get-LocalGroupMember -Group "Administrateurs" | Select -Property Name
# Info processeur
$ProcessInfo = Get-CimInstance CIM_Processor
# Info Bios
$BiosInfo = Get-WmiObject -Class Win32_BIOS | Select -Property SMBIOSBIOSVersion , Manufacturer , Name , SerialNumber
# Info disques
$computerHDD = Get-CimInstance Win32_LogicalDisk -Filter "DeviceID = 'C:'"
$computerHDDCapacity = ("{0:N2}" -f ($computerHDD.Size/1GB) + "GB")
$computerHDDSpace = ("{0:P2}" -f ($computerHDD.FreeSpace/$computerHDD.Size) + " Free (" + "{0:N2}" -f ($computerHDD.FreeSpace/1GB) + "GB)")
# Vérification des MAJ Windows Update
$Update=(New-Object -com "Microsoft.Update.AutoUpdate"). Results | Select-Object LastSearchSuccessDate,LastInstallationSuccessDate
# Récupération Ip et addresse Mac
$NetConf = Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | where { $_.IPAddress -ne $null } |
select MacAddress,
@{N="IPAddress";E={ $_.IPAddress | where { ([ipaddress]($_)).AddressFamily -eq 'InterNetwork' }}},
Description | Select-Object MacAddress, IPAddress, Description
# Information RAM
$computerSystem = Get-CimInstance CIM_ComputerSystem
$computerRAM = ("{0:N2}" -f ($computerSystem.TotalPhysicalMemory/1GB) + "GB")
# Create Object
$Computerobject = new-object psobject -Property ([ordered]@{
'PC' = $Computer
'OS-Version' = $OS
'Windows-Update' = $Update
'Processeur' = $ProcessInfo.name
'Bios' = $BiosInfo
'User-Administrateur' = $UserAdmin
'RAM' = $ComputerRAM
'Disque C:(Capacite)' = $computerHDDCapacity
'Disque C: (Freespace)' = $computerHDDSpace
'NetConf' = $NetIP
'Parefeu' = $Parefeu
})
$Computerobject | export-csv .\file.csv -NoTypeInformation -append
Voici le résultat de sortie:
"PC","OS-Version","Windows-Update","Processeur","Bios","User-Administrateur","RAM","Disque C:(Capacite)","Disque C: (Freespace)","NetConf","Parefeu"
"MON-PC","Microsoft Windows 10 Professionnel","@{LastSearchSuccessDate=05/12/2023 10:06:31; LastInstallationSuccessDate=05/12/2023 10:06:22}","Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz","@{SMBIOSBIOSVersion=E1799IMS.31A; Manufacturer=American Megatrends Inc.; Name=E1799IMS.31A; SerialNumber=9S71799D31285ZHA000016}","System.Object[]","15,92GB","475,77GB","25,65 % Free (122,06GB)",,"System.Object[]"
Pour information il me manque les infos des variables : $UserAdmin $NetIP et $Parefeu, j'obtiens "System.Object[]" pour $UserAdmin et $Parefeu et j'obtiens , , pour $NetIP
J'étais partis de mon script de base qui fait l'export vers un .html et qui fonctionne bien mais j'ai besoin du nouveau script avec sortie csv.
Voici le script de base (sortie html " pour ceux qui veulent:
###############################################################################################
# Script Extraction information pc
# Version : 1.0
# Date : 01/12/2023
# Auteur :
###############################################################################################
#CSS codes
$header = @"
<style>
h1 {
font-family: Arial, Helvetica, sans-serif;
color: #e68a00;
font-size: 28px;
}
h2 {
font-family: Arial, Helvetica, sans-serif;
color: #000099;
font-size: 16px;
}
table {
font-size: 12px;
border: 0px;
font-family: Arial, Helvetica, sans-serif;
}
td {
padding: 4px;
margin: 0px;
border: 0;
}
th {
background: #395870;
background: linear-gradient(#49708f, #293f50);
color: #fff;
font-size: 11px;
text-transform: uppercase;
padding: 10px 15px;
vertical-align: middle;
}
tbody tr:nth-child(even) {
background: #f0f0f2;
}
#CreationDate {
font-family: Arial, Helvetica, sans-serif;
color: #ff3300;
font-size: 12px;
}
.StopStatus {
color: #ff0000;
}
.RunningStatus {
color: #008000;
}
</style>
"@
# Récupération date
$DATE=Get-Date -Format "yyyyMMdd_HHmmss"
# Récupération version OS
$OS=(Get-WmiObject -class Win32_OperatingSystem).Caption
# Nom Machine
$Computer=[system.environment]::MachineName
# Nom Machine pour rapport HTML
$ComputerName = "<h1>Nom Machine: $env:computername</h1>"
# Vérification Pare-feu actif ou non
$Parefeu=Get-NetFirewallProfile | ConvertTo-Html -As List -Property Name,Enabled -Fragment -PreContent "<h2>Etat du Pare-feu Windows:</h2>"
# Récupération des users PC profil admin
$UserAdmin=Get-LocalGroupMember -Group "Administrateurs" | ConvertTo-Html -As List -Property ObjectClass,Name,PrincipalSource -Fragment -PreContent "<h2>Utilisateurs avec profil administrateurs:</h2>"
#Dernier changement de mot de passe user:
#$mdpchange="net user %username%" | cmd
# Info système d'exploitation
$OSinfo = Get-CimInstance -Class Win32_OperatingSystem | ConvertTo-Html -As List -Property Version,Caption,BuildNumber,Manufacturer -Fragment -PreContent "<h2>Systeme d'exploitation:</h2>"
# Info processeur
$ProcessInfo = Get-CimInstance -ClassName Win32_Processor | ConvertTo-Html -As List -Property DeviceID,Name,Caption,MaxClockSpeed,SocketDesignation,Manufacturer -Fragment -PreContent "<h2>Information Processeur:</h2>"
# Info Bios
$BiosInfo = Get-CimInstance -ClassName Win32_BIOS | ConvertTo-Html -As List -Property SMBIOSBIOSVersion,Manufacturer,Name,SerialNumber -Fragment -PreContent "<h2>Information Bios:</h2>"
# Info disques
$DiscInfo = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | ConvertTo-Html -As List -Property DeviceID,{$_.Size /1GB},{$_.FreeSpace /1GB} -Fragment -PreContent "<h2>Information Disque:</h2>"
# Vérification des MAJ Windows Update
$Update=(New-Object -com "Microsoft.Update.AutoUpdate"). Results | ConvertTo-Html -As List -Property LastSearchSuccessDate,LastInstallationSuccessDate -Fragment -PreContent "<h2>Windows Update - Dernieres informations:</h2>"
# Récupération Ip et addresse Mac
$NetConf = Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | where { $_.IPAddress -ne $null } |
select MacAddress,
@{N="IPAddress";E={ $_.IPAddress | where { ([ipaddress]($_)).AddressFamily -eq 'InterNetwork' }}},
Description | ConvertTo-Html -As Table -Property MacAddress, IPAddress, Description -Fragment -PreContent "<h2>IP Information:</h2>"
# Information RAM
$Ram=Get-CimInstance -ClassName 'Cim_PhysicalMemory' | ConvertTo-Html -As Table -Property Manufacturer,{$_.Capacity /1GB},BankLabel -Fragment -PreContent "<h2>Information RAM:</h2>"
# Fusion des informations Hôte dans un seul rapport HTML
$Report = ConvertTo-HTML -Body "$ComputerName $OSinfo $NetConf $Parefeu $Update $UserAdmin $Ram $ProcessInfo $BiosInfo $DiscInfo" -Head $header -Title "Rapport Information PC" -PostContent "<p id='CreationDate'>Date de creation: $(Get-Date)</p>"
# Génération du rapport dans un fichier HTML
$Report | Out-File .\$Computer-$DATE.html
Merci d'avance pour votre aide.
Cordialement
Je rencontre une difficulté au niveau de l'export-csv pour quelques variables seulement. Les variables seules fonctionnent bien.
Voici le script de base:
###############################################################################################
# Script Extraction information pc
# Version : 1.0
# Date : 05/12/2023
# Auteur : xxxxxx
###############################################################################################
# Récupération date
$DATE=Get-Date -Format "yyyyMMdd_HHmmss"
# Nom Machine
$Computer=[system.environment]::MachineName
# Récupération version OS
$OS=(Get-WmiObject -class Win32_OperatingSystem).Caption
# Vérification Pare-feu actif ou non
$Parefeu =Get-NetFirewallProfile | Select-Object Name,Enabled
# Récupération des users PC profil admin
$UserAdmin=Get-LocalGroupMember -Group "Administrateurs" | Select -Property Name
# Info processeur
$ProcessInfo = Get-CimInstance CIM_Processor
# Info Bios
$BiosInfo = Get-WmiObject -Class Win32_BIOS | Select -Property SMBIOSBIOSVersion , Manufacturer , Name , SerialNumber
# Info disques
$computerHDD = Get-CimInstance Win32_LogicalDisk -Filter "DeviceID = 'C:'"
$computerHDDCapacity = ("{0:N2}" -f ($computerHDD.Size/1GB) + "GB")
$computerHDDSpace = ("{0:P2}" -f ($computerHDD.FreeSpace/$computerHDD.Size) + " Free (" + "{0:N2}" -f ($computerHDD.FreeSpace/1GB) + "GB)")
# Vérification des MAJ Windows Update
$Update=(New-Object -com "Microsoft.Update.AutoUpdate"). Results | Select-Object LastSearchSuccessDate,LastInstallationSuccessDate
# Récupération Ip et addresse Mac
$NetConf = Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | where { $_.IPAddress -ne $null } |
select MacAddress,
@{N="IPAddress";E={ $_.IPAddress | where { ([ipaddress]($_)).AddressFamily -eq 'InterNetwork' }}},
Description | Select-Object MacAddress, IPAddress, Description
# Information RAM
$computerSystem = Get-CimInstance CIM_ComputerSystem
$computerRAM = ("{0:N2}" -f ($computerSystem.TotalPhysicalMemory/1GB) + "GB")
# Create Object
$Computerobject = new-object psobject -Property ([ordered]@{
'PC' = $Computer
'OS-Version' = $OS
'Windows-Update' = $Update
'Processeur' = $ProcessInfo.name
'Bios' = $BiosInfo
'User-Administrateur' = $UserAdmin
'RAM' = $ComputerRAM
'Disque C:(Capacite)' = $computerHDDCapacity
'Disque C: (Freespace)' = $computerHDDSpace
'NetConf' = $NetIP
'Parefeu' = $Parefeu
})
$Computerobject | export-csv .\file.csv -NoTypeInformation -append
Voici le résultat de sortie:
"PC","OS-Version","Windows-Update","Processeur","Bios","User-Administrateur","RAM","Disque C:(Capacite)","Disque C: (Freespace)","NetConf","Parefeu"
"MON-PC","Microsoft Windows 10 Professionnel","@{LastSearchSuccessDate=05/12/2023 10:06:31; LastInstallationSuccessDate=05/12/2023 10:06:22}","Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz","@{SMBIOSBIOSVersion=E1799IMS.31A; Manufacturer=American Megatrends Inc.; Name=E1799IMS.31A; SerialNumber=9S71799D31285ZHA000016}","System.Object[]","15,92GB","475,77GB","25,65 % Free (122,06GB)",,"System.Object[]"
Pour information il me manque les infos des variables : $UserAdmin $NetIP et $Parefeu, j'obtiens "System.Object[]" pour $UserAdmin et $Parefeu et j'obtiens , , pour $NetIP
J'étais partis de mon script de base qui fait l'export vers un .html et qui fonctionne bien mais j'ai besoin du nouveau script avec sortie csv.
Voici le script de base (sortie html " pour ceux qui veulent:
###############################################################################################
# Script Extraction information pc
# Version : 1.0
# Date : 01/12/2023
# Auteur :
###############################################################################################
#CSS codes
$header = @"
<style>
h1 {
font-family: Arial, Helvetica, sans-serif;
color: #e68a00;
font-size: 28px;
}
h2 {
font-family: Arial, Helvetica, sans-serif;
color: #000099;
font-size: 16px;
}
table {
font-size: 12px;
border: 0px;
font-family: Arial, Helvetica, sans-serif;
}
td {
padding: 4px;
margin: 0px;
border: 0;
}
th {
background: #395870;
background: linear-gradient(#49708f, #293f50);
color: #fff;
font-size: 11px;
text-transform: uppercase;
padding: 10px 15px;
vertical-align: middle;
}
tbody tr:nth-child(even) {
background: #f0f0f2;
}
#CreationDate {
font-family: Arial, Helvetica, sans-serif;
color: #ff3300;
font-size: 12px;
}
.StopStatus {
color: #ff0000;
}
.RunningStatus {
color: #008000;
}
</style>
"@
# Récupération date
$DATE=Get-Date -Format "yyyyMMdd_HHmmss"
# Récupération version OS
$OS=(Get-WmiObject -class Win32_OperatingSystem).Caption
# Nom Machine
$Computer=[system.environment]::MachineName
# Nom Machine pour rapport HTML
$ComputerName = "<h1>Nom Machine: $env:computername</h1>"
# Vérification Pare-feu actif ou non
$Parefeu=Get-NetFirewallProfile | ConvertTo-Html -As List -Property Name,Enabled -Fragment -PreContent "<h2>Etat du Pare-feu Windows:</h2>"
# Récupération des users PC profil admin
$UserAdmin=Get-LocalGroupMember -Group "Administrateurs" | ConvertTo-Html -As List -Property ObjectClass,Name,PrincipalSource -Fragment -PreContent "<h2>Utilisateurs avec profil administrateurs:</h2>"
#Dernier changement de mot de passe user:
#$mdpchange="net user %username%" | cmd
# Info système d'exploitation
$OSinfo = Get-CimInstance -Class Win32_OperatingSystem | ConvertTo-Html -As List -Property Version,Caption,BuildNumber,Manufacturer -Fragment -PreContent "<h2>Systeme d'exploitation:</h2>"
# Info processeur
$ProcessInfo = Get-CimInstance -ClassName Win32_Processor | ConvertTo-Html -As List -Property DeviceID,Name,Caption,MaxClockSpeed,SocketDesignation,Manufacturer -Fragment -PreContent "<h2>Information Processeur:</h2>"
# Info Bios
$BiosInfo = Get-CimInstance -ClassName Win32_BIOS | ConvertTo-Html -As List -Property SMBIOSBIOSVersion,Manufacturer,Name,SerialNumber -Fragment -PreContent "<h2>Information Bios:</h2>"
# Info disques
$DiscInfo = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | ConvertTo-Html -As List -Property DeviceID,{$_.Size /1GB},{$_.FreeSpace /1GB} -Fragment -PreContent "<h2>Information Disque:</h2>"
# Vérification des MAJ Windows Update
$Update=(New-Object -com "Microsoft.Update.AutoUpdate"). Results | ConvertTo-Html -As List -Property LastSearchSuccessDate,LastInstallationSuccessDate -Fragment -PreContent "<h2>Windows Update - Dernieres informations:</h2>"
# Récupération Ip et addresse Mac
$NetConf = Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | where { $_.IPAddress -ne $null } |
select MacAddress,
@{N="IPAddress";E={ $_.IPAddress | where { ([ipaddress]($_)).AddressFamily -eq 'InterNetwork' }}},
Description | ConvertTo-Html -As Table -Property MacAddress, IPAddress, Description -Fragment -PreContent "<h2>IP Information:</h2>"
# Information RAM
$Ram=Get-CimInstance -ClassName 'Cim_PhysicalMemory' | ConvertTo-Html -As Table -Property Manufacturer,{$_.Capacity /1GB},BankLabel -Fragment -PreContent "<h2>Information RAM:</h2>"
# Fusion des informations Hôte dans un seul rapport HTML
$Report = ConvertTo-HTML -Body "$ComputerName $OSinfo $NetConf $Parefeu $Update $UserAdmin $Ram $ProcessInfo $BiosInfo $DiscInfo" -Head $header -Title "Rapport Information PC" -PostContent "<p id='CreationDate'>Date de creation: $(Get-Date)</p>"
# Génération du rapport dans un fichier HTML
$Report | Out-File .\$Computer-$DATE.html
Merci d'avance pour votre aide.
Cordialement
Connexion ou Créer un compte pour participer à la conversation.
- Fabien
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 144
- Remerciements reçus 22
il y a 1 an 1 mois #33721
par Fabien
Réponse de Fabien sur le sujet Script de récupération d'information de poste puis export-csv des résultats
Bonjour,
La variable $NetIP n'existe pas, il faut la remplacer par $NetConf
Ensuite pour les deux autres variables, il faut convertir l'objet en String comme ceci :
Fabien
La variable $NetIP n'existe pas, il faut la remplacer par $NetConf
Ensuite pour les deux autres variables, il faut convertir l'objet en String comme ceci :
#Convertir l'objet en String et supprimer les espaces au début et à la fin
$($UserAdmin | Out-String).Trim()
$($Parefeu | Out-string).Trim()
Fabien
Les utilisateur(s) suivant ont remercié: kren
Connexion ou Créer un compte pour participer à la conversation.
- kren
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 1 an 1 mois #33727
par kren
Réponse de kren sur le sujet Script de récupération d'information de poste puis export-csv des résultats
Bonjour Fabien, merci pour votre retour, j'arrive désormais à avoir le résultat qui s'affiche dans l'export.
Je ne sais pas si j'ai bien mis votre formule par contre car le résultat apparaît comme ceci:
"PC","OS-Version","Windows-Update","Processeur","Bios","RAM","Disque C:(Capacite)","Disque C: (Freespace)","User-Administrateur","NetConf","Parefeu"
"MON-PC","Microsoft Windows 10 Professionnel","@{LastSearchSuccessDate=05/12/2023 21:55:15; LastInstallationSuccessDate=05/12/2023 10:06:22}","Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz","@{SMBIOSBIOSVersion=E1799IMS.31A; Manufacturer=American Megatrends Inc.; Name=E1799IMS.31A; SerialNumber=9S71799D31285ZHA000016}","15,92GB","475,77GB","25,69 % Free (122,21GB)","Name
----
MON-PC\Administrateur
MON-PC\jk
MON-PC\nc
MON-PC\tet","MacAddress IPAddress Description
00:50:56:C0:00:01 192.168.150.1 VMware Virtual Ethernet Adapter for VMnet1
00:50:56:C0:00:08 192.168.220.1 VMware Virtual Ethernet Adapter for VMnet8
28:C6:3F:A8:9A:80 192.168.1.73 Intel(R) Dual Band Wireless-AC 3168
00:15:5D:98:02:3E 172.28.160.1 Hyper-V Virtual Ethernet Adapter
0A:00:27:00:00:04 169.254.94.97 VirtualBox Host-Only Ethernet Adapter
02:50:20:6B:1C:12 26.93.192.109 Famatech Radmin VPN Ethernet Adapter","Name Enabled
----
Domain True
Private True
Public True"
Voici la partie du script que j'ai modifié:
# Create Object
$Computerobject = new-object psobject -Property ([ordered]@{
'PC' = $Computer
'OS-Version' = $OS
'Windows-Update' = $Update
'Processeur' = $ProcessInfo.name
'Bios' = $BiosInfo
'RAM' = $ComputerRAM
'Disque C:(Capacite)' = $computerHDDCapacity
'Disque C: (Freespace)' = $computerHDDSpace
'User-Administrateur' = $($UserAdmin | Out-String).Trim()
'NetConf' = $($NetConf | Out-String).Trim()
'Parefeu' = $($Parefeu | Out-String).Trim()
})
Savez-vous comment avoir le résultat des 3 dernières valeurs sur la même ligne que les variables précédentes?
L'idée est d'avoir une seule ligne sous les entêtes dans le fichier csv.
Merci encore pour votre aide
Cordialement
Je ne sais pas si j'ai bien mis votre formule par contre car le résultat apparaît comme ceci:
"PC","OS-Version","Windows-Update","Processeur","Bios","RAM","Disque C:(Capacite)","Disque C: (Freespace)","User-Administrateur","NetConf","Parefeu"
"MON-PC","Microsoft Windows 10 Professionnel","@{LastSearchSuccessDate=05/12/2023 21:55:15; LastInstallationSuccessDate=05/12/2023 10:06:22}","Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz","@{SMBIOSBIOSVersion=E1799IMS.31A; Manufacturer=American Megatrends Inc.; Name=E1799IMS.31A; SerialNumber=9S71799D31285ZHA000016}","15,92GB","475,77GB","25,69 % Free (122,21GB)","Name
----
MON-PC\Administrateur
MON-PC\jk
MON-PC\nc
MON-PC\tet","MacAddress IPAddress Description
00:50:56:C0:00:01 192.168.150.1 VMware Virtual Ethernet Adapter for VMnet1
00:50:56:C0:00:08 192.168.220.1 VMware Virtual Ethernet Adapter for VMnet8
28:C6:3F:A8:9A:80 192.168.1.73 Intel(R) Dual Band Wireless-AC 3168
00:15:5D:98:02:3E 172.28.160.1 Hyper-V Virtual Ethernet Adapter
0A:00:27:00:00:04 169.254.94.97 VirtualBox Host-Only Ethernet Adapter
02:50:20:6B:1C:12 26.93.192.109 Famatech Radmin VPN Ethernet Adapter","Name Enabled
----
Domain True
Private True
Public True"
Voici la partie du script que j'ai modifié:
# Create Object
$Computerobject = new-object psobject -Property ([ordered]@{
'PC' = $Computer
'OS-Version' = $OS
'Windows-Update' = $Update
'Processeur' = $ProcessInfo.name
'Bios' = $BiosInfo
'RAM' = $ComputerRAM
'Disque C:(Capacite)' = $computerHDDCapacity
'Disque C: (Freespace)' = $computerHDDSpace
'User-Administrateur' = $($UserAdmin | Out-String).Trim()
'NetConf' = $($NetConf | Out-String).Trim()
'Parefeu' = $($Parefeu | Out-String).Trim()
})
Savez-vous comment avoir le résultat des 3 dernières valeurs sur la même ligne que les variables précédentes?
L'idée est d'avoir une seule ligne sous les entêtes dans le fichier csv.
Merci encore pour votre aide
Cordialement
Connexion ou Créer un compte pour participer à la conversation.
- Fabien
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 144
- Remerciements reçus 22
il y a 1 an 1 mois #33730
par Fabien
Réponse de Fabien sur le sujet Script de récupération d'information de poste puis export-csv des résultats
Il faut changer $($NetConf | Out-String).Trim() par $NetConf
Si tu veux avoir tout le résultat sur une seule ligne, voici le changement à faire :
Si tu veux avoir tout le résultat sur une seule ligne, voici le changement à faire :
# Récupération date
$DATE=Get-Date -Format "yyyyMMdd_HHmmss"
# Nom Machine
$Computer=[system.environment]::MachineName
# Récupération version OS
$OS=(Get-WmiObject -class Win32_OperatingSystem).Caption
# Vérification Pare-feu actif ou non
$Parefeu = Get-NetFirewallProfile | select Name, Enabled
# Récupérer les informations spécifiques
$Firewall = "Domain={0}; Private={1}; Public={2}" -f ($Parefeu | ? {$_.Name -eq "Domain"}).Enabled, ($Parefeu | ? {$_.Name -eq "Private"}).Enabled, ($Parefeu | ? {$_.Name -eq "Public"}).Enabled
# Récupération des users PC profil admin
$UserAdmin = (Get-LocalGroupMember -Group "Administrateurs" | Select-Object -ExpandProperty Name) -join "; "
# Info processeur
$ProcessInfo = Get-CimInstance CIM_Processor
# Info Bios
$BiosInfo = Get-WmiObject -Class Win32_BIOS | Select -Property SMBIOSBIOSVersion , Manufacturer , Name , SerialNumber
# Info disques
$computerHDD = Get-CimInstance Win32_LogicalDisk -Filter "DeviceID = 'C:'"
$computerHDDCapacity = ("{0:N2}" -f ($computerHDD.Size/1GB) + "GB")
$computerHDDSpace = ("{0:P2}" -f ($computerHDD.FreeSpace/$computerHDD.Size) + " Free (" + "{0:N2}" -f ($computerHDD.FreeSpace/1GB) + "GB)")
# Vérification des MAJ Windows Update
$Update=(New-Object -com "Microsoft.Update.AutoUpdate"). Results | Select-Object LastSearchSuccessDate,LastInstallationSuccessDate
# Récupération Ip et addresse Mac
$NetConf = Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | where { $_.IPAddress -ne $null } |
select MacAddress,
@{N="IPAddress";E={ $_.IPAddress | where { ([ipaddress]($_)).AddressFamily -eq 'InterNetwork' }}},
Description | Select-Object MacAddress, IPAddress, Description
# Information RAM
$computerSystem = Get-CimInstance CIM_ComputerSystem
$computerRAM = ("{0:N2}" -f ($computerSystem.TotalPhysicalMemory/1GB) + "GB")
# Create Object
$Computerobject = new-object psobject -Property ([ordered]@{
'PC' = $Computer
'OS-Version' = $OS
'Windows-Update' = $Update
'Processeur' = $ProcessInfo.name
'Bios' = $BiosInfo
'RAM' = $ComputerRAM
'Disque C:(Capacite)' = $computerHDDCapacity
'Disque C: (Freespace)' = $computerHDDSpace
'User-Administrateur' = $UserAdmin
'NetConf' = $NetConf
'Parefeu' = $Firewall
})
$Computerobject | export-csv .\file.csv -NoTypeInformation -append
Les utilisateur(s) suivant ont remercié: kren
Connexion ou Créer un compte pour participer à la conversation.
- kren
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 1 an 1 mois #33734
par kren
Réponse de kren sur le sujet Script de récupération d'information de poste puis export-csv des résultats
Bonjour Fabien, merci pour ton retour. Pour la récupération des users profil admin et le parefeu c'est parfait j'ai exactement le retour attendu.
Il me reste un dernier point le $NetConf:
Voici le resultat de la variable $Netconf dans Powershell:
Résultat pour mon pc=
MacAddress IPAddress Description
00:50:56:C0:XX:XX 192.168.XX.1 VMware Virtual Ethernet Adapter for VMnet1
00:50:56:C0:XX:XX 192.168.XX.1 VMware Virtual Ethernet Adapter for VMnet8
28:C6:3F:A8:XX:XX 192.168.XX.33 Intel(R) Dual Band Wireless-AC 3168
00:15:5D:4B:XX:XX 172.20.XX.1 Hyper-V Virtual Ethernet Adapter
0A:00:27:00:XX:XX 169.254.XX.97 VirtualBox Host-Only Ethernet Adapter
C'est le seul point qui s'affiche en "System.Object[]" dans le fichier csv.
Comment l'afficher sur la même ligne. J'ai tenté la méthode appliquée pour le user admin mais sans résultat ?
Merci encore pour les résultats apportés.
Il me reste un dernier point le $NetConf:
Voici le resultat de la variable $Netconf dans Powershell:
Résultat pour mon pc=
MacAddress IPAddress Description
00:50:56:C0:XX:XX 192.168.XX.1 VMware Virtual Ethernet Adapter for VMnet1
00:50:56:C0:XX:XX 192.168.XX.1 VMware Virtual Ethernet Adapter for VMnet8
28:C6:3F:A8:XX:XX 192.168.XX.33 Intel(R) Dual Band Wireless-AC 3168
00:15:5D:4B:XX:XX 172.20.XX.1 Hyper-V Virtual Ethernet Adapter
0A:00:27:00:XX:XX 169.254.XX.97 VirtualBox Host-Only Ethernet Adapter
C'est le seul point qui s'affiche en "System.Object[]" dans le fichier csv.
Comment l'afficher sur la même ligne. J'ai tenté la méthode appliquée pour le user admin mais sans résultat ?
Merci encore pour les résultats apportés.
Connexion ou Créer un compte pour participer à la conversation.
- Fabien
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 144
- Remerciements reçus 22
il y a 1 an 1 mois #33736
par Fabien
Réponse de Fabien sur le sujet Script de récupération d'information de poste puis export-csv des résultats
Bonjour,
J'ai fait le test sur ma machine et je n'ai qu'une seule interface ethernet avec une adresse IP.
Je ne comprenais pas trop ton résultat mais voilà comment le corriger.
C'est un peu le même principe que pour le Parefeu.
Il suffit de remplacer la variable $Netconf par $NetResult dans l'export en CSV.
Fabien
J'ai fait le test sur ma machine et je n'ai qu'une seule interface ethernet avec une adresse IP.
Je ne comprenais pas trop ton résultat mais voilà comment le corriger.
# Récupération Ip et addresse Mac
$NetConf = Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | where { $_.IPAddress -ne $null } |
select MacAddress,
@{N="IPAddress";E={ $_.IPAddress | where { ([ipaddress]($_)).AddressFamily -eq 'InterNetwork' }}},
Description
# Créer un tableau pour stocker chaque ligne formatée
$tableauLignes = @()
# Parcourir chaque élément dans $NetConf et formater la ligne
foreach ($element in $NetConf) {
$ligne = "MacAddress={0},IPAddress={1},Description={2}" -f $element.MacAddress, $element.IPAddress, $element.Description
$tableauLignes += $ligne
}
# Joindre les lignes avec un point-virgule
$NetResult = $tableauLignes -join ";"
C'est un peu le même principe que pour le Parefeu.
Il suffit de remplacer la variable $Netconf par $NetResult dans l'export en CSV.
Fabien
Les utilisateur(s) suivant ont remercié: kren
Connexion ou Créer un compte pour participer à la conversation.
- forum
- PowerShell
- Entraide pour les débutants
- Script de récupération d'information de poste puis export-csv des résultats
Temps de génération de la page : 0.133 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Script de récupération d'information de poste puis export-csv des résultats