Example #1
0
 public static void ProcessProvisioningMode(IResultObject resultObject, bool mode)
 {
     try
     {
         ManagementClass clientaction = new ManagementClass(string.Format(@"\\{0}\root\{1}:{2}", resultObject["Name"].StringValue, "ccm", "SMS_Client"));
         object[]        methodArgs   = { "False" };
         clientaction.InvokeMethod("SetClientProvisioningMode", methodArgs);
         clientaction.Dispose();
     }
     catch (ManagementException ex)
     {
         ExceptionUtilities.TraceException(ex);
         SccmExceptionDialog.ShowDialog(SnapIn.Console, ex, "An error occured while invoking WMI method.");
     }
     catch (COMException ex)
     {
         ExceptionUtilities.TraceException(ex);
         SccmExceptionDialog.ShowDialog(SnapIn.Console, ex, "An error occured while connecting to host.");
     }
     catch (Exception ex)
     {
         ExceptionUtilities.TraceException(ex);
         SccmExceptionDialog.ShowDialog(SnapIn.Console, ex);
     }
 }
 private void RemoveCachedItems(ListView.SelectedListViewItemCollection items)
 {
     foreach (ListViewItem item in items)
     {
         try
         {
             // get the wmi object
             ManagementObject managementObject = (ManagementObject)item.Tag;
             // create location string
             string str  = (managementObject["Location"] as string).Replace(':', '$');
             string path = string.Format(@"\\{0}\{1}", PropertyManager["Name"].StringValue, str);
             // check if cached content exists and we have persmissions to remove it
             if (Directory.Exists(path) && Utility.CheckFolderPermissions(path, FileSystemRights.Delete))
             {
                 // delete folder
                 Directory.Delete(path, true);
                 // remove wmi object
                 managementObject.Delete();
             }
             else
             {
                 System.Windows.MessageBox.Show(string.Format("Cannot remove item: Access denied", items.Count), "Configuration Manager", MessageBoxButton.OK, MessageBoxImage.Hand);
             }
         }
         catch (Exception ex)
         {
             log.Error(string.Format("{0}: {1}", ex.GetType().Name, ex.Message));
             SccmExceptionDialog.ShowDialog(SnapIn.Console, ex);
         }
     }
 }
 private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             SccmExceptionDialog.ShowDialog(this, e.Error, "Error");
         }
         else
         {
             Initialized = true;
         }
     }
     finally
     {
         if (sender as SmsBackgroundWorker == smsBackgroundWorker)
         {
             smsBackgroundWorker.Dispose();
             smsBackgroundWorker = null;
             dataGridViewCollections.Sort(columnCollection, ListSortDirection.Ascending);
             UseWaitCursor   = false;
             labelCount.Text = dataGridViewCollections.Rows.Count.ToString();
         }
     }
 }
 private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             SccmExceptionDialog.ShowDialog(this, e.Error, "Error");
         }
         else
         {
             Initialized = true;
         }
     }
     finally
     {
         if (sender as SmsBackgroundWorker == backgroundWorker)
         {
             backgroundWorker.Dispose();
             backgroundWorker = null;
             UseWaitCursor    = false;
             dataGridViewUpdates.Sort(columnTitle, ListSortDirection.Ascending);
             Utility.UpdateDataGridViewColumnsSize(dataGridViewUpdates, columnTitle);
         }
     }
 }
 private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             using (SccmExceptionDialog sccmExceptionDialog = new SccmExceptionDialog(e.Error))
             {
                 sccmExceptionDialog.ShowDialog();
             }
         }
         else if (e.Cancelled)
         {
             ConnectionManagerBase.SmsTraceSource.TraceEvent(TraceEventType.Information, 1, "User canceled");
         }
         else
         {
             Initialized = true;
         }
     }
     finally
     {
         if (sender as SmsBackgroundWorker == backgroundWorker)
         {
             backgroundWorker.Dispose();
             backgroundWorker = null;
             dataGridViewApplications.Sort(columnName, ListSortDirection.Ascending);
             UseWaitCursor = false;
         }
     }
 }
Example #6
0
 private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             SccmExceptionDialog.ShowDialog(this, e.Error, "Error");
         }
         else
         {
             Initialized = true;
         }
     }
     finally
     {
         if (sender as SmsBackgroundWorker == backgroundWorker)
         {
             backgroundWorker.Dispose();
             backgroundWorker = null;
             UseWaitCursor    = false;
             listViewCollections.IsLoading = false;
             listViewCollections.UpdateColumnWidth(columnHeaderCollection);
         }
     }
 }
        private void ProgressWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            progressInformationDialog.Result = (bool)e.Result;
            valiadated = (bool)e.Result;
            progressInformationDialog.UpdateProgressValue(100);
            progressInformationDialog.CloseDialog();

            try
            {
                if (e.Error != null)
                {
                    using (SccmExceptionDialog sccmExceptionDialog = new SccmExceptionDialog(e.Error))
                    {
                        sccmExceptionDialog.ShowDialog();
                    }
                }
            }
            finally
            {
                if (sender as BackgroundWorker == progressWorker)
                {
                    progressWorker.Dispose();
                    progressWorker = null;
                    UseWaitCursor  = false;
                }
            }
        }
Example #8
0
 private void BackgroundWorkerQueryMachine_QueryProcessorCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             SccmExceptionDialog.ShowDialog(this, e.Error, "Error");
         }
         else if (e.Cancelled)
         {
             if (listViewSelectedResources.Items.Count > 0)
             {
                 listViewSelectedResources.Items[0].Selected = true;
                 listViewSelectedResources.Items[0].Focused  = true;
             }
         }
         else if (listViewSelectedResources.Items.Count > 0)
         {
             listViewSelectedResources.Items[0].Selected = true;
             listViewSelectedResources.Items[0].Focused  = true;
         }
     }
     finally
     {
         backgroundWorkerQueryMachine.Dispose();
         backgroundWorkerQueryMachine = null;
         UseWaitCursor = false;
         buttonSearch.Focus();
         buttonSearch.Text  = "Search";
         searchCompleteTime = DateTime.Now.Ticks;
         controlsInspector.InspectAll();
         UtilitiesClass.UpdateListViewColumnsSize(listViewSelectedResources, columnMachineName);
     }
 }
Example #9
0
        public static void AddMulitDeviceCollection(object sender, ScopeNode scopeNode, ActionDescription action, IResultObject selectedObject, PropertyDataUpdated dataUpdatedDelegate, Status Status)
        {
            try
            {
                using (BrowseCollectionDialog collectionDialog = new BrowseCollectionDialog(selectedObject.ConnectionManager))
                {
                    collectionDialog.MultiSelect      = true;
                    collectionDialog.CollectionType   = CollectionType.Device;
                    collectionDialog.CollectionFilter = (collectionResultObject =>
                    {
                        if (collectionResultObject["IsReferenceCollection"].BooleanValue || collectionResultObject["IsBuiltIn"].BooleanValue)
                        {
                            return(false);
                        }
                        if (selectedObject.Count > 1)
                        {
                            foreach (IResultObject resultObject in selectedObject)
                            {
                                if (resultObject.ObjectClass == "SMS_Collection" && resultObject["CollectionID"].StringValue == collectionResultObject["CollectionID"].StringValue)
                                {
                                    return(false);
                                }
                            }
                            return(true);
                        }
                        return(!(selectedObject.ObjectClass == "SMS_Collection") || !(selectedObject["CollectionID"].StringValue == collectionResultObject["CollectionID"].StringValue));
                    });

                    if (collectionDialog.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }

                    foreach (IResultObject collection in collectionDialog.SelectedCollections)
                    {
                        List <IResultObject> list = new List <IResultObject>();
                        foreach (IResultObject item in selectedObject)
                        {
                            IResultObject instance = selectedObject.ConnectionManager.CreateEmbeddedObjectInstance("SMS_CollectionRuleDirect");
                            instance["ResourceClassName"].StringValue = "SMS_R_System";
                            instance["RuleName"].StringValue          = item["Name"].StringValue;
                            instance["ResourceID"].IntegerValue       = item["ResourceID"].IntegerValue;
                            list.Add(instance);
                        }
                        collection.ExecuteMethod("AddMembershipRules", new Dictionary <string, object>()
                        {
                            { "collectionRules", list }
                        });
                    }
                }
            }
            catch (SmsQueryException ex)
            {
                SccmExceptionDialog.ShowDialog(SnapIn.Console, ex);
            }
        }
        private static void ProcessAction(ScopeNode scopeNode, ActionDescription action, IResultObject resultObjects)
        {
            bool showProgressDialog = false;

            if (resultObjects.ObjectClass == "SMS_Collection" || resultObjects.Count > 1)
            {
                showProgressDialog = true;
            }

            int total = resultObjects.Count;

            if (resultObjects.ObjectClass == "SMS_Collection")
            {
                try
                {
                    total = 0;
                    string query = string.Format("SELECT * FROM SMS_FullCollectionMembership WHERE CollectionID='{0}'", resultObjects["CollectionID"].StringValue);
                    // query processor does not have count implemented?!?!?
                    foreach (IResultObject tmp in resultObjects.ConnectionManager.QueryProcessor.ExecuteQuery(query))
                    {
                        total++;
                    }

                    resultObjects = resultObjects.ConnectionManager.QueryProcessor.ExecuteQuery(query);
                }
                catch (SmsQueryException ex)
                {
                    SccmExceptionDialog.ShowDialog(SnapIn.Console, ex);
                    return;
                }
            }

            if (showProgressDialog)
            {
                Type       type       = typeof(ClientActions);
                MethodInfo methodInfo = type.GetMethod(method);

                deviceProgressDialog = new DeviceProgressDialog(action, resultObjects, methodInfo)
                {
                    Total = total
                };
                deviceProgressDialog.ShowDialog();
            }
            else
            {
                foreach (IResultObject resultObject in resultObjects)
                {
                    ThreadPool.QueueUserWorkItem(arg => { RunAction(resultObject); });
                }
            }

            return;
        }
        private static void RunAction(IResultObject resultObject)
        {
            try
            {
                Type       type       = typeof(ClientActions);
                MethodInfo methodInfo = type.GetMethod(method);

                methodInfo.Invoke(null, new object[] { resultObject });
            }
            catch (TargetInvocationException ex)
            {
                SccmExceptionDialog.ShowDialog(SnapIn.Console, ex.InnerException);
            }
        }
