Questione : Lo scritto di Powershell per rilevare il percorso lungo/nome di schedario ed il email archiva il proprietario

Ciao tutto, il

I stava sperando di ottenere un certo aiuto con uno scritto del powershell che farà quanto segue: il percorso lungo/nome di schedario di identificazione del

1. combinato che è più di carattere 200 nell'identificazione del length
2. i proprietari della lima di quelle lime se trovato e generare una lima del txt per elencare il email del them
3. che la lima del txt al proprietario e suggerisce di cambiare titolo a qualcosa different
4. cc ESSO squadra ogni volta che un email gradice che è trasmesso ad un owner

I della lima ha un seguente codice, appena non sicuro come farlo tutto funziona: il
### ottiene la lista del percorso/lima più lungo il char###
$CI = ottiene-Childitem - il
foreach ($_ del
del recurse. nel
{
di CI) se ($_.FullName.ToString (). Length -
{
della GT 200) $_.FullName + “-->„ + $_.FullName.ToString (). Il

########### del
di Length
}} definisce il ###########
get-acl (lista delle lime) .owner
##################################

########## del proprietario della lima che trasmette il
di codice del email dello smtp del ###########

#Sending del email dello smtp $smtpServer = “
del nostro mail server„ $msg =
dell'nuovo-oggetto Net.Mail.MailMessage $att =
del
dell'nuovo-oggetto Net.Mail.Attachment ($filename) $smtp =
$msg dell'nuovo-oggetto Net.Mail.SmtpClient ($smtpServer). Da = “„ il


This del
$msg. Cc.Add del
$msg. To.Add („ ") („ ") è appena insieme dei codici differente che ho trovato via la ricerca di Google.  di nuovo, appena non sure come un tutti.  Ritenere prego libero di lasciarlo sapere se avete qualunque domande.  Darei 500 punti per questo se potessi.
class= del

Risposta : Lo scritto di Powershell per rilevare il percorso lungo/nome di schedario ed il email archiva il proprietario

Ciò funziona approssimativamente nel mio ambiente di prova. Ciò usa PowerShell V2 trasmette-mailmessage il cmdlet, ma potete cambiarli “alla vecchia„ versione di invio della posta.
I problemi possono presentare se i nomi utente comprendono un carattere del precipitare “-„, dirmi se questo può presentare.
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„

Ottenere-ChildItem - percorso $testpath - Recurse | ? {$_.fullname.length - GT $limit} | 
	Nome e cognome dell'Selezionare-Oggetto, 
		@ {n= " proprietario "; e= {
			$_.GetAccessControl () .GetOwner (“System.Security.Principal.NTAccount ")}},
		@ {n= " namelength "; e= {$_.fullname.length}} | 
% {
	Fuori-Lima - FilePath “$resultpath \ Longfiles di $ ($_.owner - sostituire„ \ \ “,„ - “) .txt„ - aggiungono - InputObject “$ ($_.namelength) - $ ($_.fullname)„
}
Ottengono-ChildItem $resultpath - Filtro “longfiles di *„ | % {
	se ($_.name - abbinare “Longfiles \ SOF \ s (. +) \ .txt„) {
		$user = $matches [1] - sostituire “-„, “\„
		$ntacc = Nuovo-Oggetto System.Security.Principal.NTAccount ($user)
		$sid = $ntacc. Tradurre ([System.Security.Principal.SecurityIdentifier])
		$ADUSER = [ADSI] “LDAP: /„
		$email = $aduser. Properties.mail
		se ($email) {Trasmettere-MailMessage - collegamenti $_.fullname - il corpo “prego cambiano i nomi di schedario delle lime elencate nella lima allegata a più breve!„ `
			- Da $from - SmtpServer $smtpserver - sottoporre “l'avviso„ - a $email - il cc $admins del sistema
		}
		altrimenti {
			Trasmettere-MailMessage - collegamenti $_.fullname - il `al proprietario del corpo “coudn't del email be è trasmesso„
			- Da $from - iqjb-exchback di SmtpServer - sottoporre “l'avviso del sistema„ - a $admins
		}
	}
	altrimenti {Scrivere-Ospite “un certo errore con la lima $_„}
}
Altre soluzioni  
 
programming4us programming4us