Batch file runas/savecred。。。don';t接受cmdkey/add(凭据)

Batch file runas/savecred。。。don';t接受cmdkey/add(凭据),batch-file,windows-7-x64,credentials,runas,Batch File,Windows 7 X64,Credentials,Runas,我在运行/savecred…和cmdkey/add… 我有一个包含以下行的批处理文件: runas /profile /savecred /user:MyDomain\MyUserName "MyProgram.exe" 我以管理员身份登录到我的计算机,我想用另一个用户MyUserName执行MyProgram.exe。 当我第一次启动批处理文件时,它会提示输入MyUserName的密码,我输入了密码,效果很好 第二次,它不要求输入密码,因为/savecred已将我的用户名和密码保存在Wi

我在运行/savecred…和cmdkey/add…
我有一个包含以下行的批处理文件:

runas /profile /savecred /user:MyDomain\MyUserName "MyProgram.exe"  
我以管理员身份登录到我的计算机,我想用另一个用户MyUserName执行MyProgram.exe。
当我第一次启动批处理文件时,它会提示输入MyUserName的密码,我输入了密码,效果很好
第二次,它不要求输入密码,因为/savecred已将我的用户名和密码保存在Windows凭据中。酷
凭证管理器中的信息

Internet or network adress: MyDomain\MyUserName (Interactive logon)  
User name: MyDomain\MyUserName  
Password: ............
Persistence: Logon Session  
现在,我想避免键入第一次要求的密码。为此,我使用cmdkey.exe在此行中添加了不带/savecred的凭证

cmdkey /add:domain:interactive=MyDomain\MyUserName /user:MyDomain\MyUserName /pass:***********  
我已经从行runas中删除了/savecred 凭证管理器中的信息

Internet or network adress: MyDomain\MyUserName  
User name: MyDomain\MyUserName  
Password: ............
Persistence: Logon Session  
看,第一行没有(交互式登录)。问题是,当我启动批处理文件时,它总是提示键入密码,这似乎是运行方式禁用卡cmdkey保存的信息


那么我错过了什么呢?或者/savecred在Windows凭据中保存了哪些其他内容?

在Windows 7下,runas/savecred(交互式登录)凭据保存在目录c:\users\username\appdata\roaming\microsoft\Credentials中的隐藏文件中

如果将此文件移出此目录,则凭据不会显示在Windows凭据管理器中。将文件移回引用的目录,凭证将重新出现。不需要其他操作或调整


您应该通过运行runas/savecred命令来保存交互式登录,然后根据需要将隐藏的加密文件移入移出。

您可能不想使用/savecred选项,因为这会将您的密码(加密)全局无条件地保存到配置文件中,以便用户随时运行,使用任何可以以“runas”开头的命令,而不仅仅是您想要的命令。在CMDKey别名中保存密码也不是一个好主意。如果需要能够使用备用或提升的凭据运行命令,首选(且更安全)的方法是创建计划任务,以使用备用/提升的凭据运行命令。有关如何执行此操作的详细信息以及其他信息,请参见此处的“我的答案”。

文件被标记为“隐藏”和“系统”,因此您需要启用查看这两个文件的功能,以使其看起来像是隐藏的。