GithubHelp home page GithubHelp logo

Comments (21)

BrianFarnhill avatar BrianFarnhill commented on June 12, 2024

Hey Heidi,

Are you experiencing an actual issue with this though? From our own testing the prereqs all still executed correctly. Just want to understand the impact of this so I can prioritise the fix.

  • B

from sharepointdsc.

heidi2 avatar heidi2 commented on June 12, 2024

Hi Brian,

Yes - the verbose logging didn't report any error, but nothing was installed (and, because the LCM was set to RebootNodeIfNeeded, the machine got stuck in a reboot loop - for extra fun!). If I copy the args list from the Verbose log and run the command manually, without the unnattended switch, the log show 'Unrecognized command line option' error. Adding in colons fixes it, e.g.

/SQLNCli:"c:\

instead of

/SQLNCli "c:\

Cheers,
Heidi

from sharepointdsc.

heidi2 avatar heidi2 commented on June 12, 2024

Installing the prerequisites for SP2013, if that makes any difference.

from sharepointdsc.

BrianFarnhill avatar BrianFarnhill commented on June 12, 2024

No worries, I'll get it tested and in for our v0.8 release. What is the operating system you're installing on just out of curiosity?

from sharepointdsc.

heidi2 avatar heidi2 commented on June 12, 2024

Server 2012 R2 standard.

from sharepointdsc.

BrianFarnhill avatar BrianFarnhill commented on June 12, 2024

Is the installer for Service pack 1? Can you confirm the build number of prerequisiteinstaller.exe? I just wanna figure out how this one slipped through the cracks on me :)

from sharepointdsc.

heidi2 avatar heidi2 commented on June 12, 2024

The file version on prerequisiteinstaller.exe is 15.0.4567.1000. Is that what you need?

from sharepointdsc.

XdrXdr77 avatar XdrXdr77 commented on June 12, 2024

Hello, i´ve the same issue. I´m testing the Installation for the SharePoint 2016 Preview and got the same output. Calling the PreReq from the cmd it works. But in the DSC configuration it doesn´t start. The same problem like "heidi2"

Do you have any Updates to this problem?

Kind Regard

A.S.

from sharepointdsc.

XdrXdr77 avatar XdrXdr77 commented on June 12, 2024

Hello,

