我在本地系统帐户下映射了一个网络驱动器,也就是说我使用本地系统帐户登录我的计算机。现在我注销并使用其他有效用户帐户再次登录计算机,但我无法在计算机资源管理器中找到该映射驱动器,尽管我能够在我的应用程序中使用该映射驱动器。这是正常的吗?
有什么方法可以查看我的系统上所有映射的网络驱动器?
我在一台 Windows XP 机器上。
答案1
是的,这是正常的。网络连接和分配给它们的驱动器号是会话本地的。通常它们在注销时消失(当会话本身被破坏时),并在您再次登录时由 Winlogon 重新创建。
但它Local System
变得令人困惑。
再次以以下身份登录Local System
(psexec -desi cmd
可能会有用),然后运行net use
列出所有连接或net use * /delete
断开它们。
答案2
> net use
就是您所需要的。请参阅这了解更多信息。
答案3
我使用 powershell 作为脚本的一部分从远程计算机获取映射驱动器,以将其设置移动到新计算机:(将 $OldComputer 设置为旧计算机的名称或 IP)它会遍历远程系统上的所有驱动器列表,如果它们不是本地驱动器,它将尝试删除当前计算机上的驱动器映射(以防其他计算机使用它),然后重新映射它。注释掉倒数第二行(foreach 上方的一行,并根据需要将您自己的行添加到 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