Fråga : Powershell skrivar för att avkänna den långa banan/för att spara - namnge, och e-posten sparar ägaren

Hälsningen alla,

I hoppas för att få någon hjälp med en powershell skrivar att ska gör efter:

1. Den långa banan för LEGITIMATIONEN/sparar - kända combo som är mer tecken än 200 i length
2. LEGITIMATION sparaägarna av de, E-post som txt sparar till ägaren och föreslår för att byta namn på till något different
4. Cc DEN laget, när som helst en e-postnågot liknande, som överförs till en sparaowner

I, har efter en kodifiera, precis som inte är säkert hur man gör all den, fungerar:
### får listar av banan/sparar longer, char###
$CI = får-Childitem -
foreach ($_ för recurse
. i
{
för CI) om ($_.FullName.ToString (). Length -
{
för gt 200) $_.FullName + ”,-->” + $_.FullName.ToString ().

########### för Length
}
} definierar sparar ägaren som ###########
get-acl (lista av sparar) .owner
##################################

########## som överför e-post för SMTP för SMTP-e-post###########

#Sending, kodifierar
$smtpServer =
”för vår en e-postserver” $msg = ny-anmärker Net.Mail.MailMessage-
$att = ny-anmärker
för
för Net.Mail.Attachment ($filename) $smtp = ny-anmärker
$msg för Net.Mail.SmtpClient ($smtpServer). Från = ””


This för
$msg. Cc.Add för
$msg. To.Add (””) (””) är den precis olika uppsättningen av kodifierar att I grundar via det Google sökandet.  igen precis inte sure hur man sätter alla dem tillsammans.  Behaga känselförnimmelsen som är fri att låta mig veta, om du har några ifrågasätter.  Jag skulle ger mig över 500 pekar för denna, om jag kunde.
" klar "

Svar : Powershell skrivar för att avkänna den långa banan/för att spara - namnge, och e-posten sparar ägaren

Detta fungerar ungefärligt i mitt testar miljön. Detta använder PowerShell V2 överför-mailmessage cmdlet, men du kan ändra den till ”den gammala” versionen av överföring postar.
Problem kan uppstå, om usernamesna inkluderar ett rusatecken ”-”, berätta mig, om detta kan uppstå.
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:
$limit = 90
$testpath = ”h:\”,
$resultpath = ”c:\ee”,
$admins = ”[email protected]”,
$from = ”[email protected]”,
$smtpserver = ”smtp.domain.com”,

Få-ChildItem - bana $testpath - Recurse | ? {$_.fullname.length - gt $limit} | 
	Välja-Anmärka fullnamen, 
		@ {n= " ägare "; e= {
			$_.GetAccessControl () .GetOwner (”System.Security.Principal.NTAccount”)}},
		@ {n= " namelength "; e= {$_.fullname.length}} | 
% {
	Ut-Spara - FilePath ”$resultpath \ Longfiles av $ ($_.owner - byter ut” \ \ ”,” - ”) .txt” - fästar - InputObject ”$ ($_.namelength) - $ ($_.fullname)”,
}
Få-ChildItem $resultpath - Filtrera ”longfiles av *” | % {
	om ($_.name - matcha ”Longfiles \ sof \ s (. +) \ .txt”) {
		$user = $matches [1] - byt ut ”-”, ”\”,
		$ntacc = Ny-Anmärker System.Security.Principal.NTAccount ($user)
		$sid = $ntacc. Översätt ([System.Security.Principal.SecurityIdentifier])
		$ADUSER = [ADSI] ”LDAP: /”,
		$email = $aduser. Properties.mail
		om ($email) {Överför-MailMessage - tillbehör $_.fullname - förkroppsligar ”behar ändring som filenamesna av sparar listat i fäst sparar till kortare!”, `,
			- Från $from - SmtpServer $smtpserver - betvinga ”systemet märker” - till $email - cc $admins
		}
		annars {
			Överför-MailMessage - tillbehör $_.fullname - förkroppsligar ”e-postcoudn't överförs till ägare” `,
			- Från $from - SmtpServer iqjb-exchback - betvinga ”systemet märker” - till $admins
		}
	}
	annars {Skriva-Vara värd ”något fel med sparar $_”},
}
Andra lösningar  
 
programming4us programming4us