批处理或 PowerShell 在 FQDN 上安装驱动器

批处理或 PowerShell 在 FQDN 上安装驱动器

我目前每天早上使用批处理脚本来挂载我的网络共享:

NET USE * /DELETE /Y
NET USE Z: \\<IP>\<SHARE> <AUTHENTICATION> /persistent:no
...

当我在网络上时,这没问题,但在异地时就不行了。我们有一个指向我们公共 IP 的域名,然后端口转发开始生效,所以理论上,我可以

NET USE * /DELETE /Y
NET USE Z: \\fqdn.com\<SHARE> <AUTHENTICATION> /persistent:no
...

除了在批处理脚本或 Windows UI 中不起作用之外。

我认为有一种方法可以获取 fqdn.com 的 IP(它也方便地存储在 fqdn2.com/ip.txt 中),但这远远超出了我的批处理经验。

非常感谢您的任何意见。

答案1

使用 PowerShell 可以使任务变得稍微简单一些,因为您可以充分利用 .Net 框架的全部功能。有一个名为 System.Net.WebClient 的类可用于下载文件并获取其内容。您可以使用类似于下面的 PowerShell 脚本来检索 ip.txt 文件的内容,然后执行 cmd.exe 命令。

$fqdn = "fqdn domain name goes here"
$url  = "http://$fqdn/ip.txt"

$fqdnIp = (new-object System.Net.WebClient).DownloadString($url)

Write-Host -ForegroundColor Green "Retrieved contents of ${url}: $fqdnIp"

$cmd = "`"NET USE * /DELETE /Y`""
&cmd.exe /c $cmd

$cmd = "`"NET USE Z: \\$fqdnIp\<SHARE> <AUTHENTICATION> /persistent:no`""
&cmd.exe /c $cmd

答案2

只是因为你可以去网站在 fqdn.com,这不允许您访问您的内部网络或内部域。端口 80 是 HTTP(网站)的标准端口,它从公共 IP 转发到您的内部 Web 服务器。但是,除了一些其他例外情况外,这就是允许通过的全部端口。

要访问您的内部网络和资源,您需要一个虚拟专用网络(VPN)。VPN 是从互联网到内部网络的安全(加密)连接。VPN 可让内部网络之外的计算机“感觉”就像在内部网络一样。

一旦建立了 VPN 连接,批处理脚本就可以运行。您可以访问内部网络驱动器和打印机,并执行在办公室可以执行的任何操作。

Microsoft 为所有版本的 Windows Server 提供免费的 VPN 服务器,客户端内置于所有版本的 Windows 中。还有其他 VPN 解决方案,包括硬件和软件,既有免费的也有付费的。

与您的 Windows/网络管理员联系,可能已经安装了 VPN。

答案3

你的脚本应该可以工作,但你还需要检查 4 件事

  1. DNS 正常工作吗?尝试通过 ping 在异地机器上进行验证。

  2. 尝试在异地客户端上禁用 WINS。

  3. 您是否转发了所有必需的端口?尝试将服务器放在 DMZ 主机上,看看是否可行。

    如果公共 IP 没有改变,则简单地将其硬编码到您的 systems32\etc\hosts 中。

相关内容