登录脚本中的驱动器映射不起作用

登录脚本中的驱动器映射不起作用

我在服务器场中拥有大约 2008 R2 远程桌面服务器。据我所知,它们都具有相同的更新状态,并且也由相同的 GPO 管理。除其他外,通过 RDP 登录的用户执行mylogin.cmd 映射驱动器 I: 的登录脚本,除非出于某些个人原因他们已经拥有这样的驱动器:

if exist I:\*.* goto havei
eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO LogOnOffDebug /D "Try Map I:"
NET USE I: \\myserver\myshare /persistent:no 
eventcreate /ID 2 /L APPLICATION /T INFORMATION /SO LogOnOffDebug /D "errorlevel = %errorlevel%"
if exist I:\*.* goto havei
eventcreate /ID 3 /L APPLICATION /T WARNING /SO LogOnOffDebug /D "This is bad"
:havei

如您所见,我已经添加了一些行来调试问题,这是我观察到的:我在事件日志中找到了事件 1 和 2,但没有找到事件 3。显然,

  • NET USE由于没有看到 I: 文件,因此执行了
  • 命令执行无错误,
  • 执行后 I: 可见。

这正是应该发生的情况,而且确实发生在所有农场成员身上。

然而,在两台机器上,用户确实不是之后的会话中会看到驱动器 I:!检查为可见的驱动器相同期间登录脚本的执行与其他农场成员一样!在我看来,这好像脚本执行期间映射的驱动器没有“导出”(?) 到正常会话。只需在运行会话期间执行完全相同的登录脚本即可提供帮助并为他们提供驱动器,但这当然不是合适的补救措施。

导致这种行为的众多好服务器和少数坏服务器之间有什么区别呢?(我想补充一下,这种现象是最近才出现的,之前几年并不存在——所以某物肯定是最近对坏服务器做了什么,但我不知道是什么)

答案1

如果您的用户已与其他设备建立网络连接,则在映射时,这很可能也会影响您的脚本。您可以先尝试断开脚本中所有现有的映射驱动器

Net Use * /delete

然后添加新的映射驱动器命令。

答案2

如果它是在用户登录时启动的脚本,您只需将批处理放在每个服务器“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup”中就可以了。

>

导致这种行为的众多好服务器和少数坏服务器之间有什么区别呢?(我想补充一点,这种现象是最近才出现的,之前几年并不存在 - 所以最近肯定对坏服务器做了一些事情,但我不知道是什么)

我个人在本地 win 8.1 和 10 客户端上的本地网络中使用 windows 2008R2 共享时遇到了同样的问题,他们运行了桌面服务,但它是在网络服务之前启动的(正如你想象的那样,如果持久存在则共享,但如果没有持久性,则使用红色框,我根本就不在那里,因为无法连接到 net use cmdlet)

抱歉,拼写错误或服务名称不够详细,无法用英文找到正确的服务名称(我的 win 2008R2 已升级)

答案3

我建议通过这两个选项来解决这个问题

批处理脚本1;

net use Z:
if %errorlevel% EQU 0 net use I: /delete
net use I: \\path

或者,不管每次都映射一遍脚本2

if exist i:\ (
    net use i: /delete
)
net use i: \\path

另一个选项是通过 gpo 映射 https://activedirectorypro.com/map-network-drives-with-group-policy/

我希望这可以解决你的问题

由于您没有告诉我们您使用的是哪个服务器场,请轻松向我们更新更多信息。(抱歉,目前无法发表评论)

相关内容