Как к сети доступа совместно использует от поднятого процесса в Windows 7?

С набором контроля учётных записей к уровню По умолчанию не возможно в Windows 7 получить доступ к отображенным сетевым папкам от подсказки команды администрирования или любого другого поднятого процесса.

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

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

Возможно иметь уже отображенные сетевые ресурсы, также доступные при выполнении с повышением? Или есть ли обходное решение к тому поведению?

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

5
задан 05.02.2010, 18:23

3 ответа

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

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

4
ответ дан 07.12.2019, 16:52

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

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

8
ответ дан 07.12.2019, 16:52

Я соединил простой 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
2
ответ дан 07.12.2019, 16:52

Теги

Похожие вопросы