我创建了一个Installshield MSI,它在WinServer 2008或Vista(或更高版本)Windows操作系统上部署了几个.NET控制台应用程序。
安装过程在本地管理员帐户下运行。
在安装过程中,Installshield MSI会提示admin输入密码,并在DOS命令中使用此密码创建多个计划任务,这些任务将在管理员帐户下编程,运行和执行。
我不禁觉得有一种更好的方法来处理这些任务的创建,而无需输入密码或使用SYSTEM帐户而不会创建安全漏洞。
安装帐户的密码也可能过期,因此我正在尝试找出一种更实用的方法来创建这些计划任务。
计划任务必须启动访问SQL CE 4.0数据库的.NET控制台应用程序,为外部邮件服务器创建SMTP / POP3客户端,在本地系统HD中写入文件。
有关如何执行最佳练习计划任务的任何链接或帮助,
此致
答案 0 :(得分:0)
我假设您正在调用SCHTASKS来创建计划任务。
选项1:使用SYSTEM帐户
SCHTASKS /Create /RU SYSTEM /SC DAILY /ST 00:00:00 /TN "MyTaskName" /TR "MyConsoleApp.exe"
这是推荐的方法,但它有一些限制:
选项2:使用特定帐户
SCHTASKS /Create /RU username /RP password /SC DAILY /ST 00:00:00 /TN "MyTaskName" /TR "MyConsoleApp.exe"
如果您依赖应用程序的用户上下文登录数据库并发送电子邮件,通常的方法是在安装开始时询问用户提供凭据,并提醒他任何将来的密码更改还需要更新相关的计划任务。这也有其他含义:
'disabledomaincreds'安全策略必须设置为false
要运行的命令(您可以将其设置回原始值
运行之后)。您可以通过阅读来检查和更改策略
并编辑注册表值
HKLM\System\CurrentControlSet\Control\Lsa
用户必须具有“以批处理登录”权限。这可以通过运行:ntrights.exe + r SeBatchLogonRight -u“username”