我为客户编写了一个批处理脚本,用于rasdial
建立 PPTP VPN 连接,以自动从另一家公司的远程计算机复制一些文件。我正尝试将该脚本移动到Windows Server 2012 R2 核心安装,并且rasdial
不存在。
值得注意的是,它rasdial
安装在 Windows 2012 R2 标准版和基础版上......但我不知道它来自什么功能/角色,如果有的话(谷歌让我失望了)。
所以:
答案1
我仍然不知道安装了什么功能或角色rasdial
,但我能够将所有相关文件复制到核心服务器(位于名为 C:\RasDial 的文件夹中)以使其正常工作。
我丢失的 DLL 比我想象的要多得多。我depends.exe
在核心服务器上运行,找出了丢失的 DLL。然后,我从运行的 2012 R2 标准安装中复制了所有丢失的 DLL,然后重新加载depends.exe
以查找丢失的子依赖项,继续此过程,直到我拥有与运行服务器上相同的丢失 DLL 列表rasdial
。所需的 DLL 都在运行系统的 C:\Windows\System32 中,因此很容易找到它们。
最后,我发现我需要一个包含 rasdial.exe.mui 文件的 en-US 子文件夹,以及从工作系统复制的 rasphone.pbk 文件,其中包含 VPN 的“电话簿”。
基于某些文件以“IE”开头(可能意味着“Internet Explorer”)的事实,我猜测@Zoredache 是正确的:它可能需要“桌面体验”功能……这不是 Windows 核心功能。
以下是让它运行所需的完整文件列表:
APPREPAPI.DLL
AVRT.DLL
D2D1.DLL
D3D11.DLL
DCOMP.DLL
DEVMGR.DLL
DXGI.DLL
EFSADU.DLL
ELSCORE.DLL
HLINK.DLL
IEADVPACK.DLL
IEFRAME.DLL
IEUI.DLL
IMGUTIL.DLL
INETCOMM.DLL
MFPLAT.DLL
MRMCORER.DLL
MSFEEDS.DLL
MSHTML.DLL
MSOERT2.DLL
MSRATING.DLL
OCCACHE.DLL
OLEDLG.DLL
PCACLI.DLL
PRINTUI.DLL
PRNTVPT.DLL
PUIAPI.DLL
rasdial.exe
rasphone.pbk
RTWORKQ.DLL
SHDOCVW.DLL
子目录 en-US:
rasdial.exe.mui