Foreach - augmentation taille cache SCCM

Plus d'informations
il y a 4 mois 4 semaines #29587 par maxime69210
Bonjour,

J'ai besoin d'aide, je n'ai que très peu de connaissances en Powershell.

J'ai un fichier excel contenant une liste de PC de la forme :

Device
nom du pc1
nom du pc2
...

J'ai besoin d'aller récupérer la taille du cache SCCM de chaque ordinateur, de noter cette information dans un nouveau excel à côté du nom de l'ordinateur en question, et par la suite exploiter le nouveau excel pour modifier la taille du cache SCCM uniquement sur les PC dont la valeur du cache est inférieur à 20480..


Merci par avance à ceux qui me débloqueront :)

[code:1]#récupération du fichier contenant la liste des postes cibles
$Devices = Get-Content \"C:\PMET\computers2.csv\"
$results = @()

ForEach($Device in $Devices)
#pour chaque pc de la liste,
{
$cachesize = Get-WmiObject -Namespace ROOT\CCM\SoftMgmtAgent -Query “Select Size from CacheConfig” | Select-Object -ExpandProperty “Size”
$details = @{
MachineName = $Device
CacheSize = $cachesize
}
$results += New-Object PSObject -Property $details

}
$results | Export-Csv -Path C:\PMET\CacheList.csv

Start-Sleep -Seconds 10
$CacheList = C:\PMET\CacheList.csv




#lecture du fichier créé --> si la variable $cache.size < 20480 alors passer la taille du cache a 20480
Foreach($cachesize in $CacheList)
{
if($Cache.Size < '20480')
{
$Cache = Get-WmiObject -Namespace 'ROOTCCMSoftMgmtAgent' -Class CacheConfig
$Cache.Size = '20480'
$Cache.Put()
Restart-Service -Name CcmExec
}
}
[/code:1]

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

Plus d'informations
il y a 4 mois 4 semaines #29588 par Troxsa
Bonjour,

Je n'ai pas les droits admin sur les agents SCCM je ne pourrais donc pas donner une solution

je vous conseille d'utiliser \"Import-csv\" au lieux de \"get-content\" pour la lecture de votre fichier (qui n'est pas un fichier excel)
docs.microsoft.com/en-us/powershell/modu...sv?view=powershell-6

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

Plus d'informations
il y a 4 mois 4 semaines #29589 par Laurent Dardenne
En passant même chose ici à propos de Import-Csv :
[code:1]
$CacheList = Import-Csv C:\PMET\CacheList.csv -Delimiter ? ( lequel est-ce ?)
[/code:1]
Ensuite si tu as + milliers de machine ceci va te poser pb :
[code:1]
$results += xxx
[/code:1]
Le Start-Sleep -Seconds 10 ne me semble pas nécessaire, l'appel du cmdlet Export-csv est synchrone.

Et ceci est faux :
[code:1]
if($Cache.Size < '20480')
[/code:1]
Utilise l'opérateur -LT en lieu et place de <

Tutoriels PowerShell

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

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