summaryrefslogtreecommitdiffstats
path: root/client/engine/Inventory.lib
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2018-01-22 11:20:51 +0000
committerramon <ramongomez@us.es>2018-01-22 11:20:51 +0000
commit58718f504ebf4c288fc1f8e505bf6e6c883db885 (patch)
treecc9d787c44fd0d2ef04bc93e3d4a7e4636d49bbf /client/engine/Inventory.lib
parentf7f7a213caaec5ae4b20b3c036a01a6397bda1bf (diff)
Cerrar #823: Métodos más rápido para localizar ficheros y para obtener versión en Windows; cambiar {{{Mac OS...}}} por {{{macOS...}}} en función {{{ogGetOsVersion}}}.
git-svn-id: https://opengnsys.es/svn/branches/version1.1@5576 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client/engine/Inventory.lib')
-rwxr-xr-xclient/engine/Inventory.lib25
1 files changed, 20 insertions, 5 deletions
diff --git a/client/engine/Inventory.lib b/client/engine/Inventory.lib
index 5ad4649b..3450b3e5 100755
--- a/client/engine/Inventory.lib
+++ b/client/engine/Inventory.lib
@@ -168,8 +168,23 @@ fi
# Para Windows: leer la version del registro.
if [ -z "$VERSION" ]; then
TYPE="Windows"
- VERSION=$(ogGetRegistryValue $MNTDIR software '\Microsoft\Windows NT\CurrentVersion\ProductName' 2>/dev/null)
- [ -n "$(ogGetRegistryValue $MNTDIR software '\Microsoft\Windows\CurrentVersion\ProgramW6432Dir' 2>/dev/null)" ] && IS64BIT="$MSG_64BIT"
+ FILE="$(ogGetHivePath $MNTDIR SOFTWARE)"
+ if [ -n "$FILE" ]; then
+ # Nuevo método más rápido para acceder al registro de Windows..
+ VERSION=$(echo $(hivexsh << EOT 2>/dev/null
+load $FILE
+cd \Microsoft\Windows NT\CurrentVersion
+lsval ProductName
+lsval ReleaseId
+EOT
+ ))
+ [ -n "$(reglookup -H -p "Microsoft/Windows/CurrentVersion/ProgramW6432Dir" "$FILE" 2>/dev/null)" ] && IS64BIT="$MSG_64BIT"
+ if [ -z "$VERSION" ]; then
+ # Compatibilidad con métrodo antiguo y más lento de acceder al registro.
+ VERSION=$(ogGetRegistryValue $MNTDIR software '\Microsoft\Windows NT\CurrentVersion\ProductName' 2>/dev/null)
+ [ -n "$(ogGetRegistryValue $MNTDIR software '\Microsoft\Windows\CurrentVersion\ProgramW6432Dir' 2>/dev/null)" ] && IS64BIT="$MSG_64BIT"
+ fi
+ fi
fi
# Para cargador Windows: buscar versión en fichero BCD (basado en os-prober).
if [ -z "$VERSION" ]; then
@@ -184,14 +199,14 @@ if [ -z "$VERSION" ]; then
done
fi
fi
-# Para MacOS: detectar kernel y completar con fichero plist de información del sistema.
+# Para macOS: detectar kernel y completar con fichero plist de información del sistema.
if [ -z "$VERSION" ]; then
TYPE="MacOS"
# Kernel de Mac OS (no debe ser fichero de texto).
FILE="$MNTDIR/mach_kernel"
if [ -z "$(file -b $FILE | grep 'text')" ]; then
# Obtener tipo de kernel.
- [ -n "$(file -b $FILE | grep 'Mach-O')" ] && VERSION="Mac OS"
+ [ -n "$(file -b $FILE | grep 'Mach-O')" ] && VERSION="macOS"
[ -n "$(file -b $FILE | grep 'Mach-O 64-bit')" ] && IS64BIT="$MSG_64BIT"
# Datos de configuración de versión de Mac OS.
FILE="$MNTDIR/System/Library/CoreServices/SystemVersion.plist"
@@ -199,7 +214,7 @@ if [ -z "$VERSION" ]; then
/ProductName/ {getline;s=$3}
/ProductVersion/ {getline;v=$3}
END {print s,v}' $FILE)
- # Datos de recuperación de Mac OS.
+ # Datos de recuperación de macOS.
FILE="$MNTDIR/com.apple.recovery.boot"
[ -r $FILE -a -n "$VERSION" ] && VERSION="$VERSION recovery"
fi