none
Подключить сетево диск другому пользователю, опционально указав логин и пароль RRS feed

  • Вопрос

  • Добрый день.

    Мне необходимо подключить сетевой диск по протоколу smb другому пользователю ПК в автоматическом режиме.

    На ПК установлен puppet-agent. Система Windows 10 Pro.

    При этом логин и пароль от сетевого диска не равны таковым у пользователя.

    Я пробовал:

    1. Подключать диск от имени администратора, силами puppet провизии.
      1. Не сработало, пользователь не видит диск
    2. При авторизации пользователя силами Powershell спрашивать логин и пароль (Get-Credential) и далее передовать в NeW-PSDrive
      1. Не сработало, после перезагрузки диск не виден в проводнике, net use пишет нет доступа
    3. При авторизации пользователя силами Powershell спрашивать логин и пароль (Get-Credential) и далее передовать в net use
      1. Не сработало, после перезагрузки диск виден в проводнике, но для обращения к нему необходимо ввести пароль. Сохранение пароля не работает.

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

    Что ещё можно предпринять?


    • Изменено flottsky 5 октября 2020 г. 8:56
    5 октября 2020 г. 8:08

Ответы

  • Приветствую.
    На самом деле задача странная. Может есть смысл удалять добавлять в группу самих пользователей автоматически?
    Но в целом могу предложить такое решение.

    ##Создает текстовый файл с паролем.
    Read-Host "Enter Password" -AsSecureString |  ConvertFrom-SecureString | Out-File "C:\%userfolder%\pwdsecurestring.txt"
    
    #Пароль пользователя зашифрованный получить из файла
    $secPassword = Get-Content "C:\%userfolder%\pwdsecurestring.txt" | ConvertTo-SecureString

    Диск мапить при каждом логине, если есть файл с паролем берете пароль с файла, что бы пользователь не вводил его. Если нет пароля или он не подходит, то создаете заново файл.

    • Помечено в качестве ответа flottsky 7 октября 2020 г. 10:55
    5 октября 2020 г. 17:18

Все ответы

  • Добрый день.

    Мне необходимо подключить сетевой диск по протоколу smb другому пользователю ПК в автоматическом режиме.

    На ПК установлен puppet-agent. Система Windows 10 Pro.

    При этом логин и пароль от сетевого диска не равны таковым у пользователя.

    Я пробовал:

    1. Подключать диск от имени администратора, силами puppet провизии.
      1. Не сработало, пользователь не видит диск
    2. При авторизации пользователя силами Powershell спрашивать логин и пароль (Get-Credential) и далее передовать в Net-PSDrive
      1. Не сработало, после перезагрузки диск не виден в проводнике, net use пишет нет доступа
    3. При авторизации пользователя силами Powershell спрашивать логин и пароль (Get-Credential) и далее передовать в net use
      1. Не сработало, после перезагрузки диск виден в проводнике, но для обращения к нему необходимо ввести пароль. Сохранение пароля не работает.

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

    Что ещё можно предпринять?

    во втором пункте у вас опечаткa - там не Net, a New

    так же у коммандлета есть ключ -Persist что видно в справке, а если будут проблемы с отображанием в проводнике то можно пробовать перезапускать проводник 


    The opinion expressed by me is not an official position of Microsoft

    5 октября 2020 г. 8:28
    Модератор
  • > во втором пункте у вас опечаткa - там не Net, a New

    Да, опечатался. По месту проверял успешность выполнения комманды.

    > ключ -Persist

    Да, ключ использовался. После перезагрузки диск в проводнике у пользователя отсутствует.

    Net use показывает наличие диска со статусом "нет доступа".

    https://ibb.co/Vp1B06k

    > перезапускать проводник

    Перезагрузка всего ПК не приводит к результату.

    Также попробовал именно перезапустить процесс проводника, диск также невидим для пользователя в проводнике.

    Но если я вместо New-PSDrive использую net use, то после перезагрузки пользователь видит диск, но ему приходится каждый раз заного вводить свой пароль. Установка галочки "Запомнить" не помогает.

    5 октября 2020 г. 8:55
  • Приветствую.
    На самом деле задача странная. Может есть смысл удалять добавлять в группу самих пользователей автоматически?
    Но в целом могу предложить такое решение.

    ##Создает текстовый файл с паролем.
    Read-Host "Enter Password" -AsSecureString |  ConvertFrom-SecureString | Out-File "C:\%userfolder%\pwdsecurestring.txt"
    
    #Пароль пользователя зашифрованный получить из файла
    $secPassword = Get-Content "C:\%userfolder%\pwdsecurestring.txt" | ConvertTo-SecureString

    Диск мапить при каждом логине, если есть файл с паролем берете пароль с файла, что бы пользователь не вводил его. Если нет пароля или он не подходит, то создаете заново файл.

    • Помечено в качестве ответа flottsky 7 октября 2020 г. 10:55
    5 октября 2020 г. 17:18
  • https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/export-clixml?view=powershell-7

    Вот еще ссылка тоже по вашей теме. Это позволит использовать DP API. Более секьюрно.

    5 октября 2020 г. 17:32
  • Спасибо, смог адаптировать под себя этот вариант.

    Вместо Read-Host использую Get-Credential чтобы хранить и логин, и пароль.

    В файл сохраняю используя Export-CliXml

    7 октября 2020 г. 10:59