Lists BitLocker status and policy information by computer name. Note that hardware extensions are needed for this report. Popovici Ioan @ SCCM-Zone.com 0 /ConfigMgr_A01/{5C6358F2-4BB6-4a1b-A16E-8D96795D8602} None 33f94ec3-1e39-4466-a6ee-65619da20a87 DataSource =Parameters!UserSIDs.Value =Parameters!CollectionID.Value =Parameters!ExcludeVirtualMachines.Value /* .SYNOPSIS Gets the BitLocker compliance in SCCM. .DESCRIPTION Gets the BitLocker compliance and policy with SCCM custom HWI extensions. .NOTES Created by Ioan Popovici Requires SCCM with SSRS/SQL, HWI Extension .LINK BlogPost: https://SCCM.Zone/SEC-BitLocker-Compliance-And-Policy .LINK Changes : https://SCCM.Zone/SEC-BitLocker-Compliance-And-Policy-CHANGELOG .LINK Github : https://SCCM.Zone/SEC-BitLocker-Compliance-And-Policy-GIT .LINK Issues : https://SCCM.Zone/Issues */ /*##=============================================*/ /*## QUERY BODY */ /*##=============================================*/ /* Testing variables !! Need to be commented for Production !! */ --DECLARE @UserSIDs NVARCHAR (16) = 'Disabled'; --DECLARE @CollectionID NVARCHAR (16) = 'A01000B3'; --DECLARE @ExcludeVirtualMachines NVARCHAR (3) = 'No'; /* Get BitLocker data */ SELECT DeviceName = ComputerSystem.Name0 , Manufacturer = ComputerSystem.Manufacturer0 , Model = ( CASE WHEN ComputerSystem.Model0 LIKE '10AA%' THEN 'ThinkCentre M93p' WHEN ComputerSystem.Model0 LIKE '10AB%' THEN 'ThinkCentre M93p' WHEN ComputerSystem.Model0 LIKE '10AE%' THEN 'ThinkCentre M93z' WHEN ComputerSystem.Model0 LIKE '10FLS1TJ%' THEN 'ThinkCentre M900' WHEN ComputerProduct.Version0 = 'Lenovo Product' THEN ('Unknown ' + ComputerSystem.Model0) WHEN ComputerSystem.Manufacturer0 = 'LENOVO' THEN ComputerProduct.Version0 ELSE ComputerSystem.Model0 END ) , OperatingSystem = ( CONCAT( CASE WHEN OperatingSystem.Caption0 != '' THEN CONCAT( REPLACE(OperatingSystem.Caption0, 'Microsoft ', ''), --Remove 'Microsoft ' from OperatingSystem REPLACE(OperatingSystem.CSDVersion0, 'Service Pack ', ' SP') --Replace 'Service Pack ' with ' SP' in OperatingSystem ) ELSE /* Workaround for systems not in GS_OPERATING_SYSTEM table */ ( CASE WHEN CombinedResources.DeviceOS LIKE '%Workstation 6.1%' THEN 'Windows 7' WHEN CombinedResources.DeviceOS LIKE '%Workstation 6.2%' THEN 'Windows 8' WHEN CombinedResources.DeviceOS LIKE '%Workstation 6.3%' THEN 'Windows 8.1' WHEN CombinedResources.DeviceOS LIKE '%Workstation 10.0%' THEN 'Windows 10' WHEN CombinedResources.DeviceOS LIKE '%Server 6.0' THEN 'Windows Server 2008' WHEN CombinedResources.DeviceOS LIKE '%Server 6.1' THEN 'Windows Server 2008R2' WHEN CombinedResources.DeviceOS LIKE '%Server 6.2' THEN 'Windows Server 2012' WHEN CombinedResources.DeviceOS LIKE '%Server 6.3' THEN 'Windows Server 2012 R2' WHEN CombinedResources.DeviceOS LIKE '%Server 10.0' THEN 'Windows Server 2016' ELSE 'Unknown' END ) END , ' ' + ( SELECT OSLocalizedNames.Value FROM fn_GetWindowsServicingLocalizedNames() AS OSLocalizedNames INNER JOIN fn_GetWindowsServicingStates() AS OSServicingStates ON OSServicingStates.Build = System.Build01 WHERE OSLocalizedNames.Name = OSServicingStates.Name AND System.OSBranch01 = OSServicingStates.branch --Select only the branch of the installed OS ) ) ) , BuildNumber = OperatingSystem.Version0 , ManufacturerID = TPM.ManufacturerId0 , ManufacturerVersion = TPM.ManufacturerVersion0 , PhysicalPresenceVersion = TPM.PhysicalPresenceVersionInfo0 , SpecVersion = TPM.SpecVersion0 , BitlockerPolicy = ( /* Only keys with values will be selected. It looks like shit, need to create a function in SSRS for this */ SELECT 'General:;;' + CASE ActiveDirectoryBackup0 WHEN '' THEN '' ELSE 'ActiveDirectoryBackup' + ' = ' + COALESCE(CAST(ActiveDirectoryBackup0 AS NVARCHAR), '') + ';' END + CASE ActiveDirectoryInfoToStore0 WHEN '' THEN '' ELSE 'ActiveDirectoryInfoToStore' + ' = ' + COALESCE(CAST(ActiveDirectoryInfoToStore0 AS NVARCHAR), '') + ';' END + CASE CertificateOID0 WHEN '' THEN '' ELSE 'CertificateOID' + ' = ' + COALESCE(CAST(CertificateOID0 AS NVARCHAR), '') + ';' END + CASE DefaultRecoveryFolderPath0 WHEN '' THEN '' ELSE 'DefaultRecoveryFolderPath' + ' = ' + COALESCE(CAST(DefaultRecoveryFolderPath0 AS NVARCHAR), '') + ';' END + CASE DisableExternalDMAUnderLock0 WHEN '' THEN '' ELSE 'DisableExternalDMAUnderLock' + ' = ' + COALESCE(CAST(DisableExternalDMAUnderLock0 AS NVARCHAR), '') + ';' END + CASE DisallowStandardUserPINReset0 WHEN '' THEN '' ELSE 'DisallowStandardUserPINReset' + ' = ' + COALESCE(CAST(DisallowStandardUserPINReset0 AS NVARCHAR), '') + ';' END + CASE EnableBDEWithNoTPM0 WHEN '' THEN '' ELSE 'EnableBDEWithNoTPM' + ' = ' + COALESCE(CAST(EnableBDEWithNoTPM0 AS NVARCHAR), '') + ';' END + CASE EnableNonTPM0 WHEN '' THEN '' ELSE 'EnableNonTPM' + ' = ' + COALESCE(CAST(EnableNonTPM0 AS NVARCHAR), '') + ';' END + CASE EncryptionMethod0 WHEN '' THEN '' ELSE 'EncryptionMethod' + ' = ' + COALESCE(CAST(EncryptionMethod0 AS NVARCHAR), '') + ';' END + CASE EncryptionMethodNoDiffuser0 WHEN '' THEN '' ELSE 'EncryptionMethodNoDiffuser' + ' = ' + COALESCE(CAST(EncryptionMethodNoDiffuser0 AS NVARCHAR), '') + ';' END + CASE EncryptionMethodWithXtsFdv0 WHEN '' THEN '' ELSE 'EncryptionMethodWithXtsFdv' + ' = ' + COALESCE(CAST(EncryptionMethodWithXtsFdv0 AS NVARCHAR), '') + ';' END + CASE EncryptionMethodWithXtsOs0 WHEN '' THEN '' ELSE 'EncryptionMethodWithXtsOs' + ' = ' + COALESCE(CAST(EncryptionMethodWithXtsOs0 AS NVARCHAR), '') + ';' END + CASE EncryptionMethodWithXtsRdv0 WHEN '' THEN '' ELSE 'EncryptionMethodWithXtsRdv' + ' = ' + COALESCE(CAST(EncryptionMethodWithXtsRdv0 AS NVARCHAR), '') + ';' END + CASE IdentificationField0 WHEN '' THEN '' ELSE 'IdentificationField' + ' = ' + COALESCE(CAST(IdentificationField0 AS NVARCHAR), '') + ';' END + CASE IdentificationFieldString0 WHEN '' THEN '' ELSE 'IdentificationFieldString' + ' = ' + COALESCE(CAST(IdentificationFieldString0 AS NVARCHAR), '') + ';' END + CASE MinimumPIN0 WHEN '' THEN '' ELSE 'MinimumPIN' + ' = ' + COALESCE(CAST(MinimumPIN0 AS NVARCHAR), '') + ';' END + CASE MorBehavior0 WHEN '' THEN '' ELSE 'MorBehavior' + ' = ' + COALESCE(CAST(MorBehavior0 AS NVARCHAR), '') + ';' END + CASE RecoveryKeyMessage0 WHEN '' THEN '' ELSE 'RecoveryKeyMessage' + ' = ' + COALESCE(CAST(RecoveryKeyMessage0 AS NVARCHAR), '') + ';' END + CASE RecoveryKeyMessageSource0 WHEN '' THEN '' ELSE 'RecoveryKeyMessageSource' + ' = ' + COALESCE(CAST(RecoveryKeyMessageSource0 AS NVARCHAR), '') + ';' END + CASE RecoveryKeyUrl0 WHEN '' THEN '' ELSE 'RecoveryKeyUrl' + ' = ' + COALESCE(CAST(RecoveryKeyUrl0 AS NVARCHAR), '') + ';' END + CASE RequireActiveDirectoryBackup0 WHEN '' THEN '' ELSE 'RequireActiveDirectoryBackup' + ' = ' + COALESCE(CAST(RequireActiveDirectoryBackup0 AS NVARCHAR), '') + ';' END + CASE SecondaryIdentificationField0 WHEN '' THEN '' ELSE 'SecondaryIdentificationField' + ' = ' + COALESCE(CAST(SecondaryIdentificationField0 AS NVARCHAR), '') + ';' END + CASE TPMAutoReseal0 WHEN '' THEN '' ELSE 'TPMAutoReseal' + ' = ' + COALESCE(CAST(TPMAutoReseal0 AS NVARCHAR), '') + ';' END + CASE UseAdvancedStartup0 WHEN '' THEN '' ELSE 'UseAdvancedStartup' + ' = ' + COALESCE(CAST(UseAdvancedStartup0 AS NVARCHAR), '') + ';' END + CASE UseEnhancedPin0 WHEN '' THEN '' ELSE 'UseEnhancedPin' + ' = ' + COALESCE(CAST(UseEnhancedPin0 AS NVARCHAR), '') + ';' END + CASE UsePartialEncryptionKey0 WHEN '' THEN '' ELSE 'UsePartialEncryptionKey' + ' = ' + COALESCE(CAST(UsePartialEncryptionKey0 AS NVARCHAR), '') + ';' END + CASE UsePIN0 WHEN '' THEN '' ELSE 'UsePIN' + ' = ' + COALESCE(CAST(UsePIN0 AS NVARCHAR), '') + ';' END + CASE UseRecoveryDrive0 WHEN '' THEN '' ELSE 'UseRecoveryDrive' + ' = ' + COALESCE(CAST(UseRecoveryDrive0 AS NVARCHAR), '') + ';' END + CASE UseRecoveryPassword0 WHEN '' THEN '' ELSE 'UseRecoveryPassword' + ' = ' + COALESCE(CAST(UseRecoveryPassword0 AS NVARCHAR), '') + ';' END + CASE UseTPM0 WHEN '' THEN '' ELSE 'UseTPM' + ' = ' + COALESCE(CAST(UseTPM0 AS NVARCHAR), '') + ';' END + CASE UseTPMKey0 WHEN '' THEN '' ELSE 'UseTPMKey' + ' = ' + COALESCE(CAST(UseTPMKey0 AS NVARCHAR), '') + ';' END + CASE UseTPMKeyPIN0 WHEN '' THEN '' ELSE 'UseTPMKeyPIN' + ' = ' + COALESCE(CAST(UseTPMKeyPIN0 AS NVARCHAR), '') + ';' END + CASE UseTPMPIN0 WHEN '' THEN '' ELSE 'UseTPMPIN' + ' = ' + COALESCE(CAST(UseTPMPIN0 AS NVARCHAR), '') + ';' END + ';OSDrives:;;' + CASE OSActiveDirectoryBackup0 WHEN '' THEN '' ELSE 'OSActiveDirectoryBackup' + ' = ' + COALESCE(CAST(OSActiveDirectoryBackup0 AS NVARCHAR), '') + ';' END + CASE OSActiveDirectoryInfoToStore0 WHEN '' THEN '' ELSE 'OSActiveDirectoryInfoToStore' + ' = ' + COALESCE(CAST(OSActiveDirectoryInfoToStore0 AS NVARCHAR), '') + ';' END + CASE OSAllowedHardwareEncryptionA0 WHEN '' THEN '' ELSE 'OSAllowedHardwareEncryptionAlgorithms' + ' = ' + COALESCE(CAST(OSAllowedHardwareEncryptionA0 AS NVARCHAR), '') + ';' END + CASE OSAllowSecureBootForIntegrit0 WHEN '' THEN '' ELSE 'OSAllowSecureBootForIntegrity' + ' = ' + COALESCE(CAST(OSAllowSecureBootForIntegrit0 AS NVARCHAR), '') + ';' END + CASE OSAllowSoftwareEncryptionFai0 WHEN '' THEN '' ELSE 'OSAllowSoftwareEncryptionFailover' + ' = ' + COALESCE(CAST(OSAllowSoftwareEncryptionFai0 AS NVARCHAR), '') + ';' END + CASE OSBcdAdditionalExcludedSetti0 WHEN '' THEN '' ELSE 'OSBcdAdditionalExcludedSettings' + ' = ' + COALESCE(CAST(OSBcdAdditionalExcludedSetti0 AS NVARCHAR), '') + ';' END + CASE OSBcdAdditionalSecurityCriti0 WHEN '' THEN '' ELSE 'OSBcdAdditionalSecurityCriticalSettings' + ' = ' + COALESCE(CAST(OSBcdAdditionalSecurityCriti0 AS NVARCHAR), '') + ';' END + CASE OSEnablePrebootInputProtecto0 WHEN '' THEN '' ELSE 'OSEnablePrebootInputProtectorsOnSlates' + ' = ' + COALESCE(CAST(OSEnablePrebootInputProtecto0 AS NVARCHAR), '') + ';' END + CASE OSEnablePreBootPinExceptionO0 WHEN '' THEN '' ELSE 'OSEnablePreBootPinExceptionOnDECapableDevice' + ' = ' + COALESCE(CAST(OSEnablePreBootPinExceptionO0 AS NVARCHAR), '') + ';' END + CASE OSEncryptionType0 WHEN '' THEN '' ELSE 'OSEncryptionType' + ' = ' + COALESCE(CAST(OSEncryptionType0 AS NVARCHAR), '') + ';' END + CASE OSHardwareEncryption0 WHEN '' THEN '' ELSE 'OSHardwareEncryption' + ' = ' + COALESCE(CAST(OSHardwareEncryption0 AS NVARCHAR), '') + ';' END + CASE OSHideRecoveryPage0 WHEN '' THEN '' ELSE 'OSHideRecoveryPage' + ' = ' + COALESCE(CAST(OSHideRecoveryPage0 AS NVARCHAR), '') + ';' END + CASE OSManageDRA0 WHEN '' THEN '' ELSE 'OSManageDRA' + ' = ' + COALESCE(CAST(OSManageDRA0 AS NVARCHAR), '') + ';' END + CASE OSManageNKP0 WHEN '' THEN '' ELSE 'OSManageNKP' + ' = ' + COALESCE(CAST(OSManageNKP0 AS NVARCHAR), '') + ';' END + CASE OSPassphrase0 WHEN '' THEN '' ELSE 'OSPassphrase' + ' = ' + COALESCE(CAST(OSPassphrase0 AS NVARCHAR), '') + ';' END + CASE OSPassphraseASCIIOnly0 WHEN '' THEN '' ELSE 'OSPassphraseASCIIOnly' + ' = ' + COALESCE(CAST(OSPassphraseASCIIOnly0 AS NVARCHAR), '') + ';' END + CASE OSPassphraseComplexity0 WHEN '' THEN '' ELSE 'OSPassphraseComplexity' + ' = ' + COALESCE(CAST(OSPassphraseComplexity0 AS NVARCHAR), '') + ';' END + CASE OSPassphraseLength0 WHEN '' THEN '' ELSE 'OSPassphraseLength' + ' = ' + COALESCE(CAST(OSPassphraseLength0 AS NVARCHAR), '') + ';' END + CASE OSRecovery0 WHEN '' THEN '' ELSE 'OSRecovery' + ' = ' + COALESCE(CAST(OSRecovery0 AS NVARCHAR), '') + ';' END + CASE OSRecoveryKey0 WHEN '' THEN '' ELSE 'OSRecoveryKey' + ' = ' + COALESCE(CAST(OSRecoveryKey0 AS NVARCHAR), '') + ';' END + CASE OSRecoveryPassword0 WHEN '' THEN '' ELSE 'OSRecoveryPassword' + ' = ' + COALESCE(CAST(OSRecoveryPassword0 AS NVARCHAR), '') + ';' END + CASE OSRequireActiveDirectoryBack0 WHEN '' THEN '' ELSE 'OSRequireActiveDirectoryBackup' + ' = ' + COALESCE(CAST(OSRequireActiveDirectoryBack0 AS NVARCHAR), '') + ';' END + CASE OSRestrictHardwareEncryption0 WHEN '' THEN '' ELSE 'OSRestrictHardwareEncryptionAlgorithms' + ' = ' + COALESCE(CAST(OSRestrictHardwareEncryption0 AS NVARCHAR), '') + ';' END + CASE OSUseEnhancedBcdProfile0 WHEN '' THEN '' ELSE 'OSUseEnhancedBcdProfile' + ' = ' + COALESCE(CAST(OSUseEnhancedBcdProfile0 AS NVARCHAR), '') + ';' END + ';FixedDrives:;;' + CASE FDVActiveDirectoryBackup0 WHEN '' THEN '' ELSE 'FDVActiveDirectoryBackup' + ' = ' + COALESCE(CAST(FDVActiveDirectoryBackup0 AS NVARCHAR), '') + ';' END + CASE FDVActiveDirectoryInfoToStor0 WHEN '' THEN '' ELSE 'FDVActiveDirectoryInfoToStore' + ' = ' + COALESCE(CAST(FDVActiveDirectoryInfoToStor0 AS NVARCHAR), '') + ';' END + CASE FDVAllowedHardwareEncryption0 WHEN '' THEN '' ELSE 'FDVAllowedHardwareEncryptionAlgorithms' + ' = ' + COALESCE(CAST(FDVAllowedHardwareEncryption0 AS NVARCHAR), '') + ';' END + CASE FDVAllowSoftwareEncryptionFa0 WHEN '' THEN '' ELSE 'FDVAllowSoftwareEncryptionFailover' + ' = ' + COALESCE(CAST(FDVAllowSoftwareEncryptionFa0 AS NVARCHAR), '') + ';' END + CASE FDVAllowUserCert0 WHEN '' THEN '' ELSE 'FDVAllowUserCert' + ' = ' + COALESCE(CAST(FDVAllowUserCert0 AS NVARCHAR), '') + ';' END + CASE FDVDiscoveryVolumeType0 WHEN '' THEN '' ELSE 'FDVDiscoveryVolumeType' + ' = ' + COALESCE(CAST(FDVDiscoveryVolumeType0 AS NVARCHAR), '') + ';' END + CASE FDVEncryptionType0 WHEN '' THEN '' ELSE 'FDVEncryptionType' + ' = ' + COALESCE(CAST(FDVEncryptionType0 AS NVARCHAR), '') + ';' END + CASE FDVEnforcePassphrase0 WHEN '' THEN '' ELSE 'FDVEnforcePassphrase' + ' = ' + COALESCE(CAST(FDVEnforcePassphrase0 AS NVARCHAR), '') + ';' END + CASE FDVEnforceUserCert0 WHEN '' THEN '' ELSE 'FDVEnforceUserCert' + ' = ' + COALESCE(CAST(FDVEnforceUserCert0 AS NVARCHAR), '') + ';' END + CASE FDVHardwareEncryption0 WHEN '' THEN '' ELSE 'FDVHardwareEncryption' + ' = ' + COALESCE(CAST(FDVHardwareEncryption0 AS NVARCHAR), '') + ';' END + CASE FDVHideRecoveryPage0 WHEN '' THEN '' ELSE 'FDVHideRecoveryPage' + ' = ' + COALESCE(CAST(FDVHideRecoveryPage0 AS NVARCHAR), '') + ';' END + CASE FDVManageDRA0 WHEN '' THEN '' ELSE 'FDVManageDRA' + ' = ' + COALESCE(CAST(FDVManageDRA0 AS NVARCHAR), '') + ';' END + CASE FDVNoBitLockerToGoReader0 WHEN '' THEN '' ELSE 'FDVNoBitLockerToGoReader' + ' = ' + COALESCE(CAST(FDVNoBitLockerToGoReader0 AS NVARCHAR), '') + ';' END + CASE FDVPassphrase0 WHEN '' THEN '' ELSE 'FDVPassphrase' + ' = ' + COALESCE(CAST(FDVPassphrase0 AS NVARCHAR), '') + ';' END + CASE FDVPassphraseComplexity0 WHEN '' THEN '' ELSE 'FDVPassphraseComplexity' + ' = ' + COALESCE(CAST(FDVPassphraseComplexity0 AS NVARCHAR), '') + ';' END + CASE FDVPassphraseLength0 WHEN '' THEN '' ELSE 'FDVPassphraseLength' + ' = ' + COALESCE(CAST(FDVPassphraseLength0 AS NVARCHAR), '') + ';' END + CASE FDVRecovery0 WHEN '' THEN '' ELSE 'FDVRecovery' + ' = ' + COALESCE(CAST(FDVRecovery0 AS NVARCHAR), '') + ';' END + CASE FDVRecoveryKey0 WHEN '' THEN '' ELSE 'FDVRecoveryKey' + ' = ' + COALESCE(CAST(FDVRecoveryKey0 AS NVARCHAR), '') + ';' END + CASE FDVRecoveryPassword0 WHEN '' THEN '' ELSE 'FDVRecoveryPassword' + ' = ' + COALESCE(CAST(FDVRecoveryPassword0 AS NVARCHAR), '') + ';' END + CASE FDVRequireActiveDirectoryBac0 WHEN '' THEN '' ELSE 'FDVRequireActiveDirectoryBackup' + ' = ' + COALESCE(CAST(FDVRequireActiveDirectoryBac0 AS NVARCHAR), '') + ';' END + CASE FDVRestrictHardwareEncryptio0 WHEN '' THEN '' ELSE 'FDVRestrictHardwareEncryptionAlgorithms' + ' = ' + COALESCE(CAST(FDVRestrictHardwareEncryptio0 AS NVARCHAR), '') + ';' END + ';RemovableDrives:;;' + CASE RDVActiveDirectoryBackup0 WHEN '' THEN '' ELSE 'RDVActiveDirectoryBackup' + ' = ' + COALESCE(CAST(RDVActiveDirectoryBackup0 AS NVARCHAR), '') + ';' END + CASE RDVActiveDirectoryInfoToStor0 WHEN '' THEN '' ELSE 'RDVActiveDirectoryInfoToStore' + ' = ' + COALESCE(CAST(RDVActiveDirectoryInfoToStor0 AS NVARCHAR), '') + ';' END + CASE RDVAllowBDE0 WHEN '' THEN '' ELSE 'RDVAllowBDE' + ' = ' + COALESCE(CAST(RDVAllowBDE0 AS NVARCHAR), '') + ';' END + CASE RDVAllowedHardwareEncryption0 WHEN '' THEN '' ELSE 'RDVAllowedHardwareEncryptionAlgorithms' + ' = ' + COALESCE(CAST(RDVAllowedHardwareEncryption0 AS NVARCHAR), '') + ';' END + CASE RDVAllowSoftwareEncryptionFa0 WHEN '' THEN '' ELSE 'RDVAllowSoftwareEncryptionFailover' + ' = ' + COALESCE(CAST(RDVAllowSoftwareEncryptionFa0 AS NVARCHAR), '') + ';' END + CASE RDVAllowUserCert0 WHEN '' THEN '' ELSE 'RDVAllowUserCert' + ' = ' + COALESCE(CAST(RDVAllowUserCert0 AS NVARCHAR), '') + ';' END + CASE RDVConfigureBDE0 WHEN '' THEN '' ELSE 'RDVConfigureBDE' + ' = ' + COALESCE(CAST(RDVConfigureBDE0 AS NVARCHAR), '') + ';' END + CASE RDVDenyCrossOrg0 WHEN '' THEN '' ELSE 'RDVDenyCrossOrg' + ' = ' + COALESCE(CAST(RDVDenyCrossOrg0 AS NVARCHAR), '') + ';' END + CASE RDVDisableBDE0 WHEN '' THEN '' ELSE 'RDVDisableBDE' + ' = ' + COALESCE(CAST(RDVDisableBDE0 AS NVARCHAR), '') + ';' END + CASE RDVDiscoveryVolumeType0 WHEN '' THEN '' ELSE 'RDVDiscoveryVolumeType' + ' = ' + COALESCE(CAST(RDVDiscoveryVolumeType0 AS NVARCHAR), '') + ';' END + CASE RDVEncryptionType0 WHEN '' THEN '' ELSE 'RDVEncryptionType' + ' = ' + COALESCE(CAST(RDVEncryptionType0 AS NVARCHAR), '') + ';' END + CASE RDVEnforcePassphrase0 WHEN '' THEN '' ELSE 'RDVEnforcePassphrase' + ' = ' + COALESCE(CAST(RDVEnforcePassphrase0 AS NVARCHAR), '') + ';' END + CASE RDVEnforceUserCert0 WHEN '' THEN '' ELSE 'RDVEnforceUserCert' + ' = ' + COALESCE(CAST(RDVEnforceUserCert0 AS NVARCHAR), '') + ';' END + CASE RDVHardwareEncryption0 WHEN '' THEN '' ELSE 'RDVHardwareEncryption' + ' = ' + COALESCE(CAST(RDVHardwareEncryption0 AS NVARCHAR), '') + ';' END + CASE RDVHideRecoveryPage0 WHEN '' THEN '' ELSE 'RDVHideRecoveryPage' + ' = ' + COALESCE(CAST(RDVHideRecoveryPage0 AS NVARCHAR), '') + ';' END + CASE RDVManageDRA0 WHEN '' THEN '' ELSE 'RDVManageDRA' + ' = ' + COALESCE(CAST(RDVManageDRA0 AS NVARCHAR), '') + ';' END + CASE RDVNoBitLockerToGoReader0 WHEN '' THEN '' ELSE 'RDVNoBitLockerToGoReader' + ' = ' + COALESCE(CAST(RDVNoBitLockerToGoReader0 AS NVARCHAR), '') + ';' END + CASE RDVPassphrase0 WHEN '' THEN '' ELSE 'RDVPassphrase' + ' = ' + COALESCE(CAST(RDVPassphrase0 AS NVARCHAR), '') + ';' END + CASE RDVPassphraseComplexity0 WHEN '' THEN '' ELSE 'RDVPassphraseComplexity' + ' = ' + COALESCE(CAST(RDVPassphraseComplexity0 AS NVARCHAR), '') + ';' END + CASE RDVPassphraseLength0 WHEN '' THEN '' ELSE 'RDVPassphraseLength' + ' = ' + COALESCE(CAST(RDVPassphraseLength0 AS NVARCHAR), '') + ';' END + CASE RDVRecovery0 WHEN '' THEN '' ELSE 'RDVRecovery' + ' = ' + COALESCE(CAST(RDVRecovery0 AS NVARCHAR), '') + ';' END + CASE RDVRecoveryKey0 WHEN '' THEN '' ELSE 'RDVRecoveryKey' + ' = ' + COALESCE(CAST(RDVRecoveryKey0 AS NVARCHAR), '') + ';' END + CASE RDVRecoveryPassword0 WHEN '' THEN '' ELSE 'RDVRecoveryPassword' + ' = ' + COALESCE(CAST(RDVRecoveryPassword0 AS NVARCHAR), '') + ';' END + CASE RDVRequireActiveDirectoryBac0 WHEN '' THEN '' ELSE 'RDVRequireActiveDirectoryBackup' + ' = ' + COALESCE(CAST(RDVRequireActiveDirectoryBac0 AS NVARCHAR), '') + ';' END + CASE RDVRestrictHardwareEncryptio0 WHEN '' THEN '' ELSE 'RDVRestrictHardwareEncryptionAlgorithms' + ' = ' + COALESCE(CAST(RDVRestrictHardwareEncryptio0 AS NVARCHAR), '') + ';' END FROM v_GS_CUSTOM_BITLOCKER_POLICY0 WHERE ResourceID = BitLocker.ResourceID ) , IsVolumeInitializedForProtection = ( CASE BitLocker.IsVolumeInitializedForProtec0 WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' END ) , Volume = BitLocker.DriveLetter0 , ProtectionStatus = ( CASE BitLocker.ProtectionStatus0 WHEN 0 THEN 'OFF' WHEN 1 THEN 'ON' WHEN 2 THEN 'UNKNOWN' END ) , ConversionStatus = ( CASE BitLocker.ConversionStatus0 WHEN 0 THEN 'FullyDecrypted' WHEN 1 THEN 'FullyEncrypted' WHEN 2 THEN 'EncryptionInProgress' WHEN 3 THEN 'DecryptionInProgress' WHEN 4 THEN 'EncryptionPaused' WHEN 5 THEN 'DecryptionPaused' END ) , EncryptionMethod = ( CASE BitLocker.EncryptionMethod0 WHEN 0 THEN 'None' WHEN 1 THEN 'AES_128_WITH_DIFFUSER' WHEN 2 THEN 'AES_256_WITH_DIFFUSER' WHEN 3 THEN 'AES_128' WHEN 4 THEN 'AES_256' WHEN 5 THEN 'HARDWARE_ENCRYPTION' WHEN 6 THEN 'XTS_AES_128' WHEN 7 THEN 'XTS_AES_256' WHEN -1 THEN 'UNKNOWN' END ) , VolumeType = ( CASE BitLocker.VolumeType0 WHEN 0 THEN 'OSVolume' WHEN 1 THEN 'FixedDataVolume' WHEN 2 THEN 'PortableDataVolume' WHEN 3 THEN 'VirtualDataVolume' END ) , DeviceID = ( SELECT SUBSTRING ( BitLocker.DeviceID0, CHARINDEX ('{', BitLocker.DeviceID0) + LEN ('{'), CHARINDEX ('}', BitLocker.DeviceID0) - CHARINDEX ('{', BitLocker.DeviceID0) - LEN ('{') ) ) FROM fn_rbac_FullCollectionMembership(@UserSIDs) AS CollectionMembers LEFT JOIN fn_rbac_R_System(@UserSIDs) AS System ON System.ResourceID = CollectionMembers.ResourceID LEFT JOIN fn_rbac_GS_COMPUTER_SYSTEM(@UserSIDs) AS ComputerSystem ON ComputerSystem.ResourceID = CollectionMembers.ResourceID LEFT JOIN fn_rbac_GS_OPERATING_SYSTEM(@UserSIDs) OperatingSystem ON OperatingSystem.ResourceID = CollectionMembers.ResourceID LEFT JOIN fn_rbac_CombinedDeviceResources(@UserSIDs) AS CombinedResources ON CombinedResources.MachineID = CollectionMembers.ResourceID LEFT JOIN fn_rbac_GS_COMPUTER_SYSTEM_PRODUCT(@UserSIDs) AS ComputerProduct ON ComputerProduct.ResourceID = CollectionMembers.ResourceID LEFT JOIN fn_rbac_GS_TPM (@UserSIDs) Tpm on Tpm.ResourceID = CollectionMembers.ResourceID LEFT JOIN dbo.v_GS_CUSTOM_ENCRYPTABLE_VOLUME_EXT0 AS BitLocker ON BitLocker.ResourceID = CollectionMembers.ResourceID LEFT JOIN dbo.v_GS_CUSTOM_BITLOCKER_POLICY0 AS BitLockerPolicy ON BitLockerPolicy.ResourceID = CollectionMembers.ResourceID WHERE CollectionMembers.CollectionID = @CollectionID AND ComputerSystem.Model0 NOT LIKE ( CASE @ExcludeVirtualMachines WHEN 'YES' THEN '%Virtual%' ELSE '' END ) GROUP BY ComputerSystem.Name0 , ComputerSystem.Manufacturer0 , ComputerSystem.Model0 , System.Build01 , System.OSBranch01 , CombinedResources.DeviceOS , ComputerProduct.Version0 , OperatingSystem.Caption0 , OperatingSystem.Version0 , OperatingSystem.CSDVersion0 , TPM.ManufacturerId0 , TPM.ManufacturerVersion0 , TPM.PhysicalPresenceVersionInfo0 , TPM.SpecVersion0 , BitLocker.ResourceID , BitLocker.IsVolumeInitializedForProtec0 , BitLocker.DriveLetter0 , BitLocker.ProtectionStatus0 , BitLocker.ConversionStatus0 , BitLocker.EncryptionMethod0 , BitLocker.VolumeType0 , BitLocker.DeviceID0 /*##=============================================*/ /*## END QUERY BODY */ /*##=============================================*/ true DeviceName System.String BitlockerPolicy System.String Manufacturer System.String Model System.String OperatingSystem System.String ManufacturerVersion System.String PhysicalPresenceVersion System.String SpecVersion System.String Volume System.String IsVolumeInitializedForProtection System.String ProtectionStatus System.String ConversionStatus System.String EncryptionMethod System.String VolumeType System.String DeviceID System.String BuildNumber System.String ManufacturerID System.Int32 DataSource =Parameters!UserTokenSIDs.Value /* Get UserSID */ SELECT dbo.fn_rbac_GetAdminIDsfromUserSIDs (@UserTokenSIDs) AS UserSIDs true UserSIDs System.String DataSource =Parameters!UserSIDs.Value /* Get Device Collections */ SELECT CollectionID, Name FROM dbo.fn_rbac_Collection(@UserSIDs) WHERE CollectionType = 2 ORDER BY Name; true CollectionID System.String Name System.String DataSource =Parameters!ReportName.Value /* ReportInfo Dataset */ SELECT DISTINCT Description , Path = REPLACE(Path, Name, '') FROM ReportServer.dbo.Catalog WHERE Name = @ReportName true Description System.String Path System.String 34.11198mm 32.01458mm 35.2425mm 38.20638mm 34.90492mm 73.28958mm 19.31458mm 6.80433mm true =Fields!IsVolumeInitializedForProtection.Value true =SrsResources.Localization.GetString("Initialized For Protection", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt true =Fields!ProtectionStatus.Value true =SrsResources.Localization.GetString("Protection Status", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt true =Fields!ConversionStatus.Value true =SrsResources.Localization.GetString("Conversion Status", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt true =Fields!EncryptionMethod.Value true =SrsResources.Localization.GetString("Encryption Method", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt true =Fields!VolumeType.Value true =SrsResources.Localization.GetString("Volume Type", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt true =Fields!DeviceID.Value true =SrsResources.Localization.GetString("DeviceID", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt true =Sum(Count(Fields!Volume.Value)) DeviceName true =SrsResources.Localization.GetString("Total", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 6mm true true =Fields!IsVolumeInitializedForProtection.Value #e6eefc Middle 2pt 2pt 2pt 2pt true true =Fields!ProtectionStatus.Value #e6eefc Middle 2pt 2pt 2pt 2pt true true =Fields!ConversionStatus.Value #e6eefc Middle 2pt 2pt 2pt 2pt true true =Fields!EncryptionMethod.Value #e6eefc Middle 2pt 2pt 2pt 2pt true true =Fields!VolumeType.Value #e6eefc Middle 2pt 2pt 2pt 2pt true true =Fields!DeviceID.Value #e6eefc Middle 2pt 2pt 2pt 2pt true true Textbox27 #e6eefc Middle 2pt 2pt 2pt 2pt 6.35mm true true SkyBlue Top 2pt 2pt 2pt 2pt true true SkyBlue Top 2pt 2pt 2pt 2pt true true SkyBlue Top 2pt 2pt 2pt 2pt true true SkyBlue Top 2pt 2pt 2pt 2pt true true SkyBlue Top 2pt 2pt 2pt 2pt true true SkyBlue Top 2pt 2pt 2pt 2pt true true =Count(Fields!Volume.Value) SkyBlue Top 2pt 2pt 2pt 2pt 6.80433mm true true #7292cc Middle 2pt 2pt 2pt 2pt true true #7292cc Middle 2pt 2pt 2pt 2pt true true #7292cc Middle 2pt 2pt 2pt 2pt true true #7292cc Middle 2pt 2pt 2pt 2pt true true #7292cc Middle 2pt 2pt 2pt 2pt true true #7292cc Middle 2pt 2pt 2pt 2pt true true =CountDistinct(Fields!DeviceName.Value) #7292cc Middle 2pt 2pt 2pt 2pt 37.66017mm true =Fields!DeviceName.Value DeviceName true =SrsResources.Localization.GetString("DeviceName", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 34.54945mm true true =SrsResources.Localization.GetString("BitLocker Policy", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 34.78958mm true =Fields!Manufacturer.Value DeviceName true =SrsResources.Localization.GetString("Manufacturer", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 49.19322mm true =Fields!Model.Value DeviceName true =SrsResources.Localization.GetString("Model", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 48.86409mm true =Fields!OperatingSystem.Value DeviceName true =SrsResources.Localization.GetString("OperatingSystem", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 35.58333mm true =Fields!ManufacturerVersion.Value DeviceName true =SrsResources.Localization.GetString("Manufacturer Version", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 29.62708mm true =Fields!PhysicalPresenceVersion.Value DeviceName true =SrsResources.Localization.GetString("Physical Presence Version", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 29.49792mm true =Fields!PhysicalPresenceVersion.Value DeviceName true =SrsResources.Localization.GetString("Spec Version", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 25mm true =Fields!Volume.Value true =SrsResources.Localization.GetString("Volume", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt =Fields!DeviceName.Value =Fields!Manufacturer.Value =Fields!Model.Value =Fields!OperatingSystem.Value =Fields!PhysicalPresenceVersion.Value =Fields!SpecVersion.Value =Fields!DeviceName.Value =Fields!Volume.Value Descending =Fields!IsVolumeInitializedForProtection.Value =Fields!ProtectionStatus.Value =Fields!ConversionStatus.Value =Fields!EncryptionMethod.Value =Fields!VolumeType.Value =Fields!DeviceID.Value 37.66017mm true true =Fields!DeviceName.Value SkyBlue Top 2pt 2pt 2pt 2pt 34.54945mm true true =SrsResources.Localization.GetString("BitLocker Policy", User!Language) =(Replace(Parameters!ReportPath.Value, Parameters!ReportName.Value, "") & "SR Display Formatted Text") BitLocker Policy =Fields!BitlockerPolicy.Value #e6eefc Middle 2pt 2pt 2pt 2pt 34.78958mm true true =Fields!Manufacturer.Value #e6eefc Middle 2pt 2pt 2pt 2pt 49.19322mm true true =Fields!Model.Value #e6eefc Middle 2pt 2pt 2pt 2pt 48.86409mm true true =Fields!OperatingSystem.Value #e6eefc Middle 2pt 2pt 2pt 2pt 35.58333mm true true =Fields!ManufacturerVersion.Value #e6eefc Middle 2pt 2pt 2pt 2pt 29.62708mm true true =Fields!PhysicalPresenceVersion.Value #e6eefc Middle 2pt 2pt 2pt 2pt 29.49792mm true true =Fields!SpecVersion.Value #e6eefc Middle 2pt 2pt 2pt 2pt =Fields!Volume.Value 25mm true true =Fields!Volume.Value #e6eefc Middle 2pt 2pt 2pt 2pt 34.54945mm true true SkyBlue Top 2pt 2pt 2pt 2pt 34.78958mm true true SkyBlue Top 2pt 2pt 2pt 2pt 49.19322mm true true SkyBlue Top 2pt 2pt 2pt 2pt 48.86409mm true true SkyBlue Top 2pt 2pt 2pt 2pt 35.58333mm true true SkyBlue Top 2pt 2pt 2pt 2pt 29.62708mm true true SkyBlue Top 2pt 2pt 2pt 2pt 29.49792mm true true SkyBlue Top 2pt 2pt 2pt 2pt 25mm true true SkyBlue Top 2pt 2pt 2pt 2pt 37.66017mm true true Total #7292cc Middle 2pt 2pt 2pt 2pt 34.54945mm true true #7292cc Middle 2pt 2pt 2pt 2pt 34.78958mm true true #7292cc Middle 2pt 2pt 2pt 2pt 49.19322mm true true #7292cc Middle 2pt 2pt 2pt 2pt 48.86409mm true true #7292cc Middle 2pt 2pt 2pt 2pt 35.58333mm true true #7292cc Middle 2pt 2pt 2pt 2pt 29.62708mm true true #7292cc Middle 2pt 2pt 2pt 2pt 29.49792mm true true #7292cc Middle 2pt 2pt 2pt 2pt 25mm true true #7292cc Middle 2pt 2pt 2pt 2pt BitLockerData 13.71357mm 0.9525mm 25.95866mm 591.84937mm 1.47018in 8.34071in 0.4in true true =SrsResources.Localization.GetString("Description", User!Language) 2pt 2pt 2pt 2pt true true =SrsResources.Localization.GetString(Fields!Description.Value, User!Language) 5pt 2pt 2pt 2pt ReportInfo 0.03157in 0.127cm 0.4in 9.81089in 1 0.45796in 0.0375in 0in 23.30116in 2 1.5pt White 1.5pt White 1.5pt White 1.5pt White 1.5pt 5.24766cm #6e7b8b 59.43894cm 2.5333cm true true 0.6007in 0.0375in 0in 23.30116in 0.75pt White 0.75pt White 0.75pt White 0.75pt White 0.75pt true true =SrsResources.Localization.GetString(Globals!ReportName, User!Language) 1.63513cm 0.12701cm 0.89817cm 24.91965cm 1 Middle 2pt 2pt 2pt 2pt #6e7b8b 0.82022cm true true true true ="Page: " + Globals!PageNumber.ToString() + "of " + Globals!TotalPages.ToString() 0.03528cm 0.03175cm 0.63492cm 2.79292cm #6e7b8b 29.7cm 21cm 2.54cm 2.54cm 2.54cm 2.54cm 1.27cm