对于许可证文件,我尝试自动进行计数过程,而不必登录到每个服务器,进入目录,搜索文件名并根据更改日期对结果进行计数。
我想要的目标是: 每月运行一个Powershell脚本,以递归方式在目录“ C:\ Users”中检查文件“ Outlook.pst”。然后按更改日期(一个月或更晚)过滤结果。然后将其打包到电子邮件中以发送到我的收件箱。
我不确定这是否可行,因为我对Powershell相当陌生。感谢您的帮助!
答案 0 :(得分:0)
有可能。
我不知道如何在远程计算机上启动ps会话,但是我认为cmdlet Enter-PSSession可以解决问题。或至少它是搜索“打开远程Powershell会话”时的第一个结果。如果这样不起作用,请按照提示使用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
,然后使用Send-MailMessage -To x@y.z -From r@g.b -Body $mailBody
发送邮件。