会社のパソコンの台数が増えてくると、どの程度の性能のものが何台くらいあるのかわからなくなってくることがある。
各自が勝手にメモリやHDを増やしたりするとなおさら。
こういう場合、Windowsマシンであれば、適度な権限さえあれば、外部から WMIという仕組みを利用して
リモートでパソコンの性能を調査することができる。
アイロベックスでも、定期的に決まった日の昼休みに、勝手に各社員のパソコンの性能調査をして記録し、
即席の資産管理表を作るところまで自作で半自動化している。
大概の社員は気づいてもいないのだけど。
//コード例(C#)
static void Main(string[] args) {
string strPath = @"\\" + args[0] + @"\root\cimv2";
ConnectionOptions conOptions = new ConnectionOptions();
conOptions.Username = "domain\administrator";
conOptions.Password = "password";
conOptions.Authentication = AuthenticationLevel.Default;
conOptions.Impersonation = ImpersonationLevel.Impersonate;
ManagementScope objScope = new ManagementScope(strPath, conOptions); // リモートコンピュータ用のスコープ
//ManagementScope objScope = new ManagementScope(strPath); // ローカルコンピュータ用のスコープ
objScope.Connect();
ManagementObjectSearcher objSearcher = new ManagementObjectSearcher(objScope, new WqlObjectQuery("SELECT * FROM Win32_Processor")); //CPUについて調査
foreach ( ManagementBaseObject objVar in objSearcher.Get() ) {
IEnumerator objEnum = objVar.Properties.GetEnumerator();
while ( objEnum.MoveNext() ) {
try {
PropertyData objProperty = (PropertyData)objEnum.Current;
System.Console.WriteLine(objProperty.Name + "\t" + objVar.GetPropertyValue(objProperty.Name).ToString());
} catch ( System.NullReferenceException ne ) {
}
}
}
}