5

Если для UAC задан уровень по умолчанию , в Windows 7 невозможно получить доступ к сопоставленным сетевым папкам из командной строки администратора или любого другого процесса с повышенными правами.

Это приводит к нежелательным ошибкам, например, при попытке импортировать файл * .reg, который находится в сетевой папке. Двойной щелчок приводит к следующему и довольно запутанному сообщению об ошибке после принятия приглашения UAC:

Невозможно импортировать M:\sharename\settings.reg: Ошибка открытия файла. Может быть ошибка диска или файловой системы.

Можно ли использовать уже подключенные сетевые ресурсы при работе с повышением прав? Или есть способ обойти это поведение?

Обновление: я знаю, что это работает, чтобы открыть административную командную строку и подключить диски с помощью net use . Это делает долю доступной для всех повышенных процессов; однако, это не является постоянным и должно повторяться после каждого входа в систему.

4 ответа4

8

Это не поддерживается, но вы можете установить EnableLinkedConnections в реестре для достижения этой цели. См. Http://support.microsoft.com/kb/937624

Хотя Microsoft заявляет, что это «может сделать вашу систему небезопасной», мы все еще ждем подробностей об этом здесь: http://social.technet.microsoft.com/Forums/en/w7itprosecurity/thread/25cb7824-2a8d-4dbd-b802 -1c64bed3a5e0? Prof = требуется

3

Короче нет. Не существует поддерживаемого способа скопировать текущий набор сопоставленных / прошедших проверку подлинности сетевых ресурсов из не повышенного контекста в ваш повышенный контекст. По сути, это отдельные логины, с которыми вы можете взаимодействовать с одной консоли. Возможность обмена данными между процессами с повышенными и не повышенными правами может нарушить цели безопасности, заключающиеся в их разделении.

Однако, если эти сетевые диски смонтированы с использованием учетных данных вашей учетной записи пользователя (а не отдельного логина / пароля), вы можете попытаться получить к ним доступ только по пути UNC вместо фактического сопоставления дисков.

2

Я собрал простой VBScript, который отображает диски, которые снова отображаются в текущем сеансе, для сеанса администратора с повышенными правами. После запуска сценария сопоставленные диски становятся доступными для всех процессов с повышенными правами. Это работает, если текущий пользователь уже является локальным администратором:

Option Explicit
Dim objNetwork, objShell
Dim strDriveLetter, strNetworkPath
Dim colDrives, intDrive, strDrives


If WScript.Arguments.length =0 Then
    Set objNetwork = CreateObject("WScript.Network")
    Set colDrives = objNetwork.EnumNetworkDrives

    For intDrive = 0 To (colDrives.Count -1) Step 2
        WScript.Echo colDrives.Item(intDrive) & " is mapped to: " & colDrives.Item(intDrive + 1)
        If Len(strDrives) > 0 Then strDrives = strDrives & " "
        strDrives = strDrives & " " & Chr(34) & colDrives.Item(intDrive) & Chr(34) &  " " & Chr(34) & colDrives.Item(intDrive + 1) & Chr(34) 
    Next

  If Len(strDrives) > 0 Then
      ' re-call script with elevation
      Set objShell = CreateObject("Shell.Application")
      objShell.ShellExecute "cscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & strDrives, "", "runas", 1
    Else
        WScript.Echo "No drives Mapped."
    End If

Else
  ' elevated part
  Set objNetwork = CreateObject("WScript.Network")

  For intDrive = 0 To (WScript.Arguments.Count - 1) Step 2
        WScript.Echo WScript.Arguments(intDrive) & " is mapped to: " & WScript.Arguments(intDrive + 1)
        On Error Resume Next ' ignore already mapped drives
        objNetwork.MapNetworkDrive WScript.Arguments(intDrive), WScript.Arguments(intDrive + 1)
        On Error GoTo 0
    Next

End If
1

Параметр реестра «EnableLinkedConnections» никогда не работал для меня в Windows 7 (корпоративный компьютер). Пробовал несколькими способами безрезультатно.

Пробовал скрипт от 0xA3 и работает без нареканий. Спасибо за это.

Чтобы запустить его автоматически, просто напишите сценарий в файле (например, remount-admin.vbs) и сохраните этот файл в C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup.

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