加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-server-2008 – 尽管作为具有访问权限的用户运行,Window

发布时间:2020-12-14 00:11:59 所属栏目:Windows 来源:网络整理
导读:我有一个批处理文件设置为通过 Windows Server 2008 R2中的任务计划程序运行.批处理文件用于旋转和压缩 MySQL日志,包含这些日志的文件夹使用Windows内置的EFS加密进行加密.我找到了一个VBS脚本,它将压缩(zip)一个文件夹,我用它来压缩旋转后的旧日志文件.如果
我有一个批处理文件设置为通过 Windows Server 2008 R2中的任务计划程序运行.批处理文件用于旋转和压缩 MySQL日志,包含这些日志的文件夹使用Windows内置的EFS加密进行加密.我找到了一个VBS脚本,它将压缩(zip)一个文件夹,我用它来压缩旋转后的旧日志文件.如果我在命令行运行它,批处理文件运行正常.

问题是当我尝试让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.但是我有同样的问题,不想以明文形式将我的凭据存储在批处理文件中.我会尽力测试.

任何帮助表示赞赏.

如果永远不会删除或重命名此日志文件,则可以使用运行cipher的SysInternals的PsExec工具作为系统帐户,尝试为您的帐户添加EFS访问权限.就像是:
psexec -s cipher /adduser ...

但是,如果这是一个被替换的旋转文件,那么您将在MySQL创建的每个文件中遇到此问题,因为它在系统帐户下运行.如果是这种情况,那么您应该考虑将MySQL服务器作为具有已知密码和EFS证书的特定用户帐户运行,无论是您自己的帐户还是专用帐户.这与您运行预定脚本所需的帐户相同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读