【问题标题】:problems with map network drive batch script and non domain users映射网络驱动器批处理脚本和非域用户的问题
【发布时间】:2016-09-23 13:23:52
【问题描述】:

我使用以下批处理脚本为登录到 Windows 7 计算机的所有域用户自动映射网络共享。

@echo off
net use s: "\\domain.com\path\to\share"

我已将它放到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 文件夹中,这样它就可以在所有用户登录时运行。 如果有更好的方法,请告诉我。

这适用于域用户,但要求本地用户输入用户名和密码。

我想让我的脚本更优雅一点。如果本地用户登录,我希望脚本退出/关闭。我确信我必须编写进行一些检查的代码。我只是不知道怎么做。

(已编辑):很遗憾,IT 部门已禁用注册表编辑功能。我也无权访问活动目录和组策略系统。

【问题讨论】:

  • 域用户的登录脚本应该存在于域控制器上的 NETLOGON/LOGONSCRIPTS 文件夹中。

标签: batch-file


【解决方案1】:

首先,是的,有更好的方法。对于所有用户,在以下位置创建一个注册表项:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

仅针对当前用户,在以下位置创建注册表项:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

如果使用域,您也可以将脚本放在 netlogon 共享中。

您可以检查 %USERDNSDOMAIN% 变量是否包含您的域。 这是一个完整的组检查登录脚本,您可以从以下脚本开始:

https://github.com/deajan/windows_scripts/tree/master/bin/LogonAD

祝你好运。

【讨论】:

    【解决方案2】:

    您可以为“用户名”提示(一个不存在的用户名)提供 anwser,并将 STDOUT 和 STDERR 的输出重定向到 NUL。对于域成员,此答案将被忽略(因为没有问题)。

    echo NoAccess|net use s: "\\domain.com\path\to\share" >nul 2>&1
    

    【讨论】:

    • 如果我想使用真实的用户名和密码,我该怎么做?
    • net use /? - 如果您不介意以明文形式提供密码。
    猜你喜欢
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2023-03-31
    • 2016-09-24
    相关资源
    最近更新 更多