繁体   English   中英

Powershell脚本:列出具有特定更改日期的文件(可能的话,数量)

[英]Powershell script: List files with specific change date (Amount if possible)

对于许可证文件,我尝试自动进行计数过程,而不必登录到每个服务器,进入目录,搜索文件名并根据更改日期对结果进行计数。

我是否要针对:每个月运行一个Powershell脚本,以递归方式在目录“ C:\\ Users”中检查文件“ Outlook.pst”。 然后按更改日期(一个月或更晚)过滤结果。 然后将其打包到电子邮件中以发送到我的收件箱。

我不确定这是否可行,因为我对Powershell相当陌生。 感谢您的帮助!

有可能的。

我不知道如何在远程计算机上启动ps会话,但是我认为cmdlet Enter-PSSession可以解决问题。 或至少它是搜索“打开远程Powershell会话”时的第一个结果。 如果这样不起作用,请按lit的建议使用Invoke-Command来获取$ outlookFiles,如下所示。

其余使用此。

$outlookFiles = Get-ChildItem -Path "C:\Users" -Recurse | Where-Object { $_.Name -eq "Outlook.pst" }

现在,您拥有了所有具有该名称的文件。 如果您不熟悉Powershell中的管道,它将使用Get-ChildItem找到的所有对象重定向到下一个管道部分,此处Where-Object将过滤接收到的对象。 如果当前对象($ _)将通过条件,则它将由整个命令返回。

现在,您可以再次过滤这些对象,使其仅包含最新对象。

$latestDate = (Get-Date).AddMonths(-1)
$newFiles = $outlookFiles | Where-Object { $_.LastAccessTime -gt $latestDate }

现在,您可以在一个对象中拥有所需的所有数据。 现在,您只需$mailBody = $newFiles | Out-String自己喜欢的方式对其进行格式化,例如,可以使用$mailBody = $newFiles | Out-String $mailBody = $newFiles | Out-String ,然后使用Send-MailMessage -To x@yz -From r@gb -Body $mailBody发送邮件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM