-
Notifications
You must be signed in to change notification settings - Fork 0
/
ss.ps1
64 lines (53 loc) · 2.34 KB
/
ss.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# test execution in cmd to run powershell -ExecutionPolicy Bypass C:\PATHtoTHEscript\ss.ps1
# replace the pathe to the PS script in the XML Task Sheduler config by task in the section <Exec>
# Enable task, laung task or reboot machine
# powershell C:\Users\rusla\AppData\Local\SS\ss.ps1
#customer settings
$MailSubject = "Dell E6230 Desktop Screen Ruslan"; # up to you
$MailBody = "Some text in the Body"; # up to you
$receivermail = "a@vg.co"; # up to you
# screenshot period in seconds
$sleeping = 10;
# sender e-mail auth data
$MailSender = "screenshot@server.com";
$MailSenderPassword = "gUK&r4Zg2w6F";
$MailServer = "mail.server.com";
$MailServerPort = "587";
# fullpath to scrips and screenshot
$pathget = Get-Location;
$path = ("$pathget\" + "screenshot.png");
Write-Host $path;
# cycle is infinitive
while($true){
# screenshoting
[void][reflection.assembly]::loadwithpartialname("system.windows.forms");
[system.windows.forms.sendkeys]::sendwait('{PRTSC}');
Get-Clipboard -Format Image | ForEach-Object -MemberName Save -ArgumentList $path;
Write-Host "The screenshot has gotten";
# e-mail sending procedure with the attachment
function Send-ToEmail([string]$email, [string]$attachmentpath){
$message = new-object Net.Mail.MailMessage;
$message.From = $MailSender;
$message.To.Add($email);
$message.Subject = $MailSubject;
$message.Body = $MailBody;
$attachment = New-Object Net.Mail.Attachment($attachmentpath);
$message.Attachments.Add($attachment);
$Username = $MailSender; # sender login
$Password = $MailSenderPassword; # sender password
$smtp = new-object Net.Mail.SmtpClient($MailServer, $MailServerPort);
$smtp.EnableSSL = $true;
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$smtp.send($message);
$attachment.Dispose();
}
# sending e-mail to receiver with a attachment
Send-ToEmail -email $receivermail -attachmentpath $path;
Write-Host "Mail Sent"; # just for test notifications
# screenshot deletion
Remove-Item $path;
Write-Host "Screen removed";
# waiting time of execution period
Start-Sleep($sleeping);
Write-Host ("The "+ $sleeping +" seconds period has done");
}