我需要以编程方式在Windows中使用C挂载WebDAV卷,我想我将使用system()来实现此目的(通过'net use'命令)...但是,既然净使用要求密码写在纯文本中,我只是想确保没有在Windows命令行shell中运行的命令的日志记录...我知道在Mac OS X和Linux在某些情况下命令可以记录在文件.bash_history,所以我想也许在Windows中发生了类似的事情。我不这么认为,因为谷歌上没有任何东西出现。Windows命令行历史
回答
shell有历史记录,但它只存储在内存中而不是磁盘上的日志。也就是说,它可能会在交换文件中结束并开放(稍微不重要)发现。然后再次,如果你使用WNetAddConnection2
之类的东西直接在自己的程序中进行连接,那么它最终可能会在交换文件中结束。
Windows命令shell没有任何内置命令日志记录,它使用一个外部命令(doskey),我不认为命令提示符从system()
命令安装了doskey,但如果你想要确定,使用system()来执行
doskey /history
并且它将输出该命令行提示符实例的命令行历史记录。
一个正常的命令界面没有历史,除非你明确地激活它(但我不记得这个命令可用,最后我检查是在DOS/Windows 95天)。 Visual Studio命令提示符确实有历史记录 - 但我怀疑它在关闭提示时保留。
使用'CreateProcess'并将输入和输出重定向到您的代码并通过写入标准输入(将被重定向到“网络使用”命令)将其输入到该代码中可能会更好,并读取输出,这样,密码输入将不会被记录...这是理论上的......如果popen实现存在,我不是100%信心....因为它符合POSIX标准,并且在标准C中找不到。 ..它存在于* nix的世界......
编辑:好消息,我发现一些代码,使用围绕CreateProcess的包装模仿popen,只是认为这可能会有帮助。代码将需要调整一下...这是GPL v2许可证.. so..something要记住...
希望这会有所帮助, 最好的问候, 汤姆。
不回答你的问题,但代替net use
检查WNetAddConnection2 Win32函数
是的,那就是我最终做的事情......我选择了杰里的回答,而不是因为他先说了。 感谢您的帮助! – AriX 2010-02-21 15:35:19
- 1. Rstudio命令历史
- 2. 从SSH命令行历史记录删除特定历史
- 3. 历史命令没有命令编号
- 4. 检索命令行历史记录
- 5. Python中的历史命令行
- 6. Firebug命令行历史记录
- 7. stdiodemo和命令历史
- 8. 清除命令历史
- 9. 米拉的命令历史?
- 10. Python pdb命令历史记录无法在Windows上运行
- 11. 如何从历史命令执行一个特定命令?
- 12. 在Windows批处理文件中禁用命令历史记录
- 13. Windows中的历史夏令时
- 14. Windows命令行:如何遍历列表?
- 15. 其中是:命令历史存储?
- 16. 当前bash命令不保存历史
- 17. MongoDB shell不维护命令历史
- 18. 单更容易命令在bash历史
- 19. 历史SQL Server上的命令
- 20. 保存命令输出到bash历史
- 21. proc_open for php的命令历史记录
- 22. OS X终端历史丢失命令
- 23. 命令历史的Cygwin快捷方式
- 24. ipython笔记本重新安排命令历史命令
- 25. 历史命令缓冲区 - 通过命令编号
- 26. 运行IRB命令历史记录中的最后一个X命令?
- 27. Windows命令行
- 28. C命令行界面 - 历史之类的函数在BASH
- 29. 的Unix命令行历史替换^ FOO ^条(多替换)
- 30. 通过PuTTY在Rails控制台中执行历史命令
谢谢,我没有做足够的研究,所以我还没有找到WNetAddConnection2 ......花了摆弄周围的位,但我终于明白了,它效果很好! – AriX 2010-02-21 15:34:52