Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

Map infra sccm

Publié le par damcuvelier

# Charger le module SCCM

Import-Module ConfigurationManager

 

# Se connecter au serveur SCCM

$siteServer = "NomDuServeurSCCM"

$siteCode = "CodeDuSiteSCCM"

cd "$($siteCode):"

 

# Définir le chemin de sortie pour le rapport

$outputPath = "C:\Chemin\Vers\AuditSCCM.csv"

 

# Récupérer la liste des ordinateurs clients

$computers = Get-CMDevice

 

# Créer un tableau pour stocker les données de l'audit

$auditData = @()

 

# Parcourir chaque ordinateur client

foreach ($computer in $computers) {

    # Récupérer les informations sur l'ordinateur

    $computerInfo = @{

        "Nom de l'ordinateur" = $computer.Name

        "Modèle" = $computer.Model

        "Système d'exploitation" = $computer.OSName

        "Version du système d'exploitation" = $computer.OSVersion

        "Dernière connexion" = $computer.LastLogonUserName

        "Emplacement physique" = $computer.Location

        "Statut" = $computer.ClientState

    }

    

    # Ajouter les données de l'ordinateur au tableau d'audit

    $auditData += New-Object PSObject -Property $computerInfo

}

 

# Exporter les données d'audit vers un fichier CSV

$auditData | Export-Csv -Path $outputPath -NoTypeInformation

 

Write-Host "Audit SCCM terminé. Le rapport a été enregistré à l'emplacement : $outputPath"

 

 

//////

# Connexion au serveur SCCM

$SiteServer = "NomDuServeurSCCM"

$SiteCode = "CodeDuSiteSCCM"

$SCCMServer = Get-WmiObject -Namespace "root\SMS\site_$SiteCode" -Class "SMS_ProviderLocation" | Where-Object {$_.ProviderForLocalSite -eq $true}

Set-Location $SCCMServer.NamespacePath

 

# Récupération des informations sur les collections

$Collections = Get-WmiObject -Class SMS_Collection -Namespace "root\SMS\site_$SiteCode"

 

# Récupération des informations sur les clients

$Clients = Get-WmiObject -Class SMS_R_System -Namespace "root\SMS\site_$SiteCode"

 

# Récupération des informations sur les serveurs et leurs rôles

$Servers = Get-WmiObject -Class SMS_SystemResourceList -Namespace "root\SMS\site_$SiteCode" | Where-Object {$_.ResourceType -eq "SMS_SERVER"}

 

# Récupération des informations sur les points de distribution (DP)

$DPs = Get-WmiObject -Class SMS_DistributionPointInfo -Namespace "root\SMS\site_$SiteCode"

 

# Récupération des informations sur les limites (boundaries)

$Boundaries = Get-WmiObject -Class SMS_Boundary -Namespace "root\SMS\site_$SiteCode"

 

# Génération du rapport

$Rapport = @{

    "Collections" = $Collections

    "Clients" = $Clients

    "Serveurs" = $Servers

    "Points de distribution" = $DPs

    "Limites" = $Boundaries

}

 

# Export du rapport au format CSV

$Rapport | Export-Csv -Path "Audit_SCCM.csv" -NoTypeInformation

 

Write-Host "Audit terminé. Le rapport a été enregistré sous Audit_SCCM.csv."

 

////////////

# Connexion au serveur SCCM

$SiteServer = "NomDuServeurSCCM"

$SiteCode = "CodeDuSiteSCCM"

$SCCMServer = Get-WmiObject -Namespace "root\SMS\site_$SiteCode" -Class "SMS_ProviderLocation" | Where-Object {$_.ProviderForLocalSite -eq $true}

Set-Location $SCCMServer.NamespacePath

 

# Récupération des informations sur les serveurs et leurs rôles

$Servers = Get-WmiObject -Class SMS_SystemResourceList -Namespace "root\SMS\site_$SiteCode" | Where-Object {$_.ResourceType -eq "SMS_SERVER"}

 

# Récupération des informations sur les points de distribution (DP)

$DPs = Get-WmiObject -Class SMS_DistributionPointInfo -Namespace "root\SMS\site_$SiteCode"

 

# Récupération des informations sur les limites (boundaries)

$Boundaries = Get-WmiObject -Class SMS_Boundary -Namespace "root\SMS\site_$SiteCode"

 

# Création d'un fichier .dot pour représenter la carte

$FilePath = "SCCM_Infrastructure.dot"

Add-Content -Path $FilePath -Value "digraph SCCM_Infrastructure {"

 

foreach ($Server in $Servers) {

    Add-Content -Path $FilePath -Value "`t`"$($Server.Name)" [shape=box]"

}

 

foreach ($DP in $DPs) {

    Add-Content -Path $FilePath -Value "`t`"$($DP.ServerName)" [shape=ellipse]"

    Add-Content -Path $FilePath -Value "`t`"$($DP.ServerName)" -> $($DP.SiteCode)" 

}

 

foreach ($Boundary in $Boundaries) {

    Add-Content -Path $FilePath -Value "`t`"$($Boundary.DisplayName)" [shape=ellipse]"

}

 

Add-Content -Path $FilePath -Value "}"

Write-Host "Fichier .dot généré : $FilePath"

 

\\\\\\

Avec Graphviz (https://graphviz.org), générer une map:

dot -Tpng SCCM_Infrastructure.dot -o SCCM_Infrastructure.png

 

Commenter cet article