微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Windows命令行历史logging

我需要以编程方式在Windows中使用C挂载WebDAV卷,我想我将使用system()来实现此目的(通过“net use”命令)…但是,由于net use要求密码是用纯文本编写,我只是想确保没有在Windows命令行shell中运行的命令的日志logging…我知道在Mac OS X和Linux在某些情况下命令可以logging在文件.bash_history,所以我想也许在Windows中有类似的事情发生。 我不这么认为,因为Google上没有任何东西出现。

C语言:在使用system()来执行命令时如何设置一个环境variables

如何将系统命令输出存储在variables中?

Windows CMD.exe“系统找不到指定的path。”

使用C的Windows API隐藏文件或目录

Windows使用Java或CMD以编程方式更改系统卷

shell有一个历史记录,但它只存储在内存中而不是磁盘上的日志。 也就是说,它可能在交换文件中结束,并且可以打开(稍微不重要的)发现。 然后再一次,如果你使用类似WNetAddConnection2直接在你自己的程序中进行连接,它可能会在交换文件中结束。

最好使用' CreateProcess '并将输入和输出重定向代码中,并通过写入stdin(将被重定向到“Net use”命令)并将其输入到该代码中,然后读取输出方式,密码输入不会被记录…这是在理论上….我不是100%信心,如果popen实现存在….因为它符合POSIX,并没有在标准的C …找到它存在在* nix世界…

编辑:好消息,我发现一些代码,模拟使用围绕CreateProcess包装popen ,只是认为这可能会有所帮助。 代码将需要调整一下…这是GPL v2许可证..有些东西要记住…

希望这有助于,最好的问候,汤姆。

不是你的问题的答案,而是net use检查WNetAddConnection2 win32函数

Windows命令外壳没有任何内置的命令日志记录,它使用一个外部命令(doskey),我不认为来自system()命令的命令提示符已经安装了doskey,但是如果你想成为一定要用system()来执行

doskey /history

它将输出该命令提示符实例的命令行历史记录。

一个正常的命令界面没有历史,除非你明确地激活它(但我不记得这个命令可用,最后我检查是在DOS / Windows 95天)。 Visual Studio命令提示符确实有一个历史 – 但我怀疑它保留在关闭提示时。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