示例#1
0
        public async System.Threading.Tasks.Task <FileResult> DownloadDetectionScript(string Id)
        {
            GraphIntune graphIntune = new GraphIntune(null);
            Win32LobApp win32LobApp = await graphIntune.GetWin32MobileAppAsync(Id);

            Win32LobAppPowerShellScriptDetection script = await graphIntune.GetWin32MobileAppPowerShellDetectionRuleAsync(Id);

            string fileName = $"{FilenameHelper.ProcessFileName(win32LobApp.DisplayName)}_detect.ps1";

            return(File(Convert.FromBase64String(script.ScriptContent), "text/plain", fileName));
        }
示例#2
0
        public async Task <ActionResult> DownloadDetectionScript(string Id)
        {
            try
            {
                GraphIntune graphIntune = new GraphIntune(null);
                Win32LobApp win32LobApp = await graphIntune.GetWin32MobileAppAsync(Id);

                Win32LobAppPowerShellScriptDetection script = await graphIntune.GetWin32MobileAppPowerShellDetectionRuleAsync(Id);

                string fileName = $"{FilenameHelper.ProcessFileName(win32LobApp.DisplayName)}_detect.ps1";
                return(File(Convert.FromBase64String(script.ScriptContent), "text/plain", fileName));
            }
            catch (ServiceException e)
            {
                Flash(e.Error.Message);
                return(RedirectToAction("Index", "Home"));
            }
        }
        public async Task <ActionResult> DownloadAsync(string clientId)
        {
            GraphIntune    graphIntune    = new GraphIntune(clientId);
            SignalRMessage signalRMessage = new SignalRMessage(clientId);

            try
            {
                AdministrativeTemplateExport templateExport = new AdministrativeTemplateExport(graphIntune);

                var deviceCompliancePolicies = await graphIntune.GetDeviceCompliancePoliciesAsync();

                var deviceConfigurations = await graphIntune.GetDeviceConfigurationsAsync();

                var managedAppProtection = await graphIntune.GetManagedAppProtectionAsync();

                var managedAppConfiguration = await graphIntune.GetManagedDeviceMobileAppConfigurationsAsync();

                var windowsAutopilotDeploymentProfiles = await graphIntune.GetWindowsAutopilotDeploymentProfiles();

                var deviceManagementScripts = await graphIntune.GetDeviceManagementScriptsAsync();

                var deviceEnrollmentConfig = await graphIntune.GetDeviceEnrollmentConfigurationsAsync();

                var scopeTags = await graphIntune.GetRoleScopeTagsAsync();

                var roleAssignments = await graphIntune.GetRoleAssignmentsAsync();

                List <JObject> administrativeTemplates = await templateExport.GetExportableGroupPolicies();


                using (MemoryStream ms = new MemoryStream())
                {
                    using (var archive = new ZipArchive(ms, ZipArchiveMode.Create, true))
                    {
                        foreach (DeviceEnrollmentConfiguration item in deviceEnrollmentConfig)
                        {
                            byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                            var    zipArchiveEntry = archive.CreateEntry("DeviceEnrollmentConfiguration\\" + item.Id + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }

                        foreach (JObject item in administrativeTemplates)
                        {
                            byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                            string fileName        = FilenameHelper.ProcessFileName((string)item.SelectToken("displayName"));
                            var    zipArchiveEntry = archive.CreateEntry("DeviceConfiguration\\" + fileName + "_" + ((string)item.SelectToken("id")).Substring(0, 8) + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }

                        foreach (DeviceConfiguration item in deviceConfigurations)
                        {
                            byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                            string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                            var    zipArchiveEntry = archive.CreateEntry("DeviceConfiguration\\" + fileName + "_" + item.Id.Substring(0, 8) + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }

                        foreach (DeviceCompliancePolicy item in deviceCompliancePolicies)
                        {
                            byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                            string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                            var    zipArchiveEntry = archive.CreateEntry("DeviceCompliancePolicy\\" + fileName + "_" + item.Id.Substring(0, 8) + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }

                        foreach (ManagedDeviceMobileAppConfiguration item in managedAppConfiguration)
                        {
                            byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                            string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                            var    zipArchiveEntry = archive.CreateEntry("ManagedAppPolicy\\" + fileName + "_" + item.Id.Substring(0, 8) + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }

                        foreach (ManagedAppPolicy item in managedAppProtection)
                        {
                            if (item.ODataType.Equals("#microsoft.graph.iosManagedAppProtection") || item.ODataType.Equals("#microsoft.graph.androidManagedAppProtection"))
                            {
                                var assignedApps = await graphIntune.GetManagedAppProtectionAssignmentAsync(item.Id);

                                // Create json object from mam policy
                                JObject appProtectionPolicy             = JObject.FromObject(item);
                                JArray  appProtectionPolicyAssignedApps = JArray.FromObject(assignedApps);

                                // Add assigned apps to export
                                appProtectionPolicy.Add("assignedApps", appProtectionPolicyAssignedApps);

                                byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(appProtectionPolicy, Formatting.Indented));
                                string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                                var    zipArchiveEntry = archive.CreateEntry("ManagedAppPolicy\\" + fileName + "_" + item.Id.Substring(0, 8) + ".json", CompressionLevel.Fastest);
                                using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                            }
                            else if (item.ODataType.Equals("#microsoft.graph.targetedManagedAppConfiguration"))
                            {
                                var assignedApps = await graphIntune.GetTargetedManagedAppConfigurationsAssignedAppsAsync(item.Id);

                                // Create json object from mam policy
                                JObject appProtectionPolicy             = JObject.FromObject(item);
                                JArray  appProtectionPolicyAssignedApps = JArray.FromObject(assignedApps);

                                // Add assigned apps to export
                                appProtectionPolicy.Add("assignedApps", appProtectionPolicyAssignedApps);

                                byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(appProtectionPolicy, Formatting.Indented));
                                string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                                var    zipArchiveEntry = archive.CreateEntry("ManagedAppPolicy\\" + "ManagedAppConfiguration_" + fileName + "_" + item.Id.Substring(0, 8) + ".json", CompressionLevel.Fastest);
                                using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                            }
                            else
                            {
                                byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                                string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                                var    zipArchiveEntry = archive.CreateEntry("ManagedAppPolicy\\" + fileName + "_" + item.Id.Substring(0, 8) + ".json", CompressionLevel.Fastest);
                                using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                            }
                        }

                        foreach (WindowsAutopilotDeploymentProfile item in windowsAutopilotDeploymentProfiles)
                        {
                            byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                            string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                            var    zipArchiveEntry = archive.CreateEntry("WindowsAutopilotDeploymentProfile\\" + fileName + "_" + item.Id.Substring(0, 8) + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }

                        foreach (DeviceManagementScript item in deviceManagementScripts)
                        {
                            string fixedItem = await graphIntune.GetDeviceManagementScriptRawAsync(item.Id);

                            byte[] temp            = Encoding.UTF8.GetBytes(fixedItem);
                            string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                            var    zipArchiveEntry = archive.CreateEntry("DeviceManagementScript\\" + fileName + "_" + item.Id.Substring(0, 8) + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }

                        foreach (RoleScopeTag item in scopeTags)
                        {
                            byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                            string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                            var    zipArchiveEntry = archive.CreateEntry("RoleScopeTags\\" + fileName + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }

                        foreach (DeviceAndAppManagementRoleAssignment item in roleAssignments)
                        {
                            byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                            string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                            var    zipArchiveEntry = archive.CreateEntry("RoleAssignments\\" + fileName + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }
                    }

                    string domainName = await GraphHelper.GetDefaultDomain(clientId);

                    return(File(ms.ToArray(), "application/zip", "IntuneConfig_" + domainName + ".zip"));
                }
            }
            catch (Exception e)
            {
                signalRMessage.sendMessage($"Error {e.Message}");
            }
            return(new HttpStatusCodeResult(204));
        }
示例#4
0
        public async System.Threading.Tasks.Task <FileResult> DownloadAsync(string clientId)
        {
            var DeviceCompliancePolicies = await GraphHelper.GetDeviceCompliancePoliciesAsync(clientId);

            var DeviceConfigurations = await GraphHelper.GetDeviceConfigurationsAsync(clientId);

            var ManagedAppProtection = await GraphHelper.GetManagedAppProtectionAsync();

            var WindowsAutopilotDeploymentProfiles = await GraphHelper.GetWindowsAutopilotDeploymentProfiles(clientId);

            var DeviceManagementScripts = await GraphHelper.GetDeviceManagementScriptsAsync(clientId);

            var DeviceEnrollmentConfig = await GraphHelper.GetDeviceEnrollmentConfigurationsAsync(clientId);

            var ScopeTags = await GraphHelper.GetRoleScopeTags(clientId);

            var RoleAssignments = await GraphHelper.GetRoleAssignments(clientId);

            using (MemoryStream ms = new MemoryStream())
            {
                using (var archive = new ZipArchive(ms, ZipArchiveMode.Create, true))
                {
                    foreach (DeviceEnrollmentConfiguration item in DeviceEnrollmentConfig)
                    {
                        byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                        var    zipArchiveEntry = archive.CreateEntry("DeviceEnrollmentConfiguration\\" + item.Id + ".json", CompressionLevel.Fastest);
                        using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                    }

                    foreach (DeviceConfiguration item in DeviceConfigurations)
                    {
                        byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                        string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                        var    zipArchiveEntry = archive.CreateEntry("DeviceConfiguration\\" + fileName + ".json", CompressionLevel.Fastest);
                        using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                    }

                    foreach (DeviceCompliancePolicy item in DeviceCompliancePolicies)
                    {
                        byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                        string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                        var    zipArchiveEntry = archive.CreateEntry("DeviceCompliancePolicy\\" + fileName + ".json", CompressionLevel.Fastest);
                        using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                    }

                    foreach (ManagedAppPolicy item in ManagedAppProtection)
                    {
                        if (item.ODataType.Equals("#microsoft.graph.iosManagedAppProtection") || item.ODataType.Equals("#microsoft.graph.androidManagedAppProtection"))
                        {
                            var assignedApps = await GraphHelper.GetManagedAppProtectionAssignmentAsync(item.Id);

                            // Create json object from mam policy
                            JObject appProtectionPolicy             = JObject.FromObject(item);
                            JArray  appProtectionPolicyAssignedApps = JArray.FromObject(assignedApps);

                            // Add assigned apps to export
                            appProtectionPolicy.Add("assignedApps", appProtectionPolicyAssignedApps);

                            byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(appProtectionPolicy, Formatting.Indented));
                            string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                            var    zipArchiveEntry = archive.CreateEntry("ManagedAppPolicy\\" + fileName + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }
                        else if (item.ODataType.Equals("#microsoft.graph.targetedManagedAppConfiguration"))
                        {
                            var assignedApps = await GraphHelper.GetTargetedManagedAppConfigurationsAssignedAppsAsync(item.Id, clientId);

                            // Create json object from mam policy
                            JObject appProtectionPolicy             = JObject.FromObject(item);
                            JArray  appProtectionPolicyAssignedApps = JArray.FromObject(assignedApps);

                            // Add assigned apps to export
                            appProtectionPolicy.Add("assignedApps", appProtectionPolicyAssignedApps);

                            byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(appProtectionPolicy, Formatting.Indented));
                            string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                            var    zipArchiveEntry = archive.CreateEntry("ManagedAppPolicy\\" + "ManagedAppConfiguration_" + fileName + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }
                        else
                        {
                            byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                            string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                            var    zipArchiveEntry = archive.CreateEntry("ManagedAppPolicy\\" + fileName + ".json", CompressionLevel.Fastest);
                            using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                        }
                    }

                    foreach (WindowsAutopilotDeploymentProfile item in WindowsAutopilotDeploymentProfiles)
                    {
                        byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                        string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                        var    zipArchiveEntry = archive.CreateEntry("WindowsAutopilotDeploymentProfile\\" + fileName + ".json", CompressionLevel.Fastest);
                        using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                    }

                    foreach (DeviceManagementScript item in DeviceManagementScripts)
                    {
                        string fixedItem = await GraphHelper.GetDeviceManagementScriptRawAsync(item.Id, clientId);

                        byte[] temp            = Encoding.UTF8.GetBytes(fixedItem);
                        string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                        var    zipArchiveEntry = archive.CreateEntry("DeviceManagementScript\\" + fileName + ".json", CompressionLevel.Fastest);
                        using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                    }

                    foreach (RoleScopeTag item in ScopeTags)
                    {
                        byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                        string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                        var    zipArchiveEntry = archive.CreateEntry("RoleScopeTags\\" + fileName + ".json", CompressionLevel.Fastest);
                        using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                    }

                    foreach (DeviceAndAppManagementRoleAssignment item in RoleAssignments)
                    {
                        byte[] temp            = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item, Formatting.Indented));
                        string fileName        = FilenameHelper.ProcessFileName(item.DisplayName);
                        var    zipArchiveEntry = archive.CreateEntry("RoleAssignments\\" + fileName + ".json", CompressionLevel.Fastest);
                        using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(temp, 0, temp.Length);
                    }
                }

                string domainName = await GraphHelper.GetDefaultDomain(clientId);

                return(File(ms.ToArray(), "application/zip", "IntuneConfig_" + domainName + ".zip"));
            }
        }