Example #12
0
        //private static DeviceProgressDialog deviceProgressDialog;

        public static void ChangeClientCache(object sender, ScopeNode scopeNode, ActionDescription action, IResultObject selectedResultObjects, PropertyDataUpdated dataUpdatedDelegate, Status status)
        {
            bool showProgressDialog = false;

            if (selectedResultObjects.ObjectClass == "SMS_Collection" || selectedResultObjects.Count > 1)
            {
                showProgressDialog = true;
            }

            int total = selectedResultObjects.Count;

            if (selectedResultObjects.ObjectClass == "SMS_Collection")
            {
                try
                {
                    total = 0;
                    string query = string.Format("SELECT * FROM SMS_FullCollectionMembership WHERE CollectionID='{0}'", selectedResultObjects["CollectionID"].StringValue);
                    // query processor does not have count implemented?!?!?
                    foreach (IResultObject tmp in selectedResultObjects.ConnectionManager.QueryProcessor.ExecuteQuery(query))
                    {
                        total++;
                    }

                    selectedResultObjects = selectedResultObjects.ConnectionManager.QueryProcessor.ExecuteQuery(query);
                }
                catch (SmsQueryException ex)
                {
                    SccmExceptionDialog.ShowDialog(SnapIn.Console, ex);
                    return;
                }
            }

            if (showProgressDialog)
            {
                MessageBox.Show("Not implemented yet!", "Configuration Manager", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
                //Type type = typeof(ClientCache);
                //MethodInfo methodInfo = type.GetMethod("ChangeClientCacheSize");

                //deviceProgressDialog = new DeviceProgressDialog(action, selectedResultObjects, methodInfo)
                //{
                //    Total = total
                //};
                //deviceProgressDialog.ShowDialog();
            }
            else
            {
                Utility.ShowDialog("QuickToolsDeviceCache", selectedResultObjects);
            }
        }
 private void InfoWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             SccmExceptionDialog.ShowDialog(this, e.Error, "Error");
         }
     }
     finally
     {
         if (sender as BackgroundWorker == backgroundWorker)
         {
             backgroundWorker.Dispose();
             backgroundWorker = null;
             UseWaitCursor    = false;
         }
     }
 }
Example #14
0
        private static void ProcessProvisioningMode(ScopeNode scopeNode, ActionDescription action, IResultObject selectedResultObjects, bool mode)
        {
            if (selectedResultObjects.ObjectClass == "SMS_Collection")
            {
                ConnectionManagerBase connectionManagerInstance = (scopeNode as ConsoleParentNode).RootConnectionNode.GetConnectionManagerInstance("WQL");

                try
                {
                    string query = string.Format("SELECT * FROM SMS_FullCollectionMembership WHERE CollectionID='{0}'", selectedResultObjects["CollectionID"].StringValue);
                    using (IResultObject resultObject = connectionManagerInstance.QueryProcessor.ExecuteQuery(query))
                    {
                        using (ProvisioningModeDialog provisioningMode = new ProvisioningModeDialog(resultObject, action, mode))
                        {
                            provisioningMode.ShowDialog(SnapIn.Console);
                            return;
                        }
                    }
                }
                catch (SmsQueryException ex)
                {
                    ExceptionUtilities.TraceException(ex);
                    SccmExceptionDialog.ShowDialog(SnapIn.Console, ex);
                    return;
                }
            }

            if (selectedResultObjects.Count == 1)
            {
                foreach (IResultObject resultObject in selectedResultObjects)
                {
                    ThreadPool.QueueUserWorkItem(arg => { ProcessProvisioningMode(resultObject, mode); });
                }
            }
            else
            {
                using (ProvisioningModeDialog provisioningMode = new ProvisioningModeDialog(selectedResultObjects, action, mode))
                {
                    provisioningMode.ShowDialog(SnapIn.Console);
                    return;
                }
            }
        }
        private void LAPSDialog_Shown(object sender, EventArgs e)
        {
            try
            {
                using (DirectorySearcher search = new DirectorySearcher
                {
                    Filter = string.Format("(&(objectCategory=computer)(objectClass=computer)(cn={0}))", resultObjects["Name"].StringValue)
                })
                {
                    search.PropertiesToLoad.Add("distinguishedName");
                    search.PropertiesToLoad.Add("ms-mcs-admpwdexpirationtime");
                    search.PropertiesToLoad.Add("ms-mcs-admpwd");

                    SearchResult result = search.FindOne();

                    if (result != null)
                    {
                        if (result.Properties.Contains("ms-mcs-admpwdexpirationtime"))
                        {
                            long     value  = (long)result.Properties["ms-mcs-admpwdexpirationtime"][0];
                            DateTime expire = DateTime.FromFileTimeUtc(value);

                            labelExpire.Text = expire.ToString();
                        }
                        if (result.Properties.Contains("ms-mcs-admpwd"))
                        {
                            textBoxPassword.Text = result.Properties["ms-mcs-admpwd"][0].ToString();
                        }
                        else
                        {
                            textBoxPassword.Text = "No LAPS data";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionUtilities.TraceException(ex);
                SccmExceptionDialog.ShowDialog(ex);
            }
        }
Example #16
0
 private void InfoWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             SccmExceptionDialog.ShowDialog(this, e.Error, "Error");
         }
     }
     finally
     {
         if (sender as BackgroundWorker == backgroundWorker)
         {
             backgroundWorker.Dispose();
             backgroundWorker    = null;
             UseWaitCursor       = false;
             progressBar.Visible = false;
             listViewListCollections.IsLoading = false;
             listViewListCollections.UpdateColumnWidth(columnHeaderName);
         }
     }
 }
Example #17
0
 private void InfoWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             SccmExceptionDialog.ShowDialog(this, e.Error, "Error");
         }
     }
     finally
     {
         if (sender as BackgroundWorker == backgroundWorker)
         {
             backgroundWorker.Dispose();
             backgroundWorker = null;
             UseWaitCursor    = false;
             listViewClientHealth.IsLoading = false;
             listViewClientHealth.UpdateColumnWidth(columnHeaderDescription);
             buttonRefresh.Enabled = true;
         }
     }
 }
Example #18
0
 private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             SccmExceptionDialog.ShowDialog(this, e.Error, "Error");
         }
     }
     finally
     {
         if (sender as SmsBackgroundWorker == backgroundWorker)
         {
             backgroundWorker.Dispose();
             backgroundWorker                  = null;
             UseWaitCursor                     = false;
             listViewWindows.IsLoading         = false;
             listViewUpcomingWindows.IsLoading = false;
             listViewWindows.UpdateColumnWidth(columnHeaderWindows);
             listViewUpcomingWindows.UpdateColumnWidth(columnHeaderUpcomingTime);
         }
     }
 }