public static OutputQueue CopyApplicationBinContent(int timeOut) { var output = new OutputQueue(); Parallel.ForEach(LocalFarm.Get().Servers.Where(p => Server.ValidSPServerRole(p.Role)), server => { if (SPWebService.ContentService.Instances.Any(p => p.Server.Id == server.Id) || SPWebService.AdministrationService.Instances.Any(p => p.Server.Id == server.Id)) { var command = string.Format(CultureInfo.InvariantCulture, @"{0} -o copyappbincontent", SPUtility.GetGenericSetupPath(@"bin\stsadm.exe")); output.Add(string.Format(CultureInfo.CurrentUICulture, UserDisplay.RunningCommandOn, command, server.Address)); try { var processWMI = new Threading.ProcessWMI(); processWMI.ExecuteRemoteProcessWMI(server.Address, command, timeOut); } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentUICulture, Exceptions.ExceptionRunningCommandOn, command, server.Address, exception.Message), OutputType.Error, exception.ToString(), exception); } } }); return(output); }
internal static OutputQueue RemoveExistingJob(SPSolution solution) { var outputQueue = new OutputQueue(); if (solution == null || !solution.JobExists) { return(outputQueue); } if (solution.JobStatus == SPRunningJobStatus.Initialized) { outputQueue.Add(string.Format(CultureInfo.CurrentCulture, Exceptions.DeploySolutionError, solution.Name, Exceptions.DeploySolutionJobAlreadyRunning), OutputType.Warning); } var jobs = GetSolutionJobs(solution); foreach (var jobid in jobs.Keys) { var jobDefinition = jobs[jobid]; if (jobDefinition != null) { try { outputQueue.Add(string.Format(CultureInfo.CurrentCulture, UserDisplay.DeploySolutionRemoveJob, jobDefinition.DisplayName, solution.Name)); jobDefinition.Delete(); } catch (Exception exception) { outputQueue.Add(string.Format(CultureInfo.CurrentCulture, Exceptions.DeploySolutionRemoveJobFailed, jobDefinition.DisplayName, solution.Name, exception), OutputType.Warning); } } } return(outputQueue); }
public OutputQueue Run() { var output = new OutputQueue(); this.Status = TaskStatus.InProgress; try { output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_ExecuteTimerServiceJob); var cmdOutput = Utilities.Runspace.RunInPowerShell(string.Format(CultureInfo.InvariantCulture, "[Newsgator.Install.Common.Utilities.Jobs]::ExecuteInstallerJob(\"{0}\", {1})", JobName, this.Timeout.ToString(CultureInfo.InvariantCulture))); if (cmdOutput.Items.Any(p => p.Type == OutputType.Error)) { this.Status = TaskStatus.CompleteFailed; } else { this.Status = TaskStatus.CompleteSuccess; } output.Add(cmdOutput); output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_ExecuteTimerServiceJobComplete); } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Exceptions.ExecuteTimerRecycleJobException, exception.Message), OutputType.Error, exception.ToString(), exception); this.Status = TaskStatus.CompleteFailed; } return(output); }
internal static OutputQueue IsLocalAdministrator(out bool isLocalAdmin) { var outputQueue = new OutputQueue(); outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisite, UserDisplay.PrerequisiteUserIsLocalAdmin)); try { var user = WindowsIdentity.GetCurrent(); if (user == null) { isLocalAdmin = false; return(outputQueue); } var principle = new WindowsPrincipal(user); isLocalAdmin = principle.IsInRole(WindowsBuiltInRole.Administrator); } catch (Exception exception) { isLocalAdmin = false; outputQueue.Add(exception.Message, OutputType.Error, null, exception); } outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisiteComplete, UserDisplay.PrerequisiteUserIsLocalAdmin, isLocalAdmin ? UserDisplay.CheckingPrerequisitePassed : UserDisplay.CheckingPrerequisiteFailed)); return(outputQueue); }
internal static OutputQueue DisableJob(SPJobDefinition job) { var outputQueue = new OutputQueue(); if (job == null) { return(outputQueue); } outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.DisableJob, string.IsNullOrEmpty(job.DisplayName) ? job.Name : job.DisplayName)); try { job.IsDisabled = true; job.Update(); } catch (SPUpdatedConcurrencyException) { } catch (Exception exception) { outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, Exceptions.DisableJobsUnableToDisableError, job.DisplayName, exception.Message), OutputType.Error, null, exception); } outputQueue.Add(UserDisplay.DisableJobComplete); return(outputQueue); }
internal static OutputQueue IsSupportedVersionOfSharePoint(out bool isSupported) { var outputQueue = new OutputQueue(); outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisite, UserDisplay.PrerequisiteSharePointVersion)); try { isSupported = false; var farm = LocalFarm.Get(); switch (farm.BuildVersion.Major) { case 14: isSupported = farm.BuildVersion >= new Version(14, 0, 6029, 1000); // SharePoint 2010 SP1 break; case 15: isSupported = farm.BuildVersion >= new Version(15, 0, 4420, 1017); // SharePoint 2013 RTM break; case 16: isSupported = farm.BuildVersion >= new Version(16, 0, 4306, 1001); // SharePoint 2016 Beta 2, TODO: Replace with RTM break; } } catch (Exception exception) { isSupported = false; outputQueue.Add(exception.Message, OutputType.Error, null, exception); } outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisiteComplete, UserDisplay.PrerequisiteSharePointVersion, isSupported ? UserDisplay.CheckingPrerequisitePassed : UserDisplay.CheckingPrerequisiteFailed)); return(outputQueue); }
public OutputQueue Run() { var output = new OutputQueue(); this.Status = TaskStatus.InProgress; try { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Tasks.TaskDetails_UpdateServiceApplication, this.ServiceApplicationTypeName)); var command = string.Format(CultureInfo.InvariantCulture, "[Newsgator.Install.Common.Utilities.ServiceApplication]::UpdateNewsGatorServiceApplication([NewsGator.Install.Common.Entities.Flags.ServiceApplicationType]::{0}, ${1})", this.ServiceApplicationType.ToString(), this.UseTimerJob.ToString(CultureInfo.InvariantCulture)); output.Add(Utilities.Runspace.RunInPowerShell(command)); output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Tasks.TaskDetails_UpdateServiceApplication_Complete, this.ServiceApplicationTypeName)); this.Status = TaskStatus.CompleteSuccess; } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Exceptions.UpdateServiceApplicationException, exception.Message), OutputType.Error, exception.ToString(), exception); this.Status = TaskStatus.CompleteFailed; } return(output); }
internal static OutputQueue IsWebApplicationStarted(out bool isRunning) { var outputQueue = new OutputQueue(); outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisite, UserDisplay.PrerequisiteWebApplicationServiceIsStarted)); try { isRunning = false; var webServiceInstance = SPServer.Local.GetChild <SPWebServiceInstance>(); if (webServiceInstance != null) { if (webServiceInstance.Status == SPObjectStatus.Online) { isRunning = true; } } } catch (Exception exception) { isRunning = false; outputQueue.Add(exception.Message, OutputType.Error, null, exception); } outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisiteComplete, UserDisplay.PrerequisiteWebApplicationServiceIsStarted, isRunning ? UserDisplay.CheckingPrerequisitePassed : UserDisplay.CheckingPrerequisiteFailed)); return(outputQueue); }
internal static OutputQueue GetAssemblies(out Assembly[] assemblies) { var output = new OutputQueue(); var assembliesToOutput = new Collection <Assembly>(); try { var windir = Environment.GetEnvironmentVariable("SystemRoot"); foreach (var gacLocation in GacDirectories) { var gacPath = string.Format(CultureInfo.InvariantCulture, gacLocation, windir); if (Directory.Exists(gacPath)) { foreach (var prefix in AssemblyPrefixes) { var assemblyDirectories = Directory.GetDirectories(gacPath, prefix); foreach (var assemblyDirectory in assemblyDirectories) { var versionDirectories = Directory.GetDirectories(assemblyDirectory); foreach (var versionDirectory in versionDirectories) { var assemblyFiles = Directory.GetFiles(versionDirectory, "*.dll"); foreach (var assemblyFile in assemblyFiles) { if (File.Exists(assemblyFile)) { try { assembliesToOutput.Add(Assembly.ReflectionOnlyLoadFrom(assemblyFile)); } catch (Exception exception) { output.Add(exception.Message, OutputType.Error, exception.ToString(), exception); } } } } } } } } } catch (Exception exception) { output.Add(exception.Message, OutputType.Error, exception.ToString(), exception); } assemblies = assembliesToOutput.ToArray(); return(output); }
public OutputQueue Run() { var output = new OutputQueue(); this.Status = TaskStatus.InProgress; try { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Tasks.TaskDetails_ProvisionServiceApplication, this.ServiceApplicationTypeName)); var command = string.Format(CultureInfo.InvariantCulture, "[Newsgator.Install.Common.Utilities.ServiceApplication]::ProvisionNewsGatorServiceApplication([NewsGator.Install.Common.Entities.Flags.ServiceApplicationType]::{0}, \"{1}\", \"{2}\", \"{3}\", \"{4}\", \"{5}\", \"{6}\", \"{7}\", \"{8}\", \"{9}\", \"{10}\", \"{11}\", \"{12}\", \"{13}\", \"{14}\", \"{15}\", \"{16}\", \"{17}\", \"{18}\", \"{19}\", \"{20}\", \"{21}\", ${22})", this.ServiceApplicationType.ToString(), this.DatabaseName, this.DatabaseServer, this.DatabaseFailoverServer, this.ReportDatabaseName, this.ReportDatabaseServer, this.ReportDatabaseFailoverServer, this.ApplicationPoolName, this.ApplicationPoolUsername, this.ApplicationPoolPassword, this.LicenseKey, this.EmailListLocation, this.VideoEncodingInputFolder, this.VideoEncodingOutputFolder, this.VideoStreamingServerFolder, this.VideoUploadFolder, this.VideoStreamingServerUrlDefaultZone, this.VideoStreamingServerUrlIntranetZone, this.VideoStreamingServerUrlInternetZone, this.VideoStreamingServerUrlCustomZone, this.VideoStreamingServerUrlExtranetZone, this.LearningGlobalKnowledgeBase, this.UseTimerJob.ToString(CultureInfo.InvariantCulture)); output.Add(Utilities.Runspace.RunInPowerShell(command)); output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Tasks.TaskDetails_ProvisionServiceApplication_Complete, this.ServiceApplicationTypeName)); this.Status = TaskStatus.CompleteSuccess; } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Exceptions.ProvisionServiceApplicationException, exception.Message), OutputType.Error, exception.ToString(), exception); this.Status = TaskStatus.CompleteFailed; } return(output); }
internal static OutputQueue IsUserProfileServiceApplicationInvokable(out bool isInvokable) { var outputQueue = new OutputQueue(); outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisite, UserDisplay.PrerequisiteUserProfileAccess)); try { outputQueue.Add(UserProfileService.UserHasAccess(out isInvokable)); } catch (Exception exception) { isInvokable = false; outputQueue.Add(exception.Message, OutputType.Error, null, exception); } outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisiteComplete, UserDisplay.PrerequisiteUserProfileAccess, isInvokable ? UserDisplay.CheckingPrerequisitePassed : UserDisplay.CheckingPrerequisiteFailed)); return(outputQueue); }
internal static OutputQueue RepairAssemblies(string literalPath) { var output = new OutputQueue(); try { var tempPath = Path.Combine(literalPath, "temp"); DirectoryInfo directory = null; if (!Directory.Exists(tempPath)) { Directory.CreateDirectory(tempPath); } directory = new DirectoryInfo(tempPath); var command = Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\expand.exe"; var wsps = Directory.GetFiles(literalPath, "*.wsp"); foreach (var wsp in wsps) { var args = "\"" + wsp + "\" -f:*.dll \"" + tempPath + "\""; output.Add(Files.RunCommand(command, args)); } var publish = new Publish(); var assemblies = directory.GetFiles("*.dll"); foreach (var assembly in assemblies) { try { output.Add(string.Format(CultureInfo.InvariantCulture, "Adding \"{0}\" to the Global Assembly Cache.", assembly.Name)); publish.GacInstall(assembly.FullName); } catch (Exception exception) { output.Add(exception.Message, OutputType.Error, exception.ToString(), exception); } } directory.Delete(true); } catch (Exception exception) { output.Add(exception.Message, OutputType.Error, exception.ToString(), exception); } return(output); }
internal static OutputQueue IsFarmAdministrator(out bool isFarmAdmin) { var outputQueue = new OutputQueue(); outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisite, UserDisplay.PrerequisiteUserIsFarmAdmin)); try { isFarmAdmin = LocalFarm.Get().CurrentUserIsAdministrator(); } catch (Exception exception) { isFarmAdmin = false; outputQueue.Add(exception.Message, OutputType.Error, null, exception); } outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisiteComplete, UserDisplay.PrerequisiteUserIsFarmAdmin, isFarmAdmin ? UserDisplay.CheckingPrerequisitePassed : UserDisplay.CheckingPrerequisiteFailed)); return(outputQueue); }
public OutputQueue Run() { var output = new OutputQueue(); this.Status = TaskStatus.InProgress; try { output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_UpdateFeatures); if (this.SolutionIds == null || this.SolutionIds.Count == 0) { throw new InvalidOperationException("SolutionIds"); } var solutionsString = string.Empty; for (var i = 0; i < this.SolutionIds.Count; i++) { if (i == 0) { solutionsString = "\"" + this.SolutionIds[i].ToString() + "\""; } else { solutionsString += ", \"" + this.SolutionIds[i].ToString() + "\""; } } var parameter = string.Format(CultureInfo.InvariantCulture, "([System.Collections.ObjectModel.Collection``1[[System.Guid]]] ([GUID[]] ({0})))", solutionsString); var command = string.Format(CultureInfo.InvariantCulture, "[Newsgator.Install.Common.Utilities.Features]::UpgradeFeaturesAll({0})", parameter); output.Add(Utilities.Runspace.RunInPowerShell(command)); output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_UpdateFeatures_Complete); this.Status = TaskStatus.CompleteSuccess; } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Exceptions.UpdateFeaturesException, exception.Message), OutputType.Error, exception.ToString(), exception); this.Status = TaskStatus.CompleteFailed; } return(output); }
internal static OutputQueue IsUserProfileServiceApplicationAvailable(out bool isAvailable) { var outputQueue = new OutputQueue(); outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisite, UserDisplay.PrerequisiteUserProfileAvailable)); try { SPIisWebServiceApplication app = null; outputQueue.Add(UserProfileService.GetUserProfileApplication(out app)); isAvailable = app != null; } catch (Exception exception) { isAvailable = false; outputQueue.Add(exception.Message, OutputType.Error, null, exception); } outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisiteComplete, UserDisplay.PrerequisiteUserProfileAvailable, isAvailable ? UserDisplay.CheckingPrerequisitePassed : UserDisplay.CheckingPrerequisiteFailed)); return(outputQueue); }
internal static OutputQueue EnableJob(SPJobDefinition job) { var outputQueue = new OutputQueue(); if (job == null) { return(outputQueue); } outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.EnableJob, string.IsNullOrEmpty(job.DisplayName) ? job.Name : job.DisplayName)); try { job.IsDisabled = false; job.Update(); } catch (SPUpdatedConcurrencyException) { } outputQueue.Add(UserDisplay.EnableJobComplete); return(outputQueue); }
public static OutputQueue EnsurePowerShellExecutable() { var output = new OutputQueue(); var psFile = Path.Combine(ExecutionPath(), NGPSFileName); var psConfigFile = Path.Combine(ExecutionPath(), NGPSConfigFileName); if (!File.Exists(psFile)) { output.Add(NewsGator.Install.Resources.UserDisplay.PowerShell_CopyExecutable); File.Copy(PowerShellPath(), psFile); } if (!File.Exists(psConfigFile)) { output.Add(NewsGator.Install.Resources.UserDisplay.PowerShell_WritingConfigurationFile); File.WriteAllText(psConfigFile, ExecutableConfig(), UTF8Encoding.UTF8); } return(output); }
internal static OutputQueue EnsureUserAccess(string accountName = null) { var outputQueue = new OutputQueue(); if (string.IsNullOrEmpty(accountName)) { accountName = WindowsIdentity.GetCurrent().Name; } var mossContext = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, new SPSiteSubscriptionIdentifier(Guid.Empty)); using (var scope = new SPServiceContextScope(mossContext)) { SPIisWebServiceApplication app = null; outputQueue.Add(GetUserProfileApplication(out app)); if (app != null) { var isAdmin = false; outputQueue.Add(UserIsAdministrator(out isAdmin, accountName)); if (!isAdmin) { var aac = app.GetAdministrationAccessControl(); aac.AddAccessRule(new SPAclAccessRule <SPCentralAdministrationRights>(new NTAccount(accountName), SPCentralAdministrationRights.FullControl)); app.SetAdministrationAccessControl(aac); } var hasAccess = false; outputQueue.Add(UserHasAccess(out hasAccess, accountName)); if (!hasAccess) { var ac = app.GetAccessControl(); ac.AddAccessRule(new SPAclAccessRule <SPIisWebServiceApplicationRights>(new NTAccount(accountName), SPIisWebServiceApplicationRights.FullControl)); app.SetAccessControl(ac); } app.Update(); } } return(outputQueue); }
private static OutputQueue ExecuteRecycleTimerJob(int timeout) { var output = new OutputQueue(); try { var timerService = LocalFarm.Get().Services.Where(p => p is SPTimerService).First() as SPTimerService; var job = timerService.JobDefinitions.Where(p => (p.Name.IndexOf(RecycleJobName, StringComparison.OrdinalIgnoreCase) > -1)).First(); var lastRun = job.LastRunTime; job.RunNow(); Func <bool> wait = () => { var complete = false; while (!complete) { try { var waitTimerService = LocalFarm.Get().Services.Where(p => p is SPTimerService).First() as SPTimerService; var waitJob = waitTimerService.JobDefinitions.Where(p => (p.Name.IndexOf(RecycleJobName, StringComparison.OrdinalIgnoreCase) > -1)).First(); if (waitJob.LastRunTime > lastRun) { complete = true; } if (!complete) { Thread.Sleep(10000); } } catch { } } return(complete); }; var success = Threading.WaitFor <bool> .Run(TimeSpan.FromMilliseconds(timeout / 2), wait); if (!success) { throw new System.TimeoutException(); } } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Exceptions.TimerJobException, exception.Message), OutputType.Error, exception.ToString(), exception); } return(output); }
internal static OutputQueue UnblockFiles(string literalPath) { var outputQueue = new OutputQueue(); var directory = new DirectoryInfo(literalPath); foreach (var subDirectory in directory.GetDirectories()) { outputQueue.Add(UnblockFiles(subDirectory.FullName)); } foreach (var file in directory.GetFiles()) { if (!file.IsBlocked()) { continue; } outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.UnblockingFile, file.FullName)); file.Unblock(); } return(outputQueue); }
internal static OutputQueue EnableJobs(SPService service) { var outputQueue = new OutputQueue(); if (service == null) { return(outputQueue); } foreach (var job in service.JobDefinitions) { try { outputQueue.Add(EnableJob(job)); } catch (Exception exception) { outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, Exceptions.EnableJobsUnableToEnableError, job.DisplayName, exception.Message), OutputType.Error, null, exception); } } return(outputQueue); }
public OutputQueue Run() { var output = new OutputQueue(); this.Status = TaskStatus.InProgress; try { output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_DisableDebugger); output.Add(DebuggerRegistry.DisableJustInTimeDebugger()); output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_DisableDebugger_Complete); this.Status = TaskStatus.CompleteSuccess; } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Exceptions.UpdateRegistryException, exception.Message), OutputType.Error, exception.ToString(), exception); this.Status = TaskStatus.CompleteFailed; } return(output); }
public OutputQueue Run() { var output = new OutputQueue(); this.Status = TaskStatus.InProgress; try { output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_EnableJobs); output.Add(Utilities.Runspace.RunInPowerShell("[Newsgator.Install.Common.Utilities.Jobs]::EnableNewsGatorJobs()")); output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_EnableJobs_Complete); this.Status = TaskStatus.CompleteSuccess; } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Exceptions.EnableJobsException, exception.Message), OutputType.Error, exception.ToString(), exception); this.Status = TaskStatus.CompleteFailed; } return(output); }
internal static OutputQueue IsWMIAvailable(out bool isWMIAvailable) { var outputQueue = new OutputQueue(); isWMIAvailable = true; outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisite, UserDisplay.PrerequisiteWMIAvailable)); try { var farm = LocalFarm.Get(); foreach (var server in farm.Servers.Where(f => Server.ValidSPServerRole(f.Role))) { var machineServices = ServiceController.GetServices(server.Address); if (null == machineServices || machineServices.Length == 0) { isWMIAvailable = false; outputQueue.Add("Unable to list services on server.", OutputType.Error, "Unable to list services on server: " + server.Address); break; } // var command = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "where.exe"); // https://fogbugz.corp.newsgator.com/default.asp?304837 // Removing specific path and providing parameter for the where command var command = "where.exe iisreset.exe"; var processWMI = new Threading.ProcessWMI(); processWMI.ExecuteRemoteProcessWMI(server.Address, command, 15000); } } catch (Exception exception) { isWMIAvailable = false; outputQueue.Add(exception.Message, OutputType.Error, null, exception); } outputQueue.Add(string.Format(System.Globalization.CultureInfo.CurrentCulture, UserDisplay.CheckingPrerequisiteComplete, UserDisplay.PrerequisiteWMIAvailable, isWMIAvailable ? UserDisplay.CheckingPrerequisitePassed : UserDisplay.CheckingPrerequisiteFailed)); return(outputQueue); }
internal static OutputQueue DisableServiceJobs(SPServiceApplication serviceApp) { var outputQueue = new OutputQueue(); var app = serviceApp as SPIisWebServiceApplication; if (app != null) { if (app.Service != null) { outputQueue.Add(DisableJobs(app.Service)); } } return(outputQueue); }
public OutputQueue Run() { var output = new OutputQueue(); this.Status = TaskStatus.InProgress; try { output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_DisableFeatures); output.Add(Utilities.Receivers.RemoveEventReceivers()); output.Add(Utilities.Features.DisableFeaturesForAllSolutionSets(false)); output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_DisableFeatures_Complete); this.Status = TaskStatus.CompleteSuccess; } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Exceptions.DisableFeaturesException, exception.Message), OutputType.Error, exception.ToString(), exception); this.Status = TaskStatus.CompleteFailed; } return(output); }
public OutputQueue Run() { var output = new OutputQueue(); this.Status = TaskStatus.InProgress; try { output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_MySiteWebParts); output.Add(Utilities.Runspace.RunInPowerShell( string.Format(CultureInfo.InvariantCulture, "[Newsgator.Install.Common.Utilities.MySite]::EnableMySiteWebPartsFeature(\"{0}\")", this.MySiteUrl))); output.Add(NewsGator.Install.Resources.Tasks.TaskDetails_MySiteWebParts_Complete); this.Status = TaskStatus.CompleteSuccess; } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Exceptions.MySiteWebPartsException, exception.Message), OutputType.Error, exception.ToString(), exception); this.Status = TaskStatus.CompleteFailed; } return(output); }
internal static OutputQueue UserHasAccess(out bool hasAccess, string accountName = null) { var outputQueue = new OutputQueue(); hasAccess = false; if (string.IsNullOrEmpty(accountName)) { accountName = WindowsIdentity.GetCurrent().Name; } var mossContext = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, new SPSiteSubscriptionIdentifier(Guid.Empty)); using (var scope = new SPServiceContextScope(mossContext)) { SPIisWebServiceApplication app = null; outputQueue.Add(GetUserProfileApplication(out app)); if (app != null) { var accessControl = app.GetAccessControl(); if (accessControl != null) { var accessRules = accessControl.GetAccessRules(); foreach (var rule in accessRules) { if (rule.Name.ToUpperInvariant().EndsWith(accountName.ToUpperInvariant(), StringComparison.CurrentCultureIgnoreCase)) { hasAccess = rule.AllowedRights == SPIisWebServiceApplicationRights.FullControl; if (hasAccess) { break; } } } } } } return(outputQueue); }
public static OutputQueue SetLookoutAsMySiteHomePage(string mySiteWebUrl) { var output = new OutputQueue(); try { using (var site = new SPSite(mySiteWebUrl)) { if (site != null) { using (var web = site.OpenWeb()) { if (web != null) { if (PublishingWeb.IsPublishingWeb(web)) { var publishingWeb = PublishingWeb.GetPublishingWeb(web); var lookoutPageFile = web.GetFile("Lookout.aspx"); publishingWeb.DefaultPage = lookoutPageFile; publishingWeb.Update(); publishingWeb.Close(); } else { var rootFolder = web.RootFolder; rootFolder.WelcomePage = "Lookout.aspx"; rootFolder.Update(); web.Update(); } } } } } } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentCulture, Exceptions.ErrorSettingLookoutHomePage, exception.Message), OutputType.Error, string.Empty, exception); } return(output); }
public static OutputQueue EnableUserProfileJob() { var output = new OutputQueue(); try { foreach (var service in LocalFarm.Get().Services) { foreach (var job in service.JobDefinitions.Where(p => p.Name.EndsWith(JobName, StringComparison.OrdinalIgnoreCase))) { job.IsDisabled = false; job.Update(); } } } catch (Exception exception) { output.Add(string.Format(CultureInfo.CurrentUICulture, NewsGator.Install.Resources.Exceptions.EnableUserProfileJobException, exception.Message), OutputType.Error, exception.ToString(), exception); } return(output); }