我有一个Windows服务,需要按需访问远程CIFS共享。 无论何时需要访问共享,它首先尝试使用提供的凭证“挂载”它,
NET USE \\host\share password /USER:user
使用共享的内容,然后删除共享。
NET USE \\host\share /DELETE
目前,该服务仅在第一次使用该份额时起作用。 在随后的尝试,它不起作用,我得到以下错误:
NET失败,退出代码2
但是,从命令行手动运行时,这种相同的逻辑完全正常工作; 它只在服务的情况下失败。
我的问题是:是否有更好,更正确的方式来处理Windows服务中的networking共享? 根据这篇文章 , NET USE不推荐用于服务,即使没有使用驱动器号。 是否有一些替代NET USE我应该使用,或者该服务只需要作为默认的LocalSystem用户以外的用户运行?
理想情况下,只有在直接需要的情况下, 所以我想保持共享被删除的逻辑,如果可能的话。
您应该将该服务作为特定用户帐户运行,并且该用户帐户应具有访问该共享的权限。
把一个用户名和密码,这是一个非常糟糕的工作方式。 不仅是为了安全,而且是为了便携和pipe理。