Dynamics CRM 如何使用命令列進行安裝

vic0228發表於2018-12-14

     之前沒注意過command的方式來安裝CRM,估計很多人也不知道,之所以關注到他是因為最近在搞一個外資客戶的專案,客戶公司的IT是歸global統一管理,而global方面以安全為由拒絕給AD賬號建立group的許可權,必須先預先建立好,所以只能通過command方式來指定group。

     安裝的前提當然是先把app和db server加入域,然後在db server上裝好sql,在app server上下載好CRM的安裝檔案並解壓(後文中SetupServer.exe定位的就是解壓出來的安裝資料夾)。

     本篇的目的是為了應對預先裝好AD Group,所以我們得先把AD的四個group建好,雖然group的建立許可權可以不用,但剩餘的許可權一個都不能少,具體需要哪些許可權可以看官方docs

     關於command的說明可以參考官方docs

     command命令其實很簡單

SetupServer.exe /QR /L C:\CRM\server_install_log.log /config C:\CRM\server_install_config.xml

     其中的config配置檔案需要我們來配置,這裡貼上我的配置檔案,具體的配置檔案中的節點說明可以看官方docs

<CRMSetup> 
    <Server> 
        <Patch update="false"></Patch> 
        <LicenseKey>X7CN4-xxxx-xxxx-xxxxx-JHWRF</LicenseKey> 
        <SqlServer>D365-Test</SqlServer> 
        <Database create="true"/> 
        <Reporting URL="http://D365-Test/ReportServer"/> 
        <OrganizationCollation>Latin1_General_CI_AI</OrganizationCollation> 
        <basecurrency isocurrencycode="USD" currencyname="US Dollar" currencysymbol="$" currencyprecision="2"/> 
        <Organization>Test</Organization> 
        <OrganizationUniqueName>Test</OrganizationUniqueName> 
        <Groups AutoGroupManagementOff="false">
          <PrivUserGroup>CN=PrivUserGroup,OU=CRM-TEST,DC=crm,DC=com</PrivUserGroup>
          <SQLAccessGroup>CN=SQLAccessGroup,OU=CRM-TEST,DC=CRM,DC=com</SQLAccessGroup>
          <ReportingGroup>CN=ReportingGroup,OU=CRM-TEST,DC=CRM,DC=com</ReportingGroup>
          <PrivReportingGroup>CN=PrivReportingGroup,OU= CRM-TEST,DC=CRM,DC=com</PrivReportingGroup>
        </Groups>
        <WebsiteUrl create="true" port="5555"> </WebsiteUrl> 
        <InstallDir>c:\Program Files\Microsoft Dynamics CRM</InstallDir> 
        <CrmServiceAccount type="DomainUser"> 
            <ServiceAccountLogin>crm\crmadmin</ServiceAccountLogin> 
            <ServiceAccountPassword>xxxxxx</ServiceAccountPassword> 
        </CrmServiceAccount> 
        <SandboxServiceAccount type="DomainUser"> 
            <ServiceAccountLogin>crm\crmadmin</ServiceAccountLogin> 
            <ServiceAccountPassword>xxxxxx</ServiceAccountPassword> 
        </SandboxServiceAccount> 
        <DeploymentServiceAccount type="DomainUser"> 
            <ServiceAccountLogin>crm\crmadmin</ServiceAccountLogin> 
            <ServiceAccountPassword>xxxxxx</ServiceAccountPassword> 
        </DeploymentServiceAccount> 
        <AsyncServiceAccount type="DomainUser"> 
            <ServiceAccountLogin>crm\crmadmin</ServiceAccountLogin> 
            <ServiceAccountPassword>xxxxx</ServiceAccountPassword> 
        </AsyncServiceAccount> 
        <MonitoringServiceAccount type="DomainUser">
          <ServiceAccountLogin>crm\crmadmin</ServiceAccountLogin>
          <ServiceAccountPassword>xxxxx</ServiceAccountPassword>
        </MonitoringServiceAccount>
        <VSSWriterServiceAccount type="DomainUser">
            <ServiceAccountLogin>crm\crmadmin</ServiceAccountLogin>
            <ServiceAccountPassword>xxxxxx</ServiceAccountPassword>
        </VSSWriterServiceAccount>
        <SQM optin="false"/> 
        <muoptin option="false"/> 
        <Email> 
        </Email> 
    </Server> 
</CRMSetup>

    其實看了我的示例配置檔案中的節點你也能看明白,這些配置都是我們在安裝的過程中手工配置指定的,這裡只是提前配置好了而已。

    關於config配置檔案中的Group路徑有一個注意的地方,如果你的OU存在巢狀,那你要把你Group所在的OU開始往上直到最頂級的OU都列出來,比如下圖中的路徑應該是CN=PrivUserGroup,OU=DEV,OU=GC-CRM,OU=AW-CN-NORTH,OU=AW,OU=SERVERS,DC=crm,DC=com,我因為只列了最底層的這個DEV的OU導致安裝一直報Group不存在。

    我是在寫程式碼嘗試用Group名字去找組時才發現的這個問題

 用管理員身份執行command後,可以看下程式管理器,起了一個CRM的安裝程式

   當安裝過程中出現錯誤,會彈出安裝失敗的視窗,可以點開日誌看下出了什麼錯,糾正它然後再一次執行命令列

    如果不報錯了,正確開始正常安裝了則會彈出以下介面,就表示沒問題了。

相關文章