以普通用户身份运行的批处理文件如何在 C: 驱动器上创建文件?

以普通用户身份运行的批处理文件如何在 C: 驱动器上创建文件?

我编写了一个批处理文件,用于在 C: 驱动器根文件夹中创建一个文件。但是,如果以普通用户身份登录,则不会创建该文件,并且我会收到“访问被拒绝”错误。

我怎样才能避免这个问题?

答案1

用户无权写入驱动器的根目录。您需要在用户有写入权限的位置创建文件。例如,他们的应用程序数据文件夹。C 驱动器的根目录通常被锁定,以防止您写入,因为这样做不是最佳做法。

如果您确实必须写入驱动器的根目录,请编辑驱动器的 NTFS 权限以允许用户写入。但请注意,这不是一个好方法。

答案2

如上所述,使用%温度%或者%四甲基膦酸%如果文件不需要跟踪/保存,则建议使用。如果不是,我只会使用%用户资料%c:\Documents and Settings\normal) 其中“normal”是您的用户名...因为如果您没有访问根目录的正确权限,那就是放置它最简单/最合乎逻辑的位置。%USERPROFILE%\桌面如果您希望将其放在桌面上以方便访问。

答案3

%appdata%您可以使用通常可以写入的路径(例如或 ) ,而不是使用“硬编码”路径%UserProfile%。在那里,您可以创建一个文件或最好是一个文件夹/目录,供批处理文件使用。

或者,您可以让用户指定要使用的绝对文件名。

如果您确实需要管理员权限,您可以runas在脚本中使用命令(例如使用 savecred)。

答案4

我完全同意这里所说的内容。此外,我认为%UserProfile%有时不是放置临时文件的首选位置。相反,您可以使用%TEMP%来处理此类事情。对于需要永久提供给用户的数据,您可以使用%AppData%\someFolderName。 的主要优点%AppData%是,如果在公司环境中启用了漫游配置文件,它还可以漫游到其他计算机。

请记住,这也是%TEMP%特定于用户的。因此,每个登录系统的用户都将拥有自己的临时文件,该文件不会共享。如果您需要在多个用户之间共享文件,则应考虑将文件放在%PUBLIC%计算机上所有用户都可以访问的位置。

相关内容