SQLite

In Remote Desktop worden de verzamelde gegevens in een SQLite-database bewaard.

Informatie over de database

In Remote Desktop wordt de systeeminformatie vastgelegd in een tabel met de naam 'systeminformation'. Historische gegevens worden niet bewaard. Wanneer gegevens worden verzameld, worden eerder vastgelegde gegevens overschreven door de nieuwe waarden. Als u de historische gegevens wilt bewaren, kunt u de gegevens vastleggen in een tweede database. De gegevens in de database kunnen ook van pas komen bij de implementatie van OS X, omdat programma's toegang tot computerrecords kunnen krijgen of computerspecifieke instellingen kunnen synchroniseren op basis van de waarden in de database.

Om praktische redenen moet u de database gebruiken als alleen-lezendatabase. De databasestructuur kan veranderen om aan de vereisten van nieuwere versies van Remote Desktop te voldoen. In enkele gevallen wordt de database door Remote Desktop opgeschoond om beschadigingen te voorkomen.

De SQLite-database vindt u in '/private/var/db/RemoteManagement/RMDB/rmdb.sqlite3'. Aangezien de RMDB-directory is beperkt tot de daemon-gebruiker, is supergebruikerstoegang (sudo) vereist om toegang tot de bestanden te kunnen krijgen. Wanneer u sudo vóór de commando's plaatst, wordt u gevraagd uw beheerderswachtwoord in te voeren.

Gegevens ophalen met de commandoregel

De tool sqlite3 is geïnstalleerd in de map '/usr/bin/sqlite3'.

Via de tool sqlite3 hebt u toegang tot de tabellen en gegevens in de database van Remote Desktop. Met het volgende commando wordt een SQL-zoekactie uitgevoerd in de tabel 'systeminformation' (de tabel waarin uw rapportgegevens worden bewaard).

sudo sqlite3 /var/db/RemoteManagement/RMDB/rmdb.sqlite3 "select * from systeminformation"

Hieronder vindt u een voorbeeld van de eerste regels in de uitvoer. Afhankelijk van uw lettertype en het vensterformaat kunnen de regels teruglopen.

00:0d:93:9c:0a:e4|Mac_HardDriveElement|DataDate|0|2008-12-11T23:05:58Z|2008-12-11T23:05:58Z00:0d:93:9c:0a:e4|Mac_HardDriveElement|Model|0|Hitachi HDS722580VLSA80|2008-12-11T23:05:58Z00:0d:93:9c:0a:e4|Mac_HardDriveElement|VolumeName|0|Server HD|2008-12-11T23:05:58Z00:0d:93:9c:0a:e4|Mac_HardDriveElement|JournalingIsActive|0|true|2008-12-11T23:05:58Z00:0d:93:9c:0a:e4|Mac_HardDriveElement|LastBackupDate|0|2008-09-05T18:13:22Z|2008-12-11T23:05:58Z00:0d:93:9c:0a:e4|Mac_HardDriveElement|LastModificationDate|0|2008-12-11T23:05:57Z|2008-12-11T23:05:58Z

U kunt het scheidingsteken tussen de kolommen aanpassen met de schakeloptie -separator. In dit voorbeeld wordt een komma als scheidingsteken gebruikt.

sudo sqlite3 -separator , /var/db/RemoteManagement/RMDB/rmdb.sqlite3 "select * from systeminformation"

Andere handige schakelopties zijn -html, -line, -list en -column. Raadpleeg de man-pagina voor sqlite3 voor meer informatie.

De uitvoer van dit commando wordt in goed leesbare kolommen met kolomkoppen weergegeven.

sudo sqlite3 -header -column /var/db/RemoteManagement/RMDB/rmdb.sqlite3 "select * from systeminformation"ComputerID ObjectName PropertyName ItemSeq Value LastUpdated----------------- -------------------- ------------ ---------- -------------------- --------------------00:0d:93:9c:0a:e4 Mac_HardDriveElement DataDate 0 2008-12-11T23:05:58Z 2008-12-11T23:05:58Z00:0d:93:9c:0a:e4 Mac_HardDriveElement Model 0 Hitachi HDS722580VLS 2008-12-11T23:05:58Z00:0d:93:9c:0a:e4 Mac_HardDriveElement VolumeName 0 Server HD 2008-12-11T23:05:58Z00:0d:93:9c:0a:e4 Mac_HardDriveElement JournalingIs 0 true 2008-12-11T23:05:58Z00:0d:93:9c:0a:e4 Mac_HardDriveElement LastBackupDa 0 2008-09-05T18:13:22Z 2008-12-11T23:05:58Z00:0d:93:9c:0a:e4 Mac_HardDriveElement LastModifica 0 2008-12-11T23:05:57Z 2008-12-11T23:05:58Z00:0d:93:9c:0a:e4 Mac_HardDriveElement TotalSize 0 80287128.000000 2008-12-11T23:05:58Z

