2010-03-08 4 views
4

Je suis un novice powershell.vérifier RAM, fichier de la page,/PAE,/3 Go, mémoire du serveur SQL en utilisant powershell

Après des jours de recherche ....

J'ai mis en place un petit script Powershell (comme ci-dessous) pour vérifier le fichier de page, commutateur/PAE, commutateur/3GB, RAM du serveur SQL max, min RAM. Je cours ceci sur 1 serveur.

Si je veux l'exécuter sur de nombreux serveurs (à partir d'un fichier .txt), comment puis-je le changer? Comment puis-je le modifier pour rechercher le contenu du fichier boot.ini pour un serveur donné?

clear 
$strComputer="." 

$PageFile=Get-WmiObject Win32_PageFile -ComputerName $strComputer 
Write-Host "Page File Size in MB: " ($PageFile.Filesize/(1024*1024)) 


$colItems=Get-WmiObject Win32_PhysicalMemory -Namespace root\CIMv2 -ComputerName $strComputer 
$total=0 
foreach ($objItem in $colItems) 
{ 
    $total=$total+ $objItem.Capacity 
} 


$isPAEEnabled =Get-WmiObject Win32_OperatingSystem -ComputerName $strComputer 
Write-Host "Is PAE Enabled: " $isPAEEnabled.PAEEnabled 

Write-Host "Is /3GB Enabled: " | Get-Content C:\boot.ini | Select-String "/3GB" -Quiet 
# how can I change to search boot.ini file's contents on $strComputer 

$smo = new-object('Microsoft.SqlServer.Management.Smo.Server') $strSQLServer 
$memSrv = $smo.information.physicalMemory 
$memMin = $smo.configuration.minServerMemory.runValue 
$memMax = $smo.configuration.maxServerMemory.runValue 


## DBMS 
Write-Host "Server RAM available:  " -noNewLine 
Write-Host "$memSrv MB" -fore "blue" 
Write-Host "SQL memory Min:    " -noNewLine 
Write-Host "$memMin MB " 
Write-Host "SQL memory Max:    " -noNewLine 
Write-Host "$memMax MB" 

Des commentaires comment cela peut être amélioré?

Merci à l'avance

+0

Gardez à l'esprit cependant, que boot.ini n'est plus utilisé depuis un certain temps. Pour tout système d'exploitation récent, cela ne rapportera rien. – Joey

+0

Si boot.ini n'est pas utilisé dans certains OS, où incluons-nous les commutateurs/PAE et/3GB? – Manjot

Répondre

1

Au cas où vous voulez juste pour vérifier le fichier boot.ini, vous pouvez utiliser Get-Content (au cas où vous aurez pas de problèmes avec les informations d'identification)

# create a test file with server names 
@" 
server1 
server2 
"@ | set-content c:\temp\serversso.txt 

# read the file and get the content 
get-content c:\temp\serversso.txt | 
    % { get-content "\\$_\c`$\boot.ini" } | 
    Select-String "/3GB" -Quiet 

plus tard si vous ajoutez quelques trucs qui seront nécessaires pour fonctionner sur un ordinateur distant, vous devrez utiliser la communication à distance et, en gros, Invoke-Command. Récemment, deux ressources est apparu que la communication à distance tactile:

+0

Merci beaucoup pour les ressources. – Manjot

Questions connexes