Question : Le manuscrit de Powershell pour détecter le long chemin/nom de fichier et l'email classent le propriétaire

Bonjour chacun, le

I espérait obtenir de l'aide avec un manuscrit de powershell qui fera ce qui suit : chemin/nom de fichier d'identification du

1. le long combiné qui sont plus de le caractère 200 dans l'identification du length
2. les propriétaires de dossier de dossiers si trouvé et créer un dossier de txt pour énumérer l'email du them
3. que le dossier de txt au propriétaire et suggèrent de retitrer à quelque chose le different
4. cc IL équipe toutes les fois qu'un email aiment qui est envoyé à un owner

I de dossier ont un code suivant, juste non sûr comment le faire tout fonctionnent : le
### obtiennent la liste de chemin/de dossier plus long le char###
$CI = obtiennent-Childitem - le
foreach ($_ du
de recurse. dans le
{
de CI) si ($_.FullName.ToString (). Length -
{
du GT 200) $_.FullName + « --> » + $_.FullName.ToString (). Le

########### du
de Length
}} définissent le ###########
get-acl (liste de dossiers) .owner
##################################

########## de propriétaire de dossier envoyant le
de code d'email de smtp du ###########

#Sending d'email de smtp $smtpServer = le
de « notre mail server » $msg =
du nouveau-objet Net.Mail.MailMessage $att =
du
du nouveau-objet Net.Mail.Attachment ($filename) $smtp =
$msg du nouveau-objet Net.Mail.SmtpClient ($smtpServer). De = «  » le


This du
$msg. Cc.Add du
$msg. To.Add ( » ") ( » ") est juste ensemble de codes différent que j'ai trouvés par l'intermédiaire de la recherche de Google.  encore, juste pas sure comment les remonter tous.  Se sentir svp libre pour me faire savoir si vous avez n'importe quelles questions.  Je livrerais 500 points pour ceci si je pourrais.
class= de

Réponse : Le manuscrit de Powershell pour détecter le long chemin/nom de fichier et l'email classent le propriétaire

Ceci fonctionne rudement dans mon environnement d'essai. Ceci emploie PowerShell V2 envoient-mailmessage le cmdlet, mais vous pouvez le changer en « vieille » version d'envoyer le courrier.
Les problèmes peuvent surgir si les noms de l'utilisateur incluent un caractère de tiret « - », me dire si ceci peut surgir.
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 »

Obtenir-ChildItem - chemin $testpath - Recurse | ? {$_.fullname.length - GT $limit} | 
	Nom et prénom de Choisir-Objet, 
		@ {n= " propriétaire " ; e= {
			$_.GetAccessControl () .GetOwner (« System.Security.Principal.NTAccount ")}},
		@ {n= " namelength " ; e= {$_.fullname.length}} | 
% {
	Le Dehors-Dossier - FilePath « $resultpath \ Longfiles de $ ($_.owner - remplacer » \ \ « , » - « ) .txt » - apposent - InputObject « $ ($_.namelength) - $ ($_.fullname) »
}
Obtiennent-ChildItem $resultpath - Filtre « longfiles de * » | % {
	si ($_.name - assortir « Longfiles \ sof \ s (. +) \ .txt ») {
		$user = $matches [1] - remplacer « - », « \ »
		$ntacc = Nouveau-Objet System.Security.Principal.NTAccount ($user)
		$sid = $ntacc. Traduire ([System.Security.Principal.SecurityIdentifier])
		$ADUSER = [ADSI] « LDAP : / »
		$email = $aduser. Properties.mail
		si ($email) {Envoyer-MailMessage - les attachements $_.fullname - le corps « changent svp les noms de fichier des dossiers énumérés dans le dossier ci-joint en plus court ! » `
			- De $from - SmtpServer $smtpserver - soumettre la « notification de système » - à $email - cc $admins
		}
		autrement {
			Envoyer-MailMessage - attachements $_.fullname - le `à propriétaire de corps « coudn't d'email soit envoyé »
			- De $from - iqjb-exchback de SmtpServer - soumettre la « notification de système » - à $admins
		}
	}
	autrement {Écrire-Centre serveur une « certaine erreur avec dossier $_ »}
}
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us