Het veld ComputerID komt overeen met het Ethernet-MAC-adres van de client die de rapportgegevens heeft verstuurd en kan als unieke waarde in uw SQL-zoekacties worden gebruikt. U kunt alle typen objectnamen weergeven door de SQL-zoekactie in het bovenstaande voorbeeld te wijzigen in:

sudo sqlite3 -header -column /var/db/RemoteManagement/RMDB/rmdb.sqlite3 "SELECT distinct objectname FROM systeminformation"

Uitvoer:

ObjectName -------------------- Mac_HardDriveElementMac_NetworkInterfaceMac_SystemInfoElemenMac_RAMSlotElementMac_PCIBusElementMac_USBDeviceElementMac_FireWireDeviceEl

Voor elke objectnaam is een aantal waarden mogelijk voor 'propertyname'. Als u uw zoekactie wijzigt, kunt u alle beschikbare paren van 'objectname'/'propertyname' weergeven:

sudo sqlite3 -header -column /var/db/RemoteManagement/RMDB/rmdb.sqlite3 "SELECT distinct objectname, propertyname FROM systeminformation"

Uitvoer:

ObjectName PropertyName -------------------- ------------Mac_HardDriveElement DataDateMac_HardDriveElement ModelMac_HardDriveElement VolumeNameMac_HardDriveElement JournalingIsMac_HardDriveElement LastBackupDaMac_HardDriveElement LastModifica

Deze kenmerken worden gecombineerd, zodat u een SQL-zoekactie kunt samenstellen waarmee een bepaalde waarde wordt opgehaald. Als u bijvoorbeeld de serienummers van clients wilt opvragen, kunt u de volgende zoekactie opgeven:

sudo sqlite3 -header -column /var/db/RemoteManagement/RMDB/rmdb.sqlite3 "SELECT distinct computerid, propertyname, value FROM systeminformation WHERE propertyname = 'MachineSerialNumber'"ComputerID PropertyName Value ----------------- ------------------- ----------- 00:0d:93:9c:0a:e4 MachineSerialNumber QP4241FHPMZ 00:16:cb:a2:6d:1b MachineSerialNumber YM6090M9U39 00:16:cb:ca:81:52 MachineSerialNumber W862100NW92 00:17:f2:04:db:24 MachineSerialNumber G86492DVX68 00:14:51:22:28:38 MachineSerialNumber W854503QURC 00:17:f2:2b:b9:59 MachineSerialNumber 4H63861KVMM

