2017-02-23 68 views
0

Я не гуру Powershell, но кто-нибудь из вас имеет какой-то скрипт, который подсчитывает файлы в папке и автоматически отправляет почту пользователю? Наши пользователи имеют перемещаемый профильПодсчитайте файлы в доме и отправьте письмо - Powershell

(\\ Профиль-SRV \% имя пользователя%)

Имя папки так же, как имя пользователя. Возможно ли иметь скрипт, который будет считать файлы в каждой домашней папке и отправлять электронную почту пользователю?

домен: FirmaBis.org Всего пользователей: 150

Так рассчитывать в отл. aaba и отправить письмо на адрес [email protected] Подсчитайте следующую aaca и отправьте письмо по адресу [email protected]

Спасибо!

+0

Можете ли вы предоставить пример кода вашей собственной работы? SO не является службой написания сценария. Собственные усилия необходимы. Никто из нас не может здесь (оплачивать) работу кого-то другого. – bluuf

+0

Я никого не посылаю, чтобы отправить мне что-нибудь. Это простой вопрос, если у кого-то есть что-то. –

ответ

1

Я не видел ничего, что вы пробовали до сих пор. Просто чтобы дать вам отправляются:

Вы можете получить список подсчета файлов, используя комбинацию из Get-ChildItem и .Count метода.

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

Вы можете сохранить выходные данные в переменной.

Затем Вы можете передать переменную как ТЕЛА в Send-MailMessage с помощью которого можно отправить по электронной почте.

+0

Я ничего не делал, я не был уверен, с чего начать. Спасибо :) –

+0

@DavidJackowiak: Принятие ответа будет заметным. Сначала попробуй, тогда мы там, чтобы вести тебя. :) –

+0

'Measure-Object' избыточен для подсчета. '(Get-ChildItem) .Count' –

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 '[email protected]' -Body $Message 
} 

непроверенная, но ...