Диспетчер учетных данных Windows (Credential Manager) позволяет безопасно хранить учетные записи и пароля для доступа к сетевым ресурсам, веб сайтам и приложениям. Благодаря сохраненным в Credential Manager паролям вы можете подключаться без ввода пароля к сетевым ресурсам, которые поддерживаются проверку подлинности Windows (NTLM или Kerbersos), аутентификацию по сертификату, или базовую проверку подлинности.
Содержание:
- Используем диспетчер учетных данных Windows для хранения паролей
- Управление сохраненными учетными данными Windows из командной строки
- Доступ к менеджеру учетных данных Windows из PowerShell
Используем диспетчер учетных данных Windows для хранения паролей
Диспетчер учетных данных встроен в Windows и позволяет безопасно хранить три типа учетных данных:
- Учетные данные Windows (Windows Credentials) — учетные данные доступа к ресурсам, которые поддерживаются Windows аутентификацию (NTLM или Kerbersos). Это могут быть данные для подключения сетевых дисков или общим SMB папкам, NAS устройствам, сохраненные пароли для RDP подключений, пароли к сайтам, поддерживающих проверку подлинности Windows и т.д;
- Учетные данные сертификатов (Certificate-Based Credentials) – используются для доступа к ресурсам с помощью сертификатов (из секции Personal в Certificate Manager);
- Общие учетные данные (Generic Credentials) – хранит учетные данные для доступа к сторонним приложениям, совместимым с Credential Manager и поддерживающим Basic аутентификацию;
- Учетные данные для интернета (Web Credentials) – сохранённые пароли в браузерах Edge и Internet Explorer, приложениях Microsoft (MS Office, Teams, Outlook, Skype и т.д).
Например, если при доступе к сетевой папке вы включите опцию “Сохранить пароль”, то введенный вами пароли будет сохранен в Credential Manager.
Аналогично пароль для подключения к удаленному RDP/RDS серверу сохраняется в клиенте Remote Desktop Connection (mstsc.exe).
Открыть диспетчер учетных данных в Windows можно:
- из классической панели управления (Control Panel\User Accounts\Credential Manager, Панель управления -> Учетные записи пользователей -> Диспетчер учетных данных);
- изкоманднойстроки:
control /name Microsoft.CredentialManager
На скриншоте видно, что в Credential Manager хранятся два пароля, которые мы сохранили ранее.
Сохраненный пароль для RDP подключения сохраняется в формате
TERMSRV\hostname
.
Здесь вы можете добавить сохранённый пароль, отредактировать (просмотреть сохраненный пароль в открытом виде из графического интерфейса нельзя) или удалить любую из записей.
Для управления сохраненными паролями можно использовать классический диалоговый интерфейс Stored User Names and Password. Для его запуска выполните команду:
rundll32.exe keymgr.dll,KRShowKeyMgr
Здесь вы также можете управлять сохраненными учетными данными, а также выполнить резервное копирование и восстановление записей в Credential Manager (можно использовать для переноса базы Credential Manager на другой компьютер).
Управление сохраненными учетными данными Windows из командной строки
Вы можете добавить удалить и вывести сохраненные учетные данных в Credentil Manager из командной строки с помощью утилиты cmdkey.
Добавить в диспетчер учетные данные для доступа к серверу FS01:
cmdkey /add:FS01 /user:kbuldogov /pass:Passw0rdd1
Если нужно сохранить доменную учетную запись:
cmdkey /add:fs01.winitpro.local /user:[email protected] /pass:Passw0rdd1
Сохранить учетные данные для доступа к RDP/RDS серверу:
cmdkey /generic:termsrv/MSKRDS1 /user:kbuldogov /pass:Passw0rdd1
Вывести список сохраненных учетных данных:
cmdkey /list
Вывести список хранимых учетных данных для указанного компьютера:
cmdkey /list:fs01.winitpro.local
Удалить ранее сохраненные учетные данные:
cmdkey /delete:FS01
Удалить из Credential Manager все сохраненные пароли для RDP доступа:
For /F "tokens=1,2 delims= " %G in ('cmdkey /list ^| findstr "target=TERMSRV"') do cmdkey /delete %H
Полностью очистить пароли в Credential Manager:
for /F "tokens=1,2 delims= " %G in ('cmdkey /list ^| findstr Target') do cmdkey /delete %H
Также для управления сохраненными учетными данными можно использовать утилиту vaultcmd.Вывести список сохраненных учетных данных типа Windows Credentials:
vaultcmd /listcreds:"Windows Credentials"
Все сохраненные пароли хранятся в защищенном хранилище Windows Vault. Путь к хранилищу можно получить с помощью команды:
vaultcmd /list
По умолчанию это
%userprofile%\AppData\Local\Microsoft\Vault
. Ключ шифрования хранится в файле Policy.vpol. Клю шифровани используется для рашировки паролей в файлах .vcrd.
Для работы Credential Manager должна быть запущена служба VaultSvc:
Get-Service VaultSvc
Если служба отключена, при попытке получить доступ к Credential Manager появится ошибка:
Credential Manager Error The Credential Manager Service is not running. You can start the service manually using the Services snap-in or restart your computer to start the service. Error code: 0x800706B5 Error Message: The interface is unknown.
Если вы хотите заблокировать пользователям возможность сохранения сетевых паролей в Credential Manager, нужно включить параметр Network access: Do not allow storage of passwords and credentials for network authentication в разделе GPO Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options.
Теперь, если пользователь попытается сохранить пароль в хранилище, появится ошибка:
Credential Manager Error Unable to save credentials. To save credentials in this vault, check your computer configuration. Error code: 0x80070520 Error Message: A specified logon session does not exist. It may already have been terminated.
Доступ к менеджеру учетных данных Windows из PowerShell
В Windows нет встроенных командлетов для обращения к хранилищу PasswordVault из PowerShell. Но вы можете использовать модуль CredentialManager из галереи PowerShell.
Установите модуль:
Install-Module CredentialManager
В модуле всего 4 командлета:
- Get-StoredCredential – получить учетные данные из хранилища Windows Vault;
- Get-StrongPassword – сгенерировать случайный пароль;
- New-StoredCredential – добавить учетные данные в хранилище;
- Remove-StoredCredential – удалить учетные данные.
Чтобы добавить новые учетные данные в хранилище CredentialManager, выполните команду:
New-StoredCredential -Target 'contoso' -Type Generic -UserName '[email protected]' -Password '123qwe' -Persist 'LocalMachine'
Проверить, есть в хранилище сохраненные данные:
Get-StoredCredential -Target contoso
С помощью командлета Get-StoredCredential вы можете вывести сохраненный пароль, хранящийся в диспетчере учетных данных в отрытом виде.
Выведите список сохраненных учетных данных:
cmdkey.exe /list
Скопируйте значение Target для объекта, пароль которого вы хотите извлечь и вставьте его в следующую команду:
$cred = Get-StoredCredential -Target LegacyGeneric:target=termsrv/MSKRD2S1 [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($cred.Password))
Команда выведет сохраненный пароль в открытом виде.
Также для получения сохраненных паролей из credman в открытом виде можно использовать утилиты типа Mimikatz (смотри пример).
Сохраненные пароли из Credential Manager можно использовать в ваших скриптах PowerShell. Например, в следующем примере я получаю сохраненные имя и пароль в виде объекта PSCredential и подключаюсь с ними к Exchange Online из PowerShell:
$psCred = Get-StoredCredential -Target "Contoso"
Connect-MSolService -Credential $psCred
Также вы можете использовать Get-StoredCredential для безопасного получения сохранённых учетных данных в заданиях планировщика.
Также обратите внимание на модуль PowerShell Secret Management, который можно использовать для безопасного хранения паролей в Windows (поддерживает различные хранилища паролей: KeePass, LastPass, HashiCorp Vault, Azure Key Vault, Bitwarden.
Чтобы удалить сохраненные учетные данные из Windows Vault, выполните:
Remove-StoredCredential -Target Contoso
- Автор темы
-
#1
Имеется 2 ПК, Windows 7 x86, на одном подключён принтер и прописан Share для сети.
При подключении второго ПК к принтеру через IP, запрашивается пароль, далее пароль сохраняется и всё работает, но как только ПК перегружается сразу же пароль удаляется…
Как сделать так что бы пароль оставался бы.
Думаю причина втом что сохранение пароля идёт через сессию «Logon Session«, а надо что бы там писалось бы «Enterprise«
Последнее редактирование:
-
#2
Enterprise можно добиться если оба ПК будут принадлежать к одному домену, а сейчас они в локальной группе и поэтому нужно сделать на ПК с принтером пользователя с совпадающим именем и паролем пользователя другого ПК и дать этому пользователю в свойствах принтера доступ к принтеру.
- Автор темы
-
#3
Помоему вы ошибаетесь, т.к. Есть дугие ПК которые в подключются к этому ПК и пароль сохраняется нормально.
И причём тут в каком домене я если именно в моем ПК не сохраняется пароль, а он как сессия так.
-
#4
Помоему вы ошибаетесь, т.к. Есть дугие ПК которые в подключются к этому ПК и пароль сохраняется нормально.
И причём тут в каком домене я если именно в моем ПК не сохраняется пароль, а он как сессия так.
Это зависит от настроек ПК к которому подключаются (настройка сетевого доступа в групповой политике, можно включить гостевой доступ и все будут заходить без паролей), и от ПК который подключается к принтеру (если совпадают имя и пароль не обеих машинах, то сообщение аутентификации не появляется). Это точно проверенная настройка, смотрите в них. Возможно есть ещё какие-нибудь способы (это способы которые возникли в windows server 2003 и оттуда использются в более новых ОС), более новых ОС (Windows 8, 8.1).
-
#5
напрямую подключи если принтер сетевой через net use lpt printer ip
- Автор темы
-
#6
Да но сейчас есть другой ПК который подключается к ПК у которого принтер через пароль и логин и пароль там сохраняется…
-
#7
Вообще, для запоминания паролей есть оснастка «Диспетчер Учетных Данных» в панели управления, она же вызывается из консоли командой «control keymgr.dll».
Либо можешь батник с net use, в планировщик кинуть синтаксис команды тут лежит: Для просмотра ссылки Войди или Зарегистрируйся
Или зайдя в Панель управления\Центр управления сетями и общим доступом\Дополнительные параметры общего доступа, убрать галку у доступа с парольной защитой.
- Автор темы
-
#8
Вообще, для запоминания паролей есть оснастка «Диспетчер Учетных Данных» в панели управления, она же вызывается из консоли командой «control keymgr.dll».
Об этом я писал в первом посте + скриншот приложил, то что при добавлении туда даже ручками пароль, всё равно на сесию сажается авторизация…
Или зайдя в Панель управления\Центр управления сетями и общим доступом\Дополнительные параметры общего доступа, убрать галку у доступа с парольной защитой.
Снял галочку, не помогло, всё равно запрашивает…
-
#9
Попробуй групповые политики и политики безопасности сбросить на стандартные следующим батником:
=================================================
RD /S /Q «%WinDir%\System32\GroupPolicyUsers»
RD /S /Q «%WinDir%\System32\GroupPolicy»
gpupdate /force
secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose
=================================================
И после этого заново учетные данные добавить.
Либо попробуй использовать механизм сохранения паролей прямо из net use:
Для просмотра ссылки Войди или Зарегистрируйся
=================================================
По умолчанию, механизм «Сохранение имен пользователей и паролей» создает «ключ» для любого подключения в интерфейсе GUI, требующего использования различных учетных данных. При создании подключения из командной строки с использованием команды «net use» и при вводе учетной информации данный ключ не создается.
При использовании команды «net use» используйте параметр «/savecred» для сохранения учетных сведений. При использовании параметра «/savecred» любые учетные данные, запрашиваемые при использовании команды «net use», сохраняются в виде ключа. Поэтому, при запросе ввода имени пользователя и пароля (или только пароля) при использовании команды «net use» (но не в связи с тем, что Вы используете символ «*» в команде «net use» для запроса ввода пароля) и использовании параметра «/savecred» учетные данные сохранятся. Например, при вводе одной из следующих команд в командной строке ключ будет находиться в хранилище «Сохранение имен пользователей и паролей» и использоваться при подключении к ресурсу:
- При вводе команды net use * \\ имя компьютера \ имя ресурса /savecred пользователю будет необходимо ввести имя, а затем пароль.
- При вводе команды net use * \\ имя компьютера \ имя ресурса /u: имя домена \ имя пользователя /savecred пользователю будет необходимо ввести пароль.
Однако, при вводе следующей команды ключ не будет создан:
- net use * \\ имя компьютера \ имя ресурса * /user: имя домена \ имя пользователя /savecred
или
- net use * \\ имя компьютера \ имя ресурса * /savecred /user: имя домена \ имя пользователя
При вводе команды: net help use в командной строке появится дополнительная информация по использованию
команды «net use».
====================================================
Если, не поможет, и пароль все таки не сохранится, но сам не боишься, что твой пароль в батнике открыто лежать будет, тогда в планировщике батник с net use используй, и что-нибудь им без ключа /savecred добавь, хоть принтер, хоть папку сетевую, он в любом случае пароль в сеансе передаст.
Например, добавишь папку как диск командой: «net use X: \\удаленный_комп\папка пароль /user:удаленный_комп\Юзер» и пароль ко всем сетевым папкам и устройствам удаленного компа, на котором принтер подцеплен, тоже передадутся.
Последнее редактирование:
-
#10
Имеется 2 ПК, Windows 7 x86, на одном подключён принтер и прописан Share для сети.
При подключении второго ПК к принтеру через IP, запрашивается пароль, далее пароль сохраняется и всё работает, но как только ПК перегружается сразу же пароль удаляется…
Как сделать так что бы пароль оставался бы.Думаю причина втом что сохранение пароля идёт через сессию «Logon Session«, а надо что бы там писалось бы «Enterprise»
Проверь версию винды, если у тебя профешнл, тогда все должно сохранятся нормально, если у тебя хомка, то у нее этот косяк присутствует. Лечится 2-мя способами, первый — проапгредить до профешнала, второй — создать на двух компах одного пользователя с одним паролем.
Проблема в Windows 7: не сохраняется пароль при подключении к удаленному рабочему столу.
Дело в том, что в последних версиях Windows пароль хранится не в rdp-файле, а в отдельном хранилище (Credential Manager — Диспетчер учетных данных).
Сохранить пароль можно включив в настройках специальную политику:
Нажимаем старт, вводим gpedit.msc
Идем сюда: Computer Configuration\Administrative Templates\System\Credentials Delegation
Далее справа выбираем Allow Saved Credentials with NTLM-only Server Authentication.
Нажимаем Enable, и добавляем имя удаленного компьютера в формате
TERMSERV/<компьютер>
Жмем ОК и пробуем подключиться к серверу сохранив пароль.
вместо <компьютер> можно поставить звездочку * — тогда можно будет сохранить пароль для всех серверов.
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
Обработка изображений в реальном времени на C# с OpenCV
stackOverflow 13.05.2025
Объединение библиотеки компьютерного зрения OpenCV с современным языком программирования C# создаёт симбиоз, который открывает доступ к впечатляющему набору возможностей. Ключевое преимущество этого. . .
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
Конвейеры ETL с Apache Airflow и Python
AI_Generated 13.05.2025
ETL-конвейеры – это набор процессов, отвечающих за извлечение данных из различных источников (Extract), их преобразование в нужный формат (Transform) и загрузку в целевое хранилище (Load). . . .
Выполнение асинхронных задач в Python с asyncio
py-thonny 12.05.2025
Современный мир программирования похож на оживлённый мегаполис – тысячи процессов одновременно требуют внимания, ресурсов и времени. В этих джунглях операций возникают ситуации, когда программа. . .
Работа с gRPC сервисами на C#
UnmanagedCoder 12.05.2025
gRPC (Google Remote Procedure Call) — открытый высокопроизводительный RPC-фреймворк, изначально разработанный компанией Google. Он отличается от традиционых REST-сервисов как минимум тем, что. . .