SQL Server 2012的目标目录显示为灰色

我试图在Windows 2008和Windows 7上安装SQL Server 2012 Standard(我只想在Win7上安装pipe理工作室)。 相同的ISO; 两台机器都是新build的。 但是,在Windows 7上,共享function目录设置为C:\Program Files... ,即使没有选中任何选项,也会显示为灰色。 C:是OS驱动器; 然而,这是一个相当小的固态硬盘,所以我想安装一切,我可以到另一个驱动器。

在Win2008上它灰色(不幸的是,我不需要改变任何东西)。

什么可能导致共享目录在Windows 7上变灰?

共享要素目录由第一次安装的SQL设置,并且不能在之后的版本中从add / remove程序中卸载该版本,然后使用正确的目录重新安装。

扩展我的评论,命令行安装的近似synx和configuration文件。

 rem setup call setup.exe /IAcceptSQLServerLicenseTerms=TRUE /CONFIGURATIONFILE="Config_File_Instance.ini" /q rem configuration (ini) file contents ;SQLSERVER2008 Configuration File [SQLSERVER2008] ; Media and Shared locations INSTALLSHAREDDIR="D:\Apps\Program Files\Microsoft SQL Server" INSTALLSHAREDWOWDIR="D:\Apps\Program Files (x86)\Microsoft SQL Server" ; Install options ACTION="Install" FEATURES=SQLENGINE,REPLICATION,FULLTEXT HELP="False" INDICATEPROGRESS="False" X86="False" ERRORREPORTING="False" SQMREPORTING="False" FILESTREAMLEVEL="0" SECURITYMODE="SQL" FTSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" AGTSVCSTARTUPTYPE=Automatic SAPWD="ILGT@Oeo845684e09S0R$%E$eOdtedtyeoryi" ASSVCACCOUNT="DOMAIN\USER" ASSVCPASSWORD="<MY SECURE PASSWORD>" ASSYSADMINACCOUNTS="DOMAIN\USER" AGTSVCACCOUNT="DOMAIN\USER" AGTSVCPASSWORD="<MY SECURE PASSWORD>" SQLSVCACCOUNT="DOMAIN\USER" SQLSVCPASSWORD="<MY SECURE PASSWORD>" FEATURES=SQLENGINE,REPLICATION,FULLTEXT,AS SQLSYSADMINACCOUNTS="DOMAIN\USER" SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS" INSTANCEID="<INSTANCE_NAME>" INSTANCENAME="<INSTANCE_NAME>" INSTANCEDIR="D:\Apps" INSTALLSQLDATADIR="D:\Apps" 

这是很糟糕的devise限制,SQL Server 2014仍然是这种情况.SQL Server安装程序应该能够移动所有东西!

但是,您可以通过在所需位置创build文件夹(仍然分开32/64位),将所有内容从原始位置移动到新位置,然后创build将新位置映射到旧位置的连接点来解决此问题。 您需要具有pipe理员权限,closures所有SQL程序和连接,并停止所有SQL服务。

下面是我在Windows 7上做的,每个步骤都有解释。 我已经做了类似的事情,我不想在Server 2012R2上重新安装其他程序。

确保你明白每一步做什么之前,你这样做! 另外请注意任何包装线。

0)确保你有一个系统驱动器的当前备份,以防你发现一些或某些事情失败,我没有考虑到。

1)停止所有正在运行的SQL Server服务,使用系统pipe理或从命令行:

 sc stop SQLBrowswer sc stop SQLWriter sc stop MSSQL$SQLSERVER2012E 

2)在您想要程序文件所在的驱动器上build立文件夹:

 mkdir e:\SqlServer\x64 mkdir e:\SqlServer\x86 

3)移动64位程序。 检查输出,看是否有任何文件被复制而不是移动!

 robocopy "C:\program files\Microsoft SQL Server\100" "E:\SqlServer\x64\100" /e /copyall /move robocopy "C:\program files\Microsoft SQL Server\110" "E:\SqlServer\x64\110" /e /copyall /move 

4)移动32位程序:检查输出是否有文件被复制而不是移动!

 robocopy "C:\program files (x86)\Microsoft SQL Server\100" "E:\SqlServer\x86\100" /e /copyall /move robocopy "C:\program files (x86)\Microsoft SQL Server\110" "E:\SqlServer\x86\110" /e /copyall /move 

5)对于我来说,这个文件在移动110树时被复制,所以在删除文件夹之前我必须移动它。 使用Process Explorer(查找),我确定它是由WmiPrvSE.exe打开的,我将在接近尾声时重新启动。 现在,为了避免SQL Server文件夹被删除,我简单地把它移到了c:

 move "C:\program files\Microsoft SQL Server\110\Shared\instapi110.dll" c:\instapi110.dlx 

6)从程序文件中删除文件夹:

 rmdir /s "c:\program files\Microsoft SQL Server" rmdir /s "c:\program files (x86)\Microsoft SQL Server" 

7)如果其中任何一个失败,你可能错过了被复制而不是被移动的3)或4)中的一个文件。 返回到第5步,处理文件(与我处理instapi110.dlx的方法类似)。

8)制作路口,以便新位置中的文件也显示在旧的位置:

 mklink /J "C:\Program Files\Microsoft SQL Server" E:\SqlServer\x64" mklink /J "c:\Program Files (x86)\Microsoft SQL Server" "e:\SqlServer\x86" 

9)使用系统pipe理,SQL Serverconfigurationpipe理器或命令行重新启动SQL服务:

 sc start MSSQL$SQLSERVER2012E sc start SQLBrowswer sc start SQLWriter 

10)我使用系统pipe理重新启动WMI服务,因为它也自动重新启动任何相关服务。 对于其他组件,或者如果你不知道它是什么打开,你可以重新启动。

 del c:\instapi110.dlx 

11)确保在备份系统驱动器时,还要备份带有这些驱动器的驱动器(或至less文件夹)。 映像备份不会从其他磁盘上的联结目标备份文件。

我得到这个工作在SQL Server 2014标准安装。 它应该在2012年工作,因为参数是相同的命令行设置。 您需要将/INSTANCEDIR="your_path_here"参数添加到命令行安装中。 从admin powershell提示符运行这个:

.\setup.exe /Action=Install /INSTANCEDIR="D:\Microsoft SQL Server"

以下是SQL Server 2012安装参数列表:

https://technet.microsoft.com/en-us/library/ms144259(v=sql.110).aspx