Frage : Der Powershell Index, zum des langen Weges/des Dateinamens und der eMail zu ermitteln archivieren Inhaber

Hallo hoffte jeder,

I, etwas Hilfe bei einem powershell Index zu erhalten, der das folgende tut:

1. der Identifikation-langer Weg/Dateiname, der kombiniert, das mehr sind, als Buchstabe 200 in length
2. Identifikation die Akteninhaber jener Akten, wenn Sie gefunden und eine txt Akte herstellen, um them
3. eMail zu verzeichnen, die txt Akte zum Inhaber und vorschlagen, um zu etwas umzubenennen das different
4. cm ES Mannschaft, wann immer eine eMail mögen, die zu einem Akte owner

I haben einen folgenden Code geschickt, gerade wie man arbeiten ihn allen nicht sicher ist, bildet:
### erhalten Liste des Weges/der Akte länger, char###
$CI = - recurse

foreach erhalten-Childitem ($_. CI) im
{
wenn ($_.FullName.ToString (). Length - GT 200)
{
$_.FullName + „-->“ + $_.FullName.ToString (). Length
}
}

########### definieren das Akteninhaber ###########
get-acl (Liste der Akten) .owner
##################################

########## smtp-eMail ###########

#Sending smtp-eMail-Code
sendend $smtpServer = „unser Mail-Server“
$msg = Neugegenstand Net.Mail.MailMessage
$att = Neugegenstand Net.Mail.Attachment ($filename)

$smtp = Neugegenstand Net.Mail.SmtpClient ($smtpServer)
$msg. Von = „“
$msg. To.Add (“ ")
$msg. Cc.Add (“ ") ist


This gerade unterschiedliche Zeichnefolge, die ich über Google Suche fand.  wieder gerade nicht sure, wie man sie alle zusammenfügt.  Frei bitte fühlen, mich zu informieren, wenn Sie irgendwelche Fragen haben.  Ich übergeben 500 Punkte für dieses, wenn ich. könnte.

Antwort : Der Powershell Index, zum des langen Weges/des Dateinamens und der eMail zu ermitteln archivieren Inhaber

Dieses arbeitet ungefähr in meiner Testumwelt. Dieses verwendet PowerShell V2 senden-mailmessage cmdlet, aber Sie können es zur „alten“ Version des Sendens von Post ändern.
Probleme können entstehen, wenn die Benutzernamen einen Schlagbuchstaben „umfassen -“, mir erklären, wenn dieses entstehen kann.
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“

- Weg $testpath - Recurse Erhalten-ChildItem | ? {$_.fullname.length - GT $limit} | 
	Vorwählen-Gegenstand Vor und Zuname, 
		@ {n= " Inhaber "; e= {
			$_.GetAccessControl () .GetOwner („System.Security.Principal.NTAccount ")}},
		@ {n= " namelength "; e= {$_.fullname.length}} | 
% {
	Heraus-Akte - FilePath „$resultpath \ Longfiles von $ ($_.owner - \ \ „ersetzen“,“ - „) .txt“ - anfügen - InputObject „$ ($_.namelength) - $ ($_.fullname)“
}
Erhalten-ChildItem $resultpath - Filter „longfiles von *“ | % {
	wenn ($_.name - „Longfiles \ sof \ s zusammenbringen (. +) \ .txt“) {
		$user = $matches [1] - ersetzen „-“, „\“
		$ntacc = Neu-Gegenstand System.Security.Principal.NTAccount ($user)
		$sid = $ntacc. Übersetzen ([System.Security.Principal.SecurityIdentifier])
		$ADUSER = [ADSI] „LDAP: /“
		$email = $aduser. Properties.mail
		wenn ($email) {- Zubehöre $_.fullname - Körper Senden-MailMessage „ändern bitte die Dateinamen der Akten, die verzeichnet in der angebrachten Akte zu kürzerem!“ `
			- Von $from - SmtpServer $smtpserver - „Systemsnachricht“ - zu $email - cm $admins unterwerfen
		}
		sonst {
			- Zubehöre $_.fullname - dem Körper„eMail coudn't gesendet Inhaber“ `Senden-MailMessage
			- Von $from - SmtpServer iqjb-exchback - „Systemsnachricht“ - $admins unterwerfen
		}
	}
	sonst {Schreiben-Wirt „irgendeine Störung mit Akte $_“}
}
Weitere Lösungen  
 
programming4us programming4us