aktueller stand

This commit is contained in:
Meik
2026-01-28 12:24:39 +01:00
parent 8b7c4ce480
commit 82984f769b
48 changed files with 1122 additions and 495 deletions

View File

@@ -30,7 +30,7 @@ namespace C4IT.DataHistoryProvider
public const string constConnectorName = "MS Active Directory, Entra ID & Intune connector";
public const string constLicenseId = "B2D48023-56E8-44D5-AB77-BE1DCF4EA4EB";
public const string constMsGraphUserList = "users?$top={0}&$select=id,displayName,onPremisesSyncEnabled,onPremisesSecurityIdentifier&$filter=onPremisesSyncEnabled eq true";
public const string constMsGraphUserList = "users?$top={0}&$count=true&$select=id,displayName,onPremisesSyncEnabled,onPremisesSecurityIdentifier&$filter=onPremisesSyncEnabled eq true";
public const string constMsGraphUserEntry = "users/{0}";
public const string constMsGraphUserDeviceEntry = "users/{0}";
public const int constMsGraphUserPaging = 100;
@@ -42,7 +42,7 @@ namespace C4IT.DataHistoryProvider
public const string constMsGraphManagedDeviceEntry = "deviceManagement/managedDevices/{0}?$select=id,complianceState,userPrincipalName,userDisplayName,managementState,lastSyncDateTime";
public const string constMsGraphManagedDeviceAllEntry = "deviceManagement/managedDevices/{0}";
public const string constMsGraphManagedDeviceSyncDevice = "deviceManagement/managedDevices/{0}/syncDevice";
public const string constMsGraphManagedDeviceDetectedApps = "deviceManagement/managedDevices/{0}?$select=id&$expand=detectedApps";
public const string constMsGraphManagedDeviceDetectedApps = "deviceManagement/managedDevices/{0}/detectedApps";
public const string constMsGraphManagedDeviceCount = "users/{0}/managedDevices?$select=operatingSystem";
public const string constMsGraphManagedUserDeviceEntry = "users/{0}/managedDevices?$select=id,deviceName,model,operatingSystem,manufacturer,serialNumber";
public const string constMsGraphManagedDeviceChangeManagedStatus = "deviceManagement/managedDevices/{0}/{1}";
@@ -102,7 +102,7 @@ namespace C4IT.DataHistoryProvider
}
public cDataHistoryCollectorActiveDirectory(cDataHistoryCollector Collector)
: base(Collector, new List<eDataHistoryOrigin>() { eDataHistoryOrigin.ActiveDirectory, eDataHistoryOrigin.Intune }, constConnectorName, constLicenseId)
: base(Collector, new List<enumDataHistoryOrigin>() { enumDataHistoryOrigin.ActiveDirectory, enumDataHistoryOrigin.Intune }, constConnectorName, constLicenseId)
{
_collector = Collector;
}
@@ -1289,7 +1289,7 @@ namespace C4IT.DataHistoryProvider
{
foreach (var DataCluster in Collector.ClusterConfig.Clusters.Values)
{
if (DataCluster.Origin != eDataHistoryOrigin.ActiveDirectory || DataCluster.InformationClass != InformationClass)
if (DataCluster.Origin != enumDataHistoryOrigin.ActiveDirectory || DataCluster.InformationClass != InformationClass)
continue;
foreach (var Table in DataCluster.Tables.Values)
@@ -1544,11 +1544,15 @@ namespace C4IT.DataHistoryProvider
}
var strUrl = string.Format(constMsGraphUserList, constMsGraphUserPaging);
var Result = await MsGraph.RequestListAsync(strUrl, UseBeta: false, retryForbidden: false, loadPaged: true);
if (!string.IsNullOrEmpty(Tenant.ScanFilter))
strUrl += " and (" + Tenant.ScanFilter + ")";
var Result = await MsGraph.RequestListAsync(strUrl, UseBeta: false, retryForbidden: false, loadPaged: true, ConsistencyLevelEventual: Tenant.UseConsistencyLevelEventual);
var Count = 0;
var Updated = 0;
while (Result != null == Result.Count > 0)
while (Result != null && Result.Count > 0)
{
foreach (var Entry in Result)
{
@@ -2073,9 +2077,9 @@ namespace C4IT.DataHistoryProvider
try
{
var bDeviceExists = Tables.Exists(v => v.Name == constTableNameIntuneDeviceDetails && v.ParentCluster?.Origin == eDataHistoryOrigin.Intune);
var bUserDeviceExists = Tables.Exists(v => v.Name == constTableNameIntuneUserDeviceCount && v.ParentCluster?.Origin == eDataHistoryOrigin.Intune);
var bMobileDeviceExists = Tables.Exists(v => v.Name == constTableNameIntuneMobileDeviceDetails && v.ParentCluster?.Origin == eDataHistoryOrigin.Intune);
var bDeviceExists = Tables.Exists(v => v.Name == constTableNameIntuneDeviceDetails && v.ParentCluster?.Origin == enumDataHistoryOrigin.Intune);
var bUserDeviceExists = Tables.Exists(v => v.Name == constTableNameIntuneUserDeviceCount && v.ParentCluster?.Origin == enumDataHistoryOrigin.Intune);
var bMobileDeviceExists = Tables.Exists(v => v.Name == constTableNameIntuneMobileDeviceDetails && v.ParentCluster?.Origin == enumDataHistoryOrigin.Intune);
if (!Identities.TryGetValue(enumFasdInformationClass.Computer, out var computer) && computer?.intuneId != Guid.Empty)
@@ -2101,6 +2105,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameIntuneDeviceDetails,
InformationClass = enumFasdInformationClass.Computer,
Origin = enumDataHistoryOrigin.Intune,
IsIncomplete = true
});
@@ -2115,6 +2120,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameIntuneMobileDeviceDetails,
InformationClass = enumFasdInformationClass.MobileDevice,
Origin = enumDataHistoryOrigin.Intune,
IsIncomplete = true
});
@@ -2129,6 +2135,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameIntuneUserDeviceCount,
InformationClass = enumFasdInformationClass.User,
Origin = enumDataHistoryOrigin.Intune,
IsIncomplete = true
});
}
@@ -2168,7 +2175,7 @@ namespace C4IT.DataHistoryProvider
try
{
var bUserDeviceDetailExists = Tables.Exists(v => v.Name == constTableNameIntuneUserDeviceCountDetail && v.ParentCluster?.Origin == eDataHistoryOrigin.Intune);
var bUserDeviceDetailExists = Tables.Exists(v => v.Name == constTableNameIntuneUserDeviceCountDetail && v.ParentCluster?.Origin == enumDataHistoryOrigin.Intune);
if (!Identities.TryGetValue(enumFasdInformationClass.User, out var userIds))
{
@@ -2238,6 +2245,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameIntuneDeviceDetails,
InformationClass = enumFasdInformationClass.Computer,
Origin = enumDataHistoryOrigin.Intune,
IsStatic = true,
TableType = eDataHistoryTableType.Static
};
@@ -2272,7 +2280,7 @@ namespace C4IT.DataHistoryProvider
objVal = ConvertToF4sdType(objVal, colInfo.ValueType);
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn() { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn(retVal) { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
retVal.Columns[colInfo.Name] = _col;
}
catch { }
@@ -2325,6 +2333,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameIntuneUserDeviceCount,
InformationClass = enumFasdInformationClass.User,
Origin = enumDataHistoryOrigin.Intune,
IsStatic = true,
TableType = eDataHistoryTableType.Static
};
@@ -2385,7 +2394,7 @@ namespace C4IT.DataHistoryProvider
objVal = ConvertToF4sdType(objVal, colInfo.ValueType);
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn() { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn(retVal) { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
retVal.Columns[colInfo.Name] = _col;
}
catch { }
@@ -2598,6 +2607,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameIntuneMobileDeviceDetails,
InformationClass = enumFasdInformationClass.MobileDevice,
Origin = enumDataHistoryOrigin.Intune,
IsStatic = true,
TableType = eDataHistoryTableType.Static
};
@@ -2632,7 +2642,7 @@ namespace C4IT.DataHistoryProvider
objVal = ConvertToF4sdType(objVal, colInfo.ValueType);
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn() { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn(retVal) { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
retVal.Columns[colInfo.Name] = _col;
}
catch { }
@@ -2831,7 +2841,7 @@ namespace C4IT.DataHistoryProvider
public async Task<dynamic> GetManagedApps(List<cF4sdIdentityEntry> identities, cF4sdWebRequestInfo requestInfo, CancellationToken Token)
{
var Ids = await Collector.getConntectorIds(identities, Token, requestInfo, 1);
if (!Ids.TryGetValue(enumFasdInformationClass.User, out var _ids))
if (!Ids.TryGetValue(enumFasdInformationClass.Computer, out var _ids))
return null;
var strUrl = string.Format(constMsGraphManagedDeviceDetectedApps, _ids.intuneId);
@@ -2842,7 +2852,7 @@ namespace C4IT.DataHistoryProvider
var Result = await MsGraph.RequestAsync(strUrl, UseBeta: true, retryForbidden: false);
if (Result != null)
{
var ResultJson = Result.Result["detectedApps"] as JArray;
var ResultJson = Result.Result["value"] as JArray;
if (ResultJson != null)
{
Collector.DoProcessUiMessage(3, $" properties of selected '{ResultJson}' with {ResultJson.Count} properties could be read.");
@@ -3417,7 +3427,7 @@ namespace C4IT.DataHistoryProvider
foreach (var DataCluster in Collector.ClusterConfig.Clusters.Values)
{
if (DataCluster.Origin != eDataHistoryOrigin.ActiveDirectory || DataCluster.InformationClass != InformationClass)
if (DataCluster.Origin != enumDataHistoryOrigin.ActiveDirectory || DataCluster.InformationClass != InformationClass)
continue;
foreach (var Table in DataCluster.Tables.Values)
@@ -3441,7 +3451,7 @@ namespace C4IT.DataHistoryProvider
public override bool CheckIfLateDelivery(cDataHistoryConfigTable Table)
{
if (Table?.ParentCluster?.Origin == eDataHistoryOrigin.Intune)
if (Table?.ParentCluster?.Origin == enumDataHistoryOrigin.Intune)
return true;
return false;
}