U kunt met de SQL-zoekactie ook een lijst ophalen met de computernamen (in plaats van de Ethernet-ID's) en -waarden:

sudo sqlite3 -header -column /var/db/RemoteManagement/RMDB/rmdb.sqlite3 "SELECT R1.value, R2.value FROM systeminformation R1, systeminformation R2 WHERE R1.computerid=R2.computerid AND R1.propertyname='ComputerName' AND R2.propertyName='MachineSerialNumber'"

Uitvoer:

Value Value ---------- ----------- Xserve QP4241FHPMZ mini YM6090M9U39 NetBoot001 W862100NW92 Server G86492DVX68 Server2 W854503QURC Wendy G 4H63861KVMM

Het sqlite-commando uitvoeren met Automator

Omdat u met Automator shellcommando's kunt uitvoeren, kunt u het programma gebruiken om sqlite3-uitvoer te verzamelen en naar andere programma's te versturen. In het volgende voorbeeld worden de rapportgegevens verzameld en naar Teksteditor verstuurd:

on run {input, parameters} return do shell script "/usr/bin/sqlite3 -separator " & quote & tab & quote & " /var/db/RemoteManagement/RMDB/rmdb.sqlite3 " & quote & input & quote with administrator privilegesend run

In de takenreeks wordt gevraagd om een SQL-commando en wordt vervolgens een shellcommando gemaakt via de actie 'Voer AppleScript uit', waarna een venster voor de identiteitscontrole kan worden weergegeven. In het voorbeeld wordt een tab als scheidingsteken gebruikt.

Schermafbeelding van een Automator-takenreeks waarmee om een SQL-zoekactie wordt gevraagd die vervolgens wordt uitgevoerd.

Onderdelen van sqlite-zoekactie

Mac_HardDriveElement

CreationDate

DataDate

FileSystemType

FreeSpace

GroupName

IsBootVolume

IsCasePreserving

IsCaseSensitive

IsDetachable

IsWritable

JournalingIsActive

LastBackupDate

LastConsistencyCheckDate

LastModificationDate

LogicalUnitNumber

Manufacturer

Model

OwnerName

PermissionModes

PermissionsAreEnabled

Protocol

RemovableMedia

Revision

SerialNumber

SupportsJournaling

TotalFileCount

TotalFolderCount

TotalSize

UnixMountPoint

VolumeName

Mac_NetworkInterfaceElement

AllDNSServers

AllIPAddresses

ConfigurationName

ConfigurationType

DataDate

EthernetAlignmentErrors

EthernetCarrierSenseErrors

EthernetChipSet

EthernetCollisionFrequencies

EthernetDeferredTransmissions

EthernetExcessiveCollisions

EthernetFCSErrors

EthernetFrameTooLongs

EthernetInternalMacRxErrors

EthernetInternalMacTxErrors

EthernetLateCollisions

EthernetMissedFrames

EthernetMultipleCollisionFrames

EthernetRxCollisionErrors

EthernetRxFrameTooShorts

EthernetRxInterrupts

EthernetRxOverruns

EthernetRxPHYTransmissionErrors

EthernetRxResets

EthernetRxResourceErrors

EthernetRxTimeouts

EthernetRxWatchdogTimeouts

EthernetSingleCollisionFrames

EthernetSQETestErrors

EthernetTxInterrupts

EthernetTxJabberEvents

EthernetTxPHYTransmissionErrors

EthernetTxResets

EthernetTxResourceErrors

EthernetTxTimeouts

EthernetTxUnderruns

HardwareAddress

InterfaceFlags

InterfaceName

IsActive

IsPrimary

NetworkCollisions

NetworkInputErrors

NetworkInputPackets

NetworkOutputErrors

NetworkOutputPackets

OutputQueueCapacity

OutputQueueDropCount

OutputQueueOutputCount

OutputQueuePeakSize

OutputQueueRetryCount

OutputQueueSize

OutputQueueStallCount

PrimaryDNSServer

PrimaryIPAddress

RouterAddress

Mac_SystemInfoElement

ActiveProcessorCount

AppleTalkIsActive

ATADeviceCount

BootROMVersion

BusDataSize

BusSpeed

BusSpeedString

ComputerName

DataDate

En0Address

FileSharingIsEnabled

FireWireDeviceCount

FTPIsEnabled

HasKeyboardConnected

HasLightsOutController

HasMouseConnected

HasVectorProcessingUnit

KernelVersion

Level2CacheSize

MachineClass

MachineIsNetBooted

MachineModel

MachineSerialNumber

MainMonitorDepth

MainMonitorHeight

MainMonitorType

MainMonitorWidth

ModemDescription

ModemDriverInfo

ModemInstalled

ModemInterfaceType

OpticalDriveType

PCISlotsUsedCount

PhysicalMemorySize

PrimaryIPAddress

PrimaryNetworkCollisions

PrimaryNetworkFlags

PrimaryNetworkHardwareAddress

PrimaryNetworkInputErrors

PrimaryNetworkInputPackets

PrimaryNetworkOutputErrors

PrimaryNetworkOutputPackets

PrimaryNetworkType

PrinterSharingEnabled

ProcessorCount

ProcessorSpeed

ProcessorSpeedString

ProcessorType

RemoteAppleEventsEnabled

RemoteLoginEnabled

SCSIDeviceCount

SleepDisplayWhenInactive

SleepWhenInactive

SpinDownHardDrive

SystemVersion

SystemVersionString

TotalFreeHardDriveSpace

TotalHardDriveSpace

TotalRAMSlots

TotalSwapFileSize

TrashSize

UnixHostName

UnusedRAMSlots

USBDeviceCount

UserMemorySize

WakeOnLanEnabled

WebSharingIsEnabled

WindowsFileSharingEnabled

WirelessCardInstalled

Mac_RAMSlotElement

DataDate

MemoryModuleSize

MemoryModuleSpeed

MemoryModuleType

SlotIdentifier

Mac_PCIBusElement

CardMemory

CardName

CardRevision

CardType

DataDate

DeviceID

RomRevision

SlotName

VendorID

Mac_NetworkInterfaceElement

DomainName

Mac_SystemInfoElement

WirelessCardFirmwareVersion

WirelessCardHardwareAddress

WirelessCardIsActive

WirelessCardLocale

WirelessCardType

Mac_USBDeviceElement

BusPower

DataDate

DeviceSpeed

ProductID

ProductName

SerialNumber

VendorID

Mac_SystemInfoElement

WirelessNetworkAvailable

Mac_FireWireDeviceElement

DataDate

DeviceSpeed

Manufacturer

Model

Mac_SystemInfoElement

ARDComputerInfo1

ARDComputerInfo2

ARDComputerInfo3

ARDComputerInfo4

ModemCountryInfo

SelectedPrinterName

SelectedPrinterPostScriptVersion

SelectedPrinterType

WirelessChannelNumber

WirelessIsComputerToComputer

WirelessNetworkName