i´v modified the MSFT_xSPInstallPrereqs Module to build the Verbose Output like Heidi2 mentioned.
I got the described verbose Output, but the Installion of the Prereq didn´t start.
I modified the line 131 from:
$prereqArgs += " /$_ "$($PSBoundParameters.$_)""
to
$prereqArgs += " /$_:"$($PSBoundParameters.$_)""`

I added the double colon.

from sharepointdsc.

BrianFarnhill avatar BrianFarnhill commented on June 12, 2024

Hi XdrXdr77,

Can you please share the parameters you passed to the xSPInstallPrereqs as well as the verbose output from it so we can see where it got to?

from sharepointdsc.

XdrXdr77 avatar XdrXdr77 commented on June 12, 2024

Hi Brian,

here is my Output:


VERBOSE: [SP-WFE-DSC]: LCM:  [ Start  Set      ]  [[xSPInstallPrereqs]InstallPrerequisites]
VERBOSE: [SP-WFE-DSC]:                            [[xSPInstallPrereqs]InstallPrerequisites] Detecting SharePoint version from binaries
VERBOSE: [SP-WFE-DSC]:                            [[xSPInstallPrereqs]InstallPrerequisites] Version: SharePoint 2016
VERBOSE: [SP-WFE-DSC]:                            [[xSPInstallPrereqs]InstallPrerequisites] Calling the SharePoint Pre-req installer
VERBOSE: [SP-WFE-DSC]:                            [[xSPInstallPrereqs]InstallPrerequisites] Args for prereq installer are: /unattended /SQLNCli "D:\2016\SharePoint\prerequisiteinstallerfiles\sqlncli.msi"/Sync "D:\2016\SharePoint\prerequisiteinstallerfiles\Sy
nchronization.msi"/AppFabric "D:\2016\SharePoint\prerequisiteinstallerfiles\WindowsServerAppFabricSetup_x64.exe"/IDFX11 "D:\2016\SharePoint\prerequisiteinstallerfiles\MicrosoftIdentityExtensions-64.msi"/MSIPCClient "D:\2016\SharePoint\prerequisiteinstallerfi
les\setup_msipc_x64.msi"/WCFDataServices "D:\2016\SharePoint\prerequisiteinstallerfiles\WcfDataServices.exe"/KB2671763 "D:\2016\SharePoint\prerequisiteinstallerfiles\AppFabric1.1-RTM-KB2671763-x64-ENU.exe"/WCFDataServices56 "D:\2016\SharePoint\prerequisitein
stallerfiles\WcfDataServices56.exe"/KB2898850 "D:\2016\SharePoint\prerequisiteinstallerfiles\Windows8.1-KB2898850-x64.msu"/MSVCRT12 "D:\2016\SharePoint\prerequisiteinstallerfiles\vcredist_x64.exe"
VERBOSE: [SP-WFE-DSC]:                            [[xSPInstallPrereqs]InstallPrerequisites] Prerequisite installer completed successfully. Rebooting to finalise installations
VERBOSE: [SP-WFE-DSC]: LCM:  [ End    Set      ]  [[xSPInstallPrereqs]InstallPrerequisites]  in 1.1770 seconds.
VERBOSE: [SP-WFE-DSC]: LCM:  [ End    Resource ]  [[xSPInstallPrereqs]InstallPrerequisites]
VERBOSE: [SP-WFE-DSC]:                            [] A reboot is required to progress further. Please reboot the system.
WARNING: [SP-WFE-DSC]:                            [] A reboot is required to progress further. Please reboot the system.
VERBOSE: [SP-WFE-DSC]: LCM:  [ End    Set      ]
VERBOSE: [SP-WFE-DSC]: LCM:  [ End    Set      ]    in  3.0680 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 3.15 seconds

This is my Configuration. I´m first testing the PreReq Installation. May it be possible that there exist dependencies to other Modules ?

Configuration SharePointServer
{
    $Productkey = "NQTMW-K63MQ-39G6H-B2CH9-FRDWJ"
    Import-DscResource -ModuleName xSharePoint
    Import-DscResource -ModuleName xWebAdministration
    Import-DscResource –ModuleName PSDesiredStateConfiguration

    node "SP-WFE-DSC"
        {
        xSPInstallPrereqs InstallPrerequisites
        {
            Ensure     = "Present"
            InstallerPath     = "D:\2016\SharePoint\Prerequisiteinstaller.exe"
            OnlineMode        = $false
            SQLNCli           = "D:\2016\SharePoint\prerequisiteinstallerfiles\sqlncli.msi"
            Sync              = "D:\2016\SharePoint\prerequisiteinstallerfiles\Synchronization.msi"
            AppFabric         = "D:\2016\SharePoint\prerequisiteinstallerfiles\WindowsServerAppFabricSetup_x64.exe"
            IDFX11            = "D:\2016\SharePoint\prerequisiteinstallerfiles\MicrosoftIdentityExtensions-64.msi"
            MSIPCClient       = "D:\2016\SharePoint\prerequisiteinstallerfiles\setup_msipc_x64.msi"
            WCFDataServices   = "D:\2016\SharePoint\prerequisiteinstallerfiles\WcfDataServices.exe"
            KB2671763         = "D:\2016\SharePoint\prerequisiteinstallerfiles\AppFabric1.1-RTM-KB2671763-x64-ENU.exe"
            WCFDataServices56 = "D:\2016\SharePoint\prerequisiteinstallerfiles\WcfDataServices56.exe"
            KB2898850         = "D:\2016\SharePoint\prerequisiteinstallerfiles\Windows8.1-KB2898850-x64.msu"
            MSVCRT12          = "D:\2016\SharePoint\prerequisiteinstallerfiles\vcredist_x64.exe" 
        }
        xSPInstall InstallBinaries
        {
            BinaryDir  = "D:\2016\SharePoint"
            ProductKey = $ProductKey
            Ensure     = "Present"
            DependsOn  = "[xSPInstallPrereqs]InstallPrerequisites"
        }
        LocalConfigurationManager
        {
            RebootNodeIfNeeded = $true
        }

    }

}
SharePointServer -OutputPath C:\DSC\InstallPreRequisites
Start-DscConfiguration -path C:\DSC\InstallPreRequisites -wait -Verbose -Force

I checked the Taskmanager and noticed the the PreReq Installer didn't launch. It only starts if i modify the PreReq Module. But nothing happens.

Greetz

A.S.

from sharepointdsc.

BrianFarnhill avatar BrianFarnhill commented on June 12, 2024

Hi A.S,

So it looks like the formatting of the arguments isn't coming through right as there are no spaces between the values and the next flag - for example, the fragment below from your args:

    ...chronization.msi"/AppFabric ...

should be coming out as

    ...chronization.msi" /AppFabric...

The line of script you say you inserted earlier looks like it should be putting the spaces in however - can I get you to double check that it is exactly as below:

$prereqArgs += " /$_`:`"$($PSBoundParameters.$_)`""

