问题是当我尝试让Task调度程序运行它时.我把它设置为每天运行一次,并且像我一样运行(我可以访问并可以查看加密的日志文件等).但是当任务运行时(无论是在预定的时间还是我手动运行任务),它在运行VBS脚本时会窒息,说它是未经授权的.当批处理文件调用CScript运行VBS脚本时,CScript是否作为同一个用户(我自己)运行?我只是从批处理文件中调用它,如下所示:
CScript zipIt.vbs %TEMPDIR% %ARCHIVEDIR%\%TARGETZIP%
以下是VBS脚本的内容:
Set objArgs = WScript.Arguments InputFolder = objArgs(0) ZipFile = objArgs(1) CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile,True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18,vbNullChar) Set objShell = CreateObject("Shell.Application") Set source = objShell.NameSpace(InputFolder).Items objShell.NameSpace(ZipFile).CopyHere(source) wScript.Sleep 2000
我对VBS或Windows管理一般都不是很了解,但我猜这个脚本在加密文件夹中创建一个新文件时遇到了麻烦.因为当我关闭文件夹加密时,它可以在任务计划程序中正常工作.我正在考虑使用“Runas”使用我自己的凭据调用CScript,但我不希望将我的密码存储在批处理文件中,因为其他用户可以访问这些文件(DatabaseAdmin等).在任务计划程序中,有一个“以最高权限运行”选项.这会解决这个问题吗?我正在避免这种情况,因为我认为我应该试着弄清楚如何让它以尽可能少的特权来工作.
更新:
在探索时,我发现我实际上没有能力解密MySQL日志文件,即使我对包含文件夹有这种能力(由cipher.exe / c验证).唯一具有未加密权限的帐户是SYSTEM.这可能是因为MySQL日志是由“MySQLAdmin flush-logs”工具创建的.据我了解,应用程序创建的文件由SYSTEM拥有(不是100%肯定).也许我必须使用“runas”在我的脚本中调用MySQLAdmin flush-logs.但是我有同样的问题,不想以明文形式将我的凭据存储在批处理文件中.我会尽力测试.
任何帮助表示赞赏.
psexec -s cipher /adduser ...
但是,如果这是一个被替换的旋转文件,那么您将在MySQL创建的每个文件中遇到此问题,因为它在系统帐户下运行.如果是这种情况,那么您应该考虑将MySQL服务器作为具有已知密码和EFS证书的特定用户帐户运行,无论是您自己的帐户还是专用帐户.这与您运行预定脚本所需的帐户相同.