如何轻松地重新连接到“不可用”的网络共享

Pet*_*ete 8 windows windows-command-prompt windows-net-command

每隔一段时间,我以管理员用户身份运行 cmd。为了方便起见,我设置了一个快捷方式......

C:\Windows\System32\runas.exe /u:admin.user@domain cmd 
Run Code Online (Sandbox Code Playgroud)

在某些时候,我想运行指向我的普通用户可用的映射驱动器的脚本。

C:\Windows\system32>net use
Status       Local     Remote                    Network

-------------------------------------------------------------------------------
Unavailable  L:        \\fileserver\shared\path
                                                Microsoft Windows Network
Unavailable  X:        \\fileserver\shared\temp         Microsoft Windows Network
The command completed successfully.
Run Code Online (Sandbox Code Playgroud)

我对让我的 L: 驱动器映射特别感兴趣。我认为这样的事情应该有效......

C:\Windows\system32>net use l:
Local name        l:
Remote name       \\fileserver\shared\path
Resource type     Disk
The command completed successfully.

C:\Windows\system32>l:
The system cannot find the drive specified.
Run Code Online (Sandbox Code Playgroud)

如果我重新映射驱动器,一切都很愉快,但它是一件苦差事(实际上“路径”要长得多)。

C:\Windows\system32>net use l: \\fileserver\shared\path
The command completed successfully.

C:\Windows\system32>l:

L:\>
Run Code Online (Sandbox Code Playgroud)

Til*_*idt 5

正如这篇 Technet 文章中所述,是 UAC 的副作用。可以通过向注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System添加名称EnableLinkedConnections、类型DWORD和值来避免这种情况1。这将使在常规用户凭据下创建的网络连接也可用于通过 RunAs 以提升的权限运行的进程。


小智 1

试试这个:

for /f "TOKENS=3,4" %a in ('net use') do net use %a %b
Run Code Online (Sandbox Code Playgroud)

C:\>n:
系统找不到指定的驱动器

C:\>for /f "TOKENS=3,4" %a in ('net use') do net use %a %b
... [忽略输出] ...

C:\>n:

N:\>

  • 这让我走上了正确的道路,我有一个 .bat,似乎适用于 Windows 7 和 10: FOR /F "TOKENS=1,2,3" %%A IN ('NET USE') DO IF “%%A”==“不可用”网络使用%%B %%C (2认同)