Noting the space immediately after the " and before the / at the start of the line. The other thing that appears confusing to me is that the script is detecting that the exit code from the application is returning with a 0 status code, which means it's seeing nothing wrong. Can you confirm whether or not the prerequisites are actually installed?

I suspect what might be happening is that the logic which tests for the prereqs being installed is missing something and it is failing on the test method where it should be passing, which is causing it to constantly run the installer, despite it not needing to be run.

from sharepointdsc.

XdrXdr77 avatar XdrXdr77 commented on June 12, 2024

Hio Brian,

thanks for your reply. I´m testing a little bit with the follwoing results. I hope it would help to fix some "issues" of the PreReq Module. The PreReq won´t be installed during all my tests. Only if i start the PreReq Installer from the command line.

  1. When i modified the Arguments List how i described, the PreReq wouln´t be installed.
  2. If i remove the "/Unattended" from the arguments list, to see the PreReq Installer, it didn´t open, but i see in the TaskManger that the PReReq Installer is started.
  3. When i start the PreReq Installer from the command line with the arguments from the verbose output of the config file. The Installer start with an error.
  4. If i launch the installer from the command line to get the help "prerequisitesinstaller /?" i verfified that there are some things different from the PreReq Module File.
    4.1 The WCFDataService is not listed. After that i checked the schema.mof and see that it is listed there. So i removed it, but the prereq Installer launch only in the Taskmanager and nothing happens.

If i´ve a little bit more time to investigate deeper, i will first try the prereq via DSC without a version check. Only for SP 2016.
I forgot to give you details of my Test Environment. I´m working on WIndows Server 2016 TP3 with and SQL 2016 TP. Maybe that this cause the issue to.
If you have any Information it would be nice if you share it. I will do the same.

Kind Regards

Andre

from sharepointdsc.

BrianFarnhill avatar BrianFarnhill commented on June 12, 2024

Hi Andre,

Thanks for that - yes the problem is that we do not have support for Windows Server 2016 yet while it is still in preview. We will add support to this later but right now we know it doesn't work because the prereqs it checks for will be different. If you want to look in to things a little deeper and look at preparing a fix I'm happy to help guide that, otherwise I'll post an update with that support at a later date.

  • B

from sharepointdsc.

XdrXdr77 avatar XdrXdr77 commented on June 12, 2024

Hi Brian,

i will check this on Server 2016. For the future i think it would be nice if it is working ;)

WHen i´ve an update i will let you know. I´m not so deep in building custom ressources for DSC, but i will do my best.

Kind Regards

Andre

from sharepointdsc.

XdrXdr77 avatar XdrXdr77 commented on June 12, 2024

Hi Brian,

i´ve fixed the problem with the Installation of the PreReq for SP2016 on Server 2016 TP3.
Actual it´s a quick and dirty solution.

I removed from the Schema.mof of the PreReqModule the "WCFDataService". If you run the PreReqinstaller.exe with the help Parameter "/?" it is not listed
2.
I added the ODBC Driver to the schema.mof
Schema.mof:

