Vraag : Het manuscript van Powershell om lang weg/dossier te ontdekken - naam en e-maildossiereigenaar

Hello hoopte iedereen,

I om één of andere hulp met een powershellmanuscript te krijgen dat het volgende zal doen:

1. Het de lange weg/dossier van identiteitskaart - noem combo dat karakter meer dan 200 in length
2 is. Identiteitskaart de dossiereigenaars van die dient indien gevonden in en leidt tot een txtdossier om them
3 een lijst te maken. E-mail die txt aan eigenaar indien en voorstel om aan iets anders te noemen different
4. CC het team van IT wanneer een e-mail als dat wordt verzonden naar een dossier owner

I hebben een volgende code, enkel niet zeker hoe te om tot het al werk te maken:
### krijgt lijst van weg/dossier langer dan char###
$CI = krijgen-Childitem - recurse

foreach ($_. in CI)
{
als ($_.FullName.ToString (). Length - GT 200)
{
$_.FullName + „-->“ + $_.FullName.ToString (). Length
}
}

########### bepaalt dossiereigenaar ###########
get-acl die (lijst van dossiers) .owner
##################################

########## de Code van SMTP E-mail ###########

#Sending SMTP E-mail
verzenden $smtpServer = „onze postserver“
$msg = nieuw-voorwerp Net.Mail.MailMessage
$att = nieuw-voorwerp Net.Mail.Attachment ($filename)

$smtp = nieuw-voorwerp Net.Mail.SmtpClient ($smtpServer)
$msg. Van = „“
$msg. To.Add (““)
$msg. Cc.Add (““)


This is enkel verschillende reeks codes die ik via onderzoek Google vond.  opnieuw, enkel niet zeker hoe te om hen samen te brengen allen.  Gelieve te voelen vrij om me te laten weten of hebt u om het even welke vragen.  Ik zou meer dan 500 punten voor dit geven als ik. kon.

Antwoord : Het manuscript van Powershell om lang weg/dossier te ontdekken - naam en e-maildossiereigenaar

Dit werkt ruwweg in mijn testmilieu. Dit gebruikt PowerShell V2 ver*zenden-mailmessagecmdlet, maar u kunt het in de „oude“ versie veranderen van het verzenden van post.
De problemen kunnen zich voordoen als de gebruikersbenamingen een streepjekarakter „-“, vertellen me omvatten of kan zich dit voordoen.
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“

Krijgen-ChildItem - Weg $testpath - Recurse | ? {$_.fullname.length - GT $limit} | 
	Fullname van het uitgezocht-voorwerp, 
		@ {n= " eigenaar "; e= {
			$_.GetAccessControl () .GetOwner („System.Security.Principal.NTAccount“)}},
		@ {n= " namelength "; e= {$_.fullname.length}} | 
% {
	Het uit-dossier - FilePath „$resultpath \ Longfiles van $ ($_.owner - vervangt“ \ \ „,“ - „) .txt“ - toevoegt - „$ InputObject ($_.namelength) - $ ($_.fullname)“
}
Krijgen-ChildItem $resultpath - Filter „longfiles van *“ | % {
	als ($_.name - pas „van Longfiles \- sof aan \ s (. +) \ .txt“) {
		$user = $matches [1] - vervang „-“, „\“
		$ntacc = nieuw-Voorwerp System.Security.Principal.NTAccount ($user)
		$sid = $ntacc. Vertaal ([System.Security.Principal.SecurityIdentifier])
		$ADUSER = [ADSI] „LDAP: /“
		$email = $aduser. Properties.mail
		als ($email) {die ver*zenden-MailMessage - Gehechtheid $_.fullname - Lichaam „te veranderen gelieve filenames van de dossiers in het dossier in bijlage aan korter worden vermeld!“ `
			- Van $from - SmtpServer $smtpserver - Onderwerp het „bericht van het Systeem“ - aan $email - CC $admins
		}
		anders {
			Ver*zenden-MailMessage - Gehechtheid $_.fullname - wordt Lichaam „e-mail coudn't verzonden naar eigenaar“ `
			- Van $from - SmtpServer iqjb-exchback - Onderwerp het „bericht van het Systeem“ - aan $admins
		}
	}
	anders {schrijven-Gastheer „Één of andere fout met dossier $_“}
}
Andere oplossingen  
 
programming4us programming4us