在Home中计算文件并发送邮件 - Powershell

时间:2017-02-23 07:39:57

标签: powershell active-directory powershell-v4.0

我不是Powershell大师,但是你们中的任何人都有一些脚本可以计算文件夹中的文件并自动向用户发送邮件吗?我们的用户拥有漫游资料

  

(\\轮廓-SRV \%的用户名%)

文件夹名称与用户名相同。是否可以使用一个脚本来计算每个主文件夹中的文件并向用户发送电子邮件?

  

域名是:FirmaBis.org总用户数:150

所以算上前。 aaba并发送邮件至aaba@firmabis.org 计算下一个aaca并发送邮件至aaca@firmabis.org

因此,脚本将根据文件夹名称和+ firmabis.org计算文件并向用户发送邮件。

谢谢!

2 个答案:

答案 0 :(得分:2)

# Get just the directories in the user directory share, ignore any files, loop over them
Get-ChildItem -Path '\\server\share' -Directory | ForEach-Object {

    # List all the files in the current folder (loop variable $_ is the folder)
    $FilesInFolder = @($_ | Get-ChildItem -Recurse -Force -File)

    # Count the files
    $NumFiles = $FilesInFolder.Count

    # Calculate how many MB they take up, and show it to 2 decimal places
    $FileSize = $FilesInFolder.Length | Measure-Object -Sum | Select-ExpandProperty Sum
    $FileSize = "{0:.0}MB" -f ($FileSize/1MB)

    # Build the email message
    $Message = @"
    Hi,
    The folder for account ($($_.Name)) has $($FilesInFolder.Count) files in it.
    They add up to $FileSize
    "@

    # Send the message through an SMTP server which is configured to allow
    # unauthenticated relay emails from the computer running the script.
    Send-MailMessage -SmtpServer yourmailserver -To "$($_.Name)@FirmaBis.org" -From 'script@FirmaBis.org' -Body $Message
}

未经测试,但......

答案 1 :(得分:1)

到目前为止,我还没有看到你尝试过的任何事情。只是为了给你一个出发:

您可以使用 Get-childitem .Count 方法的组合获取文件计数列表。

 ( Get-ChildItem D:\FolderName | measure-object).Count

您可以将输出存储在变量中。

然后,您可以将变量作为 BODY 传递到 Send-MailMessage 中,您可以使用该文件发送电子邮件。