[ClassVersion("1.0.0.0"), FriendlyName("xSPInstallPrereqs")]
class MSFT_xSPInstallPrereqs : OMI_BaseResource
{
    [Key] String InstallerPath;
    [Required] Boolean OnlineMode;
    [Write] String SQLNCli;
    [Write] String PowerShell;
    [Write] String NETFX;
    [Write] String IDFX;
    [Write] String Sync;
    [Write] String AppFabric;
    [Write] String IDFX11;
    [Write] String MSIPCClient;
    [Write] String KB2671763;
    [Write] String WCFDataServices56;
    [Write] String KB2898850;
    [Write] String MSVCRT12;
    [Write] String ODBC;
    [Required, ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure;
};

2.1
I also added it to the parameter to the Test, Set and Get
[parameter(Mandatory = $false)] [System.String] $ODBC
3.
I added the following into the Set Area to install the Windows Features

Import-Module Servermanager
Add-WindowsFeature NET-HTTP-Activation,NET-Non-HTTP-Activ,NET-WCF-Pipe-Activation45,NET-WCF-HTTP-Activation45,Web-Server,Web-WebServer,Web-Common-Http,Web-Static-Content,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,Web-App-Dev,Web-Asp-Net,Web-Asp-Net45,Web-Net-Ext,Web-Net-Ext45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Health,Web-Http-Logging,Web-Log-Libraries,Web-Request-Monitor,Web-Http-Tracing,Web-Security,Web-Basic-Auth,Web-Windows-Auth,Web-Filtering,Web-Digest-Auth,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Mgmt-Tools,Web-Mgmt-Console,Web-Mgmt-Compat,Web-Metabase,WAS,WAS-Process-Model,WAS-NET-Environment,WAS-Config-APIs,Web-Lgcy-Scripting,Windows-Identity-Foundation,Server-Media-Foundation,Xps-Viewer -Source "D:\SharePoint\SP\2016\SharePoint\prerequisiteinstallerfiles\sxs"

Add the End of the above commands i added manually the path to the sourcefolder "sxs" . THis have to create manually an must include the "microsoft-windows-netfx3-ondemand-package.cab " from the Windows Installation Media

4
Also i modified the the following line how i described in one post above $requiredParams | ForEach-Object { $prereqArgs += " /$_:"$($PSBoundParameters.$_)""`

5
My Configuration

Configuration SharePointServer
{
    $Productkey = "NQTMW-K63MQ-39G6H-B2CH9-FRDWJ"
    Import-DscResource -ModuleName xSharePoint
    Import-DscResource -ModuleName xWebAdministration
    Import-DscResource –ModuleName PSDesiredStateConfiguration
    node "DEV_DSC"
        {
        xSPInstallPrereqs InstallPrerequisites
        {
            Ensure     = "Present"
            InstallerPath     = "D:\SharePoint\SP\2016\SharePoint\Prerequisiteinstaller.exe"
            OnlineMode        = $false
            SQLNCli           = "D:\SharePoint\SP\2016\SharePoint\prerequisiteinstallerfiles\sqlncli.msi"
            Sync              = "D:\SharePoint\SP\2016\SharePoint\prerequisiteinstallerfiles\Synchronization.msi"
            AppFabric         = "D:\SharePoint\SP\2016\SharePoint\prerequisiteinstallerfiles\WindowsServerAppFabricSetup_x64.exe"
            IDFX11            = "D:\SharePoint\SP\2016\SharePoint\prerequisiteinstallerfiles\MicrosoftIdentityExtensions-64.msi"
            MSIPCClient       = "D:\SharePoint\SP\2016\SharePoint\prerequisiteinstallerfiles\setup_msipc_x64.exe"
            KB2671763         = "D:\SharePoint\SP\2016\SharePoint\prerequisiteinstallerfiles\AppFabric1.1-RTM-KB2671763-x64-ENU.exe"
            WCFDataServices56 = "D:\SharePoint\SP\2016\SharePoint\prerequisiteinstallerfiles\WcfDataServices56.exe"
            KB2898850         = "D:\SharePoint\SP\2016\SharePoint\prerequisiteinstallerfiles\Windows8.1-KB2898850-x64.msu"
            MSVCRT12          = "D:\SharePoint\SP\2016\SharePoint\prerequisiteinstallerfiles\vcredist_x64.exe"
            ODBC              = "D:\SharePoint\SP\2016\SharePoint\prerequisiteinstallerfiles\msodbcsql.msi"
        }
        LocalConfigurationManager
        {
            RebootNodeIfNeeded = $true
        }
    }
}
SharePointServer -OutputPath C:\DSC\InstallPreReq
Start-DscConfiguration -path C:\DSC\InstallPreReq -wait -Verbose -Force

The next steps i will modify the PreReq Module to check the SharePoint Version and then add the correct Windows Features (15 or 16).
I think the is one problem where i´ve not a solution at the moment. The schema.mof. I have no idea if there is a possibilty to check if you install a SP2013 or SP2016 and then check if you need the WCF DataService or not.
Do you have an idea.

Greetz

Andre

from sharepointdsc.

BrianFarnhill avatar BrianFarnhill commented on June 12, 2024

Hi Andre,

Some responses

  1. Do not remove WCFDataService from the MOF file - this parameter is needed for SharePoint 2013 which we will continue to support
  2. Thats fine, happy to add an extra parameter needed by 2016
  3. We need to take that path out and make it a property so it can be passed in to the configuration rather than being hard coded, can we add an attribute for that?
  4. This is fine, I've also made this change in my other code base to do with the initial issue here

If you look inside the existing prereq installer module we have there are parts where you will see this:

$majorVersion = (Get-xSharePointAssemblyVersion -PathToAssembly $InstallerPath)
if ($majorVersion -eq 15) {
    Write-Verbose -Message "Version: SharePoint 2013"
}
if ($majorVersion -eq 16) {
    Write-Verbose -Message "Version: SharePoint 2016"
}

This is where we determine the version and then we already behave accordingly, checking for and installing a different list of windows features. Ultimately we can't use the schema.mof file to check for properties that will vary from version to version, but we are already doing this in our script by throwing errors for properties that aren't included but should be. In the set method this is the code that checks for the appropriate parameters for each version:

Write-Verbose -Message "Detecting SharePoint version from binaries"
$majorVersion = (Get-xSharePointAssemblyVersion -PathToAssembly $InstallerPath)
if ($majorVersion -eq 15) {
    Write-Verbose -Message "Version: SharePoint 2013"
    $requiredParams = @("SQLNCli","PowerShell","NETFX","IDFX","Sync","AppFabric","IDFX11","MSIPCClient","WCFDataServices","KB2671763","WCFDataServices56")
}
if ($majorVersion -eq 16) {
    Write-Verbose -Message "Version: SharePoint 2016"
    $requiredParams = @("SQLNCli","Sync","AppFabric","IDFX11","MSIPCClient","WCFDataServices","KB2671763","WCFDataServices56","KB2898850","MSVCRT12")
}

$prereqArgs = "/unattended"
if ($OnlineMode -eq $false) {
    $requiredParams | ForEach-Object {
        if (($PSBoundParameters.ContainsKey($_) -and [string]::IsNullOrEmpty($PSBoundParameters.$_)) -or (-not $PSBoundParameters.ContainsKey($_))) {
            throw "In offline mode for version $majorVersion parameter $_ is required"
        }
    }
    $requiredParams | ForEach-Object {
        $prereqArgs += " /$_ `"$($PSBoundParameters.$_)`""
    }
}

