Win32::AdminMisc

Win32::AdminMisc

am 27.08.2007 19:01:43 von Robert Berghaus

Hallo

Ich wollte für alle lokalen Laufwerke den freien Speicher=20
beobachten und bei Änderungen (maximal aber 1-mal pro Minute)=20
einen Logeintrag generieren.

Im Buch "Perl für System-Administratoren" stand was von=20
Win32::AdminMisc::GetDriveSpace, das habe ich aber nicht mehr=20
gefunden.
Ich habe mir daher mit "@aDir =3D `dir $_`;" geholfen (in $_ steht=20
das jeweilige Root-Verzeichnis (also C:\...) ).

Das funktioniert einwandfrei. Trotzdem würde mich interessieren,=20
ob es das Paket AdminMisc noch gibt. Oder gibt es irgendeinen=20
Nachfolger dafür?

--=20
Schönen Gruß aus dem Bergischen Land
Robert

Re: Win32::AdminMisc

am 27.08.2007 19:14:58 von Bjoern Hoehrmann

* Robert Berghaus wrote in de.comp.lang.perl.misc:
>Das funktioniert einwandfrei. Trotzdem würde mich interessieren,
>ob es das Paket AdminMisc noch gibt. Oder gibt es irgendeinen
>Nachfolger dafür?

Es gibt mehrere Module die u.a. GetDiskFreeSpace für Perl zugänglich
machen, zum Beispiel Win32::DriveInfo und Win32::DirSize. Nach dem
Win32 Funktionsnamen zu suchen, sollte ein passendes Modul hervor-
bringen.
--
Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de
Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

Re: Win32::AdminMisc

am 28.08.2007 09:28:13 von Christian Winter

Robert Berghaus schrieb:
> Ich wollte für alle lokalen Laufwerke den freien Speicher beobachten und
> bei Änderungen (maximal aber 1-mal pro Minute) einen Logeintrag generieren.
>
> Im Buch "Perl für System-Administratoren" stand was von
> Win32::AdminMisc::GetDriveSpace, das habe ich aber nicht mehr gefunden.
> Ich habe mir daher mit "@aDir = `dir $_`;" geholfen (in $_ steht das
> jeweilige Root-Verzeichnis (also C:\...) ).
>
> Das funktioniert einwandfrei. Trotzdem würde mich interessieren, ob es
> das Paket AdminMisc noch gibt. Oder gibt es irgendeinen Nachfolger dafür?

Wenn's nur um das Auslesen von Infos geht, verwende ich sehr gerne
das WMI interface. Möglichkeiten, von Perl aus darauf zuzugreifen,
gibt es mehrere. Besonders praktisch, wenn auch noch nicht komplett
implementiert (z.B. Authentifizierung fehlt noch) ist der Zugriff
mittels DBD::WMI:
------------------------------------------------------------ -----
use strict;
use warnings;
use DBI;

my $wmi = DBI->connect('DBI:WMI:.'); # . = localhost
my $qry = $wmi->prepare( 'SELECT * FROM Win32_LogicalDisk' );

$qry->execute;

while( my @r = $qry->fetchrow() ) {
printf(
'%2s %9.02f MB %s',
$r[0]->{'Name'},
($r[0]->{'FreeSpace'} || 0) / 1048576,
$/
)
}
------------------------------------------------------------ -----

Ansonsten lässt sich auch direkt via Win32::OLE darauf zugreifen.

-Christian

Re: Win32::AdminMisc

am 28.08.2007 11:55:53 von Robert Berghaus

Vielen Dank für Eure Tips.
Ich habe jetzt auch AdminMisc gefunden und werde alles mal=20
ausprobieren.

--=20
Schönen Gruß aus dem Bergischen Land
Robert