windows – 如何使用PowerShell在x天以上的日志文件上启用NTFS压
发布时间:2020-12-14 00:14:43 所属栏目:Windows 来源:网络整理
导读:我有一个运行 Windows 2012 R2的应用程序服务器,它生成大量日志文件,以便半定期地从可用空间运行应用程序卷.由于应用程序本身的限制,我无法移动或重命名日志文件或启用NTFS重复数据删除,并且由于它不再是十年前了,我不想使用批处理或vbscript来执行此操作为
我有一个运行
Windows 2012 R2的应用程序服务器,它生成大量日志文件,以便半定期地从可用空间运行应用程序卷.由于应用程序本身的限制,我无法移动或重命名日志文件或启用NTFS重复数据删除,并且由于它不再是十年前了,我不想使用批处理或vbscript来执行此操作为了我.
日志文件都在应用程序安装目录的各个子文件夹中,具有不同的扩展名(一个组件将日期添加为日志文件扩展名),并且应用程序安装目录中有一个空格,因为应用程序开发人员是恶意的.写入日志的子文件夹至少专门用于编写日志.这也是一个CPU密集型应用程序,因此我不想压缩日志文件夹本身,并且会因为为日志编写压缩文件而导致CPU损失. 如何使用PowerShell在x天以上的日志文件上就地启用NTFS压缩?
最简单的解决方案,因为PowerShell对文件操作的支持仍然相当缺乏,就是创建一个PowerShell脚本来调用compact.exe实用程序并将其设置为计划任务.由于路径名中的空格,您希望直接调用compact.exe,而不是使用Invoke-WMIMethod和CIM_DataFile类(这将导致很多额外的工作来处理路径中的空间).
假设X的年龄为3天,您的PowerShell脚本将类似于: $logfolder="[location of the first logging subfolder]" $age=(get-date).AddDays(-3) Get-ChildItem $logfolder | where-object {$_.LastWriteTime -le $age -AND $_.Attributes -notlike "*Compressed*"} | ForEach-Object { compact /C $_.FullName } $logfolder="[location of the next logging subfolder]" Get-ChildItem $logfolder | where-object {$_.LastWriteTime -le $age -AND $_.Attributes -notlike "*Compressed*"} | ForEach-Object { compact /C $_.FullName } ... 第二个条件是通过跳过已经压缩的文件(这将在第一次运行此脚本后出现)来加速脚本执行.如果你想,或者有很多不同的日志记录子文件夹,那么用重复的PowerShell代码创建一个函数可能是有意义的,这将是一个相当简单的练习. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2003 – 停止WSUS重启服务器
- windows – 什么决定了进程外COM服务器注意到客户端已经死亡
- 从本机dll生成C#DLLImport声明
- office365 – Microsoft Office 365组:访客用户无法使用图
- windows-server-2003 – 如何阻止Microsoft工作站锁定?
- windows – 为什么在链接.lib后会出现丢失的dll错误?
- windows-xp – 如何在Windows XP上复制连接点?
- windows-8 – 您的开发人员许可证已过期(Windows 8)
- Windows资源管理器 – 每个文件的自定义图标?
- windows-server-2016 – 存储空间:Optimize-Volume需要数天
推荐文章
站长推荐
- windows-vista – 每个应用程序禁用Vista UAC,或
- windows-server-2008 – 访问被拒绝的问题,Windo
- windows-server-2008 – 如何在具有多个VM的Hype
- .net-4.0 – windows xp上的visual studio 2013
- windows – 处理地址空间与虚拟内存
- windows-server-2008-r2 – 我可以直接将2003(不
- windows-8 – 如何做UI自动化的Metro风格的应用程
- windows-server-2003 – 为什么我不能将.zip文件
- 远程桌面报错解决:No Remote Desktop License S
- 无法在Windows 10 Professional中安装自定义inf.
热点阅读