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

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

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

Не может M:sharenamesettings импорт.рег: Ошибка открытия файла. Возможно, произошла ошибка диска или файловой системы.

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

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

5
задан 0xA3
24.03.2023 18:52 Количество просмотров материала 2594
Распечатать страницу

4 ответа

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

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

3
отвечен Ryan Bolger 2023-03-26 02:40

Он не поддерживается, но для этого вы можете установить 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
отвечен Jon Rhoades 2023-03-26 04:57

Я собрал простой 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
отвечен 0xA3 2023-03-26 07:14

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

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

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

1
отвечен fuujuhi 2023-03-26 09:31

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх