tis-audit-bitlocker
Publicado: 27 de enero de 2026 - 10:31
Hola,
estoy teniendo problemas con la función de auditoría en este paquete.
En algunas de nuestras máquinas, la función de PowerShell "(Get-BitLockerVolume).MountPoint" devuelve letras de unidad inusuales como: \\?\Volume{2d8e1378-6a0d-4197-49d0-fe4e2f18cd72}.
Más adelante en el código del paquete, un bucle for (for mountpoint in mountpoint_list:) nos permite ignorar estas unidades usando una is_ignored.
Si se cumple la condición ? en mountpoint (if "?" in mountpoint:), entonces la is_ignored se establece en True, y por lo tanto la unidad se ignorará para el resto de la función de auditoría. Esto está bien.
Mi problema surge de las otras condiciones que se prueban después en el mismo bucle. Estas son sentencias if adicionales, y por lo tanto se prueban incluso si se cumple la primera condición. Sin embargo, por ejemplo, en la segunda condición, la función "Get-Volume -DriveLetter %s | Where-Object DriveType -EQ Removable" genera un error en el paquete. El error devuelto es "Get-Volume: No se puede encontrar un parámetro posicional que acepte 2d8e1378-6a0d-4197-49d0-fe4e2f18cd72", etc.
Está claro que el argumento DriveLetter no acepta el nombre de volumen inusual que se le da. O tal vez las llaves {} están causando un error de sintaxis.
Solucioné este problema comenzando las condiciones con: if not is_ignored and. Pero mientras escribo este mensaje, me doy cuenta de que probablemente obtendría el mismo resultado usando instrucciones elif.
Con esta modificación, el paquete funciona un poco mejor. La clave de BitLocker se recupera de Active Directory y la consola WAPT. Pero la auditoría sigue en error porque ocurre un nuevo error después. Esta vez con la función de PowerShell Get-BitLockerVolume. (Get-BitLockerVolume: No se pudo encontrar un parámetro posicional que acepte el argumento...)
Todavía no he identificado en qué línea del script de auditoría ocurre este nuevo error. Ni por qué, ya que lógicamente, no deberían usarse nombres de volumen extraños. Pero pensé que ya valía la pena informar sobre los errores encontrados en este primer bucle for.
Agregaré la causa de este nuevo error a esta publicación si logro encontrarla.
Que tenga un buen día.
Vincent
estoy teniendo problemas con la función de auditoría en este paquete.
En algunas de nuestras máquinas, la función de PowerShell "(Get-BitLockerVolume).MountPoint" devuelve letras de unidad inusuales como: \\?\Volume{2d8e1378-6a0d-4197-49d0-fe4e2f18cd72}.
Más adelante en el código del paquete, un bucle for (for mountpoint in mountpoint_list:) nos permite ignorar estas unidades usando una is_ignored.
Si se cumple la condición ? en mountpoint (if "?" in mountpoint:), entonces la is_ignored se establece en True, y por lo tanto la unidad se ignorará para el resto de la función de auditoría. Esto está bien.
Mi problema surge de las otras condiciones que se prueban después en el mismo bucle. Estas son sentencias if adicionales, y por lo tanto se prueban incluso si se cumple la primera condición. Sin embargo, por ejemplo, en la segunda condición, la función "Get-Volume -DriveLetter %s | Where-Object DriveType -EQ Removable" genera un error en el paquete. El error devuelto es "Get-Volume: No se puede encontrar un parámetro posicional que acepte 2d8e1378-6a0d-4197-49d0-fe4e2f18cd72", etc.
Está claro que el argumento DriveLetter no acepta el nombre de volumen inusual que se le da. O tal vez las llaves {} están causando un error de sintaxis.
Solucioné este problema comenzando las condiciones con: if not is_ignored and. Pero mientras escribo este mensaje, me doy cuenta de que probablemente obtendría el mismo resultado usando instrucciones elif.
Con esta modificación, el paquete funciona un poco mejor. La clave de BitLocker se recupera de Active Directory y la consola WAPT. Pero la auditoría sigue en error porque ocurre un nuevo error después. Esta vez con la función de PowerShell Get-BitLockerVolume. (Get-BitLockerVolume: No se pudo encontrar un parámetro posicional que acepte el argumento...)
Todavía no he identificado en qué línea del script de auditoría ocurre este nuevo error. Ni por qué, ya que lógicamente, no deberían usarse nombres de volumen extraños. Pero pensé que ya valía la pena informar sobre los errores encontrados en este primer bucle for.
Agregaré la causa de este nuevo error a esta publicación si logro encontrarla.
Que tenga un buen día.
Vincent