windows-xp - 如何以编程方式添加映射网络密码(WinXP)?

标签 windows-xp

在 WinXP (SP2) 中,您可以存储映射的网络密码...

开始->控制面板->用户帐户->选择一个,然后从相关任务中选择“管理我的网络密码”。

我通常有大约 25-30 个服务器通过这种方式映射到几个不同的帐户/域。问题是,在我们的政策更新过程中的某个时刻,它们会被删除,而将它们全部重新添加回来才是真正的 PITA。

有人知道如何使用某种脚本以编程方式添加它们吗?

澄清一下,最终目标不是映射驱动器,而是实际创建该部分中的条目。这允许我们使用 Windows 身份验证连接到我们的服务器(通过 Dameware、SSMS 等)。

附录:

Mark 的 CredWrite 技巧引导我来到这里......

pinvoke.net -- CredWrite (advapi32)

这又把我带到了这里......

Peer Channel Blog -- Application Password Security

事实证明两者都非常有帮助。

最佳答案

  • cmdkey.exe是该工具的 CLI 版本 - 但我相信它只包含在 Win2003+ 中。我怀疑 XP 的副本会起作用 - 但可能违反您的 EULA。
  • net use如果您要映射驱动器,还有一个 savecred 选项
  • 据此fairly detailed info ,CredMgr 将其数据库存储在 2 个位置。只需备份这些文件就足够了:
    • %APPDATA%\Microsoft\Credentials\%UserSID%\Credentials
    • %USERPROFILE%\Local Settings\Application Data\Microsoft\Credentials\%UserSID%\Credentials
  • 有一个 API 可以读取凭据,CredEnumerate - 但没有立即明显的方法来添加您自己的。几个候选人:
    • CredWrite采取正常 CREDENTIAL ,但没有任何迹象表明存储过去的当前 session 。
    • CredUIStoreSSOCredW采用 bPersist 参数 - 但指定“领域”而不是服务器或网络位置。

编辑:哦。我错过了 CREDENTIAL 的 PERSIST 成员。它可以是以下值之一:

  • CRED_PERSIST_SESSION: 该凭证在登录 session 的整个生命周期内持续存在。该用户的其他登录 session 将看不到它。该用户注销并重新登录后,它将不存在。
  • CRED_PERSIST_LOCAL_MACHINE: 该凭据对于同一台计算机上的所有后续登录 session 都保留。它对该同一计算机上同一用户的其他登录 session 可见,而对该用户在其他计算机上的登录 session 不可见。 (这是存储在本地设置文件中的内容)
  • CRED_PERSIST_ENTERPRISE: 该凭据对于同一台计算机上的所有后续登录 session 都保留。它对该同一计算机上同一用户的其他登录 session 以及其他计算机上该用户的登录 session 可见。 如果管理员或用户将用户帐户配置为不具有可漫游状态,则可以将此选项实现为本地持久凭据。例如,如果用户没有漫游配置文件,则凭据将仅在本地保留。 (这是存储在 AppData 中的内容)

看起来像CredWrite是您想要的 API。

关于windows-xp - 如何以编程方式添加映射网络密码(WinXP)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/199518/

相关文章:

c++ - Windows xp 上的 Mutex 给出 0xC0000096 : Privileged instruction exception

powershell - Powershell:无效的正则表达式

html - XP 上的 IE7 不听样式表,尽管 7 上的 IE8 Compat 模式可以

c++ - 如何从 session ID 中查找用户名?

windows-xp - 如何告诉 "windows security center"我是 "antivirus"?

c# - 使用 Process.Start() 启动时安装程序失败,但双击时可以运行

c# - Windows Form应用程序在InitializeComponent上崩溃

java - Windows 添加/删除程序 : Uninstalling Java 6, 更新 26“ fatal error

c# - Windows/.Net 中的蓝牙 API?

windows-xp - 是否有官方的 Windows XP 注册表引用?