3

Я подключил сетевой диск под локальной системной учетной записью. Я имею в виду, что я захожу на свою машину, используя локальную системную учетную запись. Теперь я вышел из системы и снова вошел в систему, используя другую действительную учетную запись пользователя, но я не смог найти этот подключенный диск в обозревателе компьютеров, хотя могу использовать этот подключенный диск в своем приложении. Это нормально?

Есть ли способ увидеть все подключенные сетевые диски в моей системе?

Я на машине с Windows XP.

3 ответа3

3

Да, это нормально. Сетевые подключения и назначенные им буквы дисков являются локальными для сеанса. Обычно они исчезают при выходе из системы (когда сам сеанс уничтожается) и воссоздаются Winlogon при повторном входе в систему.

Однако с Local System это сбивает с толку.

Снова войдите в систему как Local System (может psexec -desi cmd ), а затем запустите net use для просмотра списка всех соединений или net use * /delete для их отключения.

3
> net use

это то, что вам нужно. Смотрите это для получения дополнительной информации.

0

Я перехватываю подключенные диски с удаленного компьютера, используя 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 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .