Pergunta : O certificado de Powershell para detetar o trajeto longo/nome de arquivo e o email arquiva o proprietário

Olá! todos,

I estava esperando começ alguma ajuda com um certificado do powershell que fizesse o seguinte: o trajeto longo/nome de arquivo da identificação do

1. combinado que é mais do caráter 200 na identificação do length
2. os proprietários da lima daquelas limas se encontrado e criar uma lima do txt para alistar o email do them
3. que a lima do txt ao proprietário e sugere para rebatizar a algo o different
4. centímetro cúbico ELE equipe sempre que um email gosta que seja emitido a um owner

I da lima tenha um seguinte código, apenas nao certo como fazê-lo todo funciona: o
### começ a lista de trajeto/lima mais longa o char###
$CI = começ-Childitem - o
foreach do
do recurse ($_. no
de CI) {
se ($_.FullName.ToString (). Length -
da GT 200) {
$_.FullName + “-->” + $_.FullName.ToString (). O

########### do
de Length
}} define o ###########
get-acl do proprietário da lima (lista de limas) .owner
##################################

########## que emite o
do código do email do smtp do ###########

#Sending do email do smtp $smtpServer = do “o
nosso mail server” $msg =
do novo-objeto Net.Mail.MailMessage $att =
do
do novo-objeto Net.Mail.Attachment ($filename) $smtp =
$msg do novo-objeto Net.Mail.SmtpClient ($smtpServer). De = “” o


This do
$msg. Cc.Add do
$msg. To.Add (” ") (” ") é apenas jogo de códigos diferente que eu encontrei através da busca de Google.  além disso, apenas não sure como uni-los todos.  Sentir por favor livre deixar-me saber se você tem quaisquer perguntas.  Eu entreg 500 pontos para este se eu poderia.
class= do

Resposta : O certificado de Powershell para detetar o trajeto longo/nome de arquivo e o email arquiva o proprietário

Isto trabalha aproximadamente em meu ambiente de teste. Isto usa PowerShell V2 emite-mailmessage o cmdlet, mas você pode mudá-lo à versão “velha” de emitir o correio.
Os problemas podem levantar-se se os nomes do utilizador incluem um caráter do traço “-”, dizer-me se isto pode se levantar.
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”

Começ-ChildItem - trajeto $testpath - Recurse | ? {$_.fullname.length - GT $limit} | 
	Apelido e nome do Selecionar-Objeto, 
		@ {n= " proprietário "; e= {
			$_.GetAccessControl () .GetOwner (“System.Security.Principal.NTAccount ")}},
		@ {n= " namelength "; e= {$_.fullname.length}} | 
% {
	A Para fora-Lima - FilePath “$resultpath \ Longfiles de $ ($_.owner - substituir” \ \ “,” - “) .txt” - adicionam - InputObject “$ ($_.namelength) - $ ($_.fullname)”
}
Começ-ChildItem $resultpath - Filtro “longfiles de *” | % {
	se ($_.name - combinar “Longfiles \ sof \ s (. +) \ .txt”) {
		$user = $matches [1] - substituir “-”, “\”
		$ntacc = Novo-Objeto System.Security.Principal.NTAccount ($user)
		$sid = $ntacc. Traduzir ([System.Security.Principal.SecurityIdentifier])
		$ADUSER = [ADSI] “LDAP: /”
		$email = $aduser. Properties.mail
		se ($email) {Emitir-MailMessage - os acessórios $_.fullname - o corpo “mudam por favor os nomes de arquivo das limas alistadas na lima unida a mais curto!” `
			- De $from - SmtpServer $smtpserver - sujeitar do “a observação” - a $email - centímetro cúbico $admins sistema
		}
		mais {
			Emitir-MailMessage - acessórios $_.fullname - o `ao proprietário do corpo do “coudn't email seja emitido”
			- De $from - iqjb-exchback de SmtpServer - sujeitar do “a observação sistema” - a $admins
		}
	}
	mais {Escrever-Anfitrião “algum erro com lima $_”}
}
Outras soluções  
 
programming4us programming4us