如何获取映射到我的系统的所有网络驱动器的列表?


3

我在本地系统帐户下映射了一个网络驱动器,我的意思是我使用本地系统帐户登录我的机器。现在我使用其他一些有效的用户帐户注销并再次登录到该计算机,但我在我的计算机资源管理器中找不到该映射的驱动器,但我能够在我的应用程序中使用该映射的驱动器。这是正常的吗?

有没有办法在我的系统上查看所有映射的网络驱动器?

我在Windows XP机器上。


1
你是如何 - 更重要的是,为什么 - 登录的Local System
grawity 2011年

Answers:


3

是的,这是正常的。分配给它们的网络连接和驱动器号是会话本地的。通常它们会在注销时消失(当会话本身被销毁时),并在您再次登录时由Winlogon重新创建。

有了Local System它变得混乱,虽然。

Local System再次登录(psexec -desi cmd可能有用),然后运行net use以列出所有连接或net use * /delete断开连接。


3
> net use

是你需要的。有关详细信息,请参阅


yaa我已经完成了但无法找到我能够使用的映射驱动器...
AMIT

net view列出服务器上的可用共享,而不是活动连接。
grawity 2011年

@grawity:当然,你是对的......我的意思是网络使用命令(我更新了我的答案)
fretje

0

我使用PowerShell作为脚本的一部分从远程计算机获取映射驱动器,以将其设置移动到人员的新计算机上:(将$ OldComputer设置为旧计算机的名称或IP)它通过所有驱动器的列表远程系统,如果它们不是本地驱动器,它将尝试删除当前计算机上的驱动器映射(如果它被其他东西使用)然后重新映射它。注释掉第二行到最后一行(如上所示,如果需要,可以将自己的行添加到log或msgbox中。)

$netObj = New-Object -com wscript.Network
$WMI1 = [WMISearcher] "Select Name, Providername from win32_mappedLogicalDisk"
$WMI1.Scope.path="\\" + $oldComputer + "\root\cimv2"
$WMI1.Options.ReturnImmediately
$ColDrives = $WMI1.Get()

foreach ($objDrive in $colDrives) {
      $TestLocal = get-wmiObject Win32_LogicalDisk | ? {$_.DeviceID -eq $objDrive.Name} | % {$_.Providername}
      If ($TestLocal) {
        Net Use /Delete $objDrive.Name >> $LogFile
      }#If
      #Map the drive
      Net use $objDrive.Name $objDrive.ProviderName  >> $LogFile
}#foreach 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.