Cuestión : La escritura de Powershell para detectar la trayectoria larga/el nombre de fichero y el email archiva a dueño

Hola cada uno,

I esperaba conseguir una cierta ayuda con una escritura del powershell que hará el siguiente: la trayectoria larga/el nombre de fichero de la identificación del

1. combinado que es más de el carácter 200 en la identificación del length
2. los dueños del archivo de esos archivos si está encontrado y crear un archivo del txt para enumerar el email del them
3. que el archivo del txt al dueño y sugiere para retitular algo el different
4. cc ÉL equipo siempre que un email tenga gusto que se envía a un owner

I del archivo tiene un código siguiente, apenas no seguro cómo hacerlo todo funciona: el
### consigue la lista de trayectoria/de archivo más largo el char###
$CI = consigue-Childitem - el
foreach ($_ del
del recurse. en el
{
de CI) si ($_.FullName.ToString (). Length -
{
de GT 200) $_.FullName + “-->” + $_.FullName.ToString (). El

########### del
de Length
}} define el ###########
get-acl (lista de archivos) .owner
##################################

########## del dueño del archivo que envía el
del código del email del smtp del ###########

#Sending del email del smtp $smtpServer = el
de “nuestro mail server” $msg = el
del nuevo-objeto Net.Mail.MailMessage $att = el
del
del nuevo-objeto Net.Mail.Attachment ($filename) $smtp = el
$msg del nuevo-objeto Net.Mail.SmtpClient ($smtpServer). De = “el


This del
$msg. Cc.Add” del
$msg. To.Add (” ") (” ") es apenas diverso sistema de los códigos que encontré vía la búsqueda de Google.  otra vez, apenas no sure cómo ponerlos todos juntos.  Sentir por favor libre de dejarme saber si usted tiene cualesquiera preguntas.  Entregaría 500 puntos para esto si podría.
class= del

Respuesta : La escritura de Powershell para detectar la trayectoria larga/el nombre de fichero y el email archiva a dueño

Esto trabaja áspero en mi ambiente de prueba. Esto utiliza PowerShell V2 envía-mailmessage cmdlet, pero usted puede cambiarlo a la “vieja” versión de enviar el correo.
Los problemas pueden presentarse si los nombres del usuario incluyen un carácter de la rociada “-”, decirme si esto puede presentarse.
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”

Conseguir-ChildItem - trayectoria $testpath - Recurse | ¿? {$_.fullname.length - GT $limit} | 
	Nombre y apellidos del Seleccionar-Objeto, 
		@ {n= " dueño "; e= {
			$_.GetAccessControl () .GetOwner (“System.Security.Principal.NTAccount ")}},
		@ {n= " namelength "; e= {$_.fullname.length}} | 
% {
	El Hacia fuera-Archivo - FilePath “$resultpath \ Longfiles de $ ($_.owner - substituir” \ \ “,” - “) .txt” - añaden - InputObject “$ ($_.namelength) - $ ($_.fullname)”
}
Consiguen-ChildItem $resultpath - Filtro “longfiles de *” | % {
	si ($_.name - emparejar “Longfiles \ sof \ s (. +) \ .txt”) {
		$user = $matches [1] - substituir “-”, “\”
		$ntacc = Nuevo-Objeto System.Security.Principal.NTAccount ($user)
		$sid = $ntacc. Traducir ([System.Security.Principal.SecurityIdentifier])
		$ADUSER = [ADSI] “LDAP: /”
		$email = $aduser. Properties.mail
		si ($email) {Enviar-MailMessage - los accesorios $_.fullname - el cuerpo “cambian por favor los nombres de fichero de los archivos enumerados en el archivo atado a más corto!” `
			- De $from - SmtpServer $smtpserver - sujetar el “aviso” - a $email - cc $admins del sistema
		}
		{
			Enviar-MailMessage - accesorios $_.fullname - el `del dueño del cuerpo “coudn't del email se envíe”
			- De $from - iqjb-exchback de SmtpServer - sujetar el “aviso del sistema” - a $admins
		}
	}
	{Escribir-Anfitrión un “cierto error con el archivo $_”}
}
Otras soluciones  
 
programming4us programming4us