I hope that helps.

from sharepointdsc.

XdrXdr77 avatar XdrXdr77 commented on June 12, 2024

Hello Brian,

thanks for reply.
1.
Removing the WCFDataService from the .mof file was only a test. (quick and dirty) I will test this by adding the check for the parameters.
3.
I think it should be possible to add an attribut for that, but by default the "/sxs" folder does not exist in the parentfolder /prerequisitesinstallerfiles. I think this must be done by creating the destinationpath of the binaries and there must be added the file from the installation media of the operating system.

But actually i have an other problem. The automatic reboot isn´t running. I set the LCM to RebootIfNeeded = $true , but nothing happens. Do you have an Idea ?

Greetz

Andre

from sharepointdsc.

BrianFarnhill avatar BrianFarnhill commented on June 12, 2024

OK I have made the changes in my fork to fix the original formatting issue raised in this issue as well as the missing prereq checks for SP2016. You can see this at https://github.com/BrianFarnhill/xSharePoint/tree/dev/Modules/xSharePoint/DSCResources/MSFT_xSPInstallPrereqs or you can wait for the next merge in to the main xSharePoint branches, they will be released as version 0.8

from sharepointdsc.

BrianFarnhill avatar BrianFarnhill commented on June 12, 2024

My fixes related to this discussion are included in #97 - I'll close this item off once it has been merged in to the dev branch

from sharepointdsc.

BrianFarnhill avatar BrianFarnhill commented on June 12, 2024

Ok so the fix for the formatting of the command line args is now in the dev branch and will be in the v0.8 release (hopefully within the next two weeks). I've tested a few offline installs and it appears to be working fine. Closing this one off for now, but let me know if anyone else sees issues with the formatting of the arguments.

from sharepointdsc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.