Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst VB Script - Besitzer auslesen und E-Mail versenden

Mitglied: smackee

smackee (Level 1) - Jetzt verbinden

07.01.2014 um 13:18 Uhr, 1611 Aufrufe, 2 Kommentare, 1 Danke

Hallo Forum

Ich möchte gerne mein Ordner und Dateien in einem Verzeichnis auf die Besitzer durchsuchen. Die Besitzer sollten dann per E-Mail benachrichtigt werden.

Bsp:
Test.txt --> Besitzer: Domainname/Hans

E-Mail mit Text an --> Hans@domainname.com.

Ist das möglich?
Mitglied: colinardo
07.01.2014, aktualisiert um 21:05 Uhr
Hallo smackee,
selbstredend ist das möglich, was soll den der Auslöser für die Benachrichtigung sein ? Nur so eine Mail an die Besitzer zu schicken ist wohl nicht der Sinn der Sache.

Hier ein Gerüst wie es aussehen könnte:
(in Zeile 1 noch den Pfad zum Root-Ordner angeben der ausgelesen werden soll, in Zeile 2 für später dann den Pfad zur BLAT-Exe angeben. Die Aktion zum Versenden der Mails ist noch zum Testen auskommentiert, diese musst du noch entsprechend anpassen (Zeile12). Für einen Test erstellt das Script eine Textdatei mit den Ordner- und Dateinamen und dessen Besitzern (Gruppiert nach Besitzern) und zeigt sie mit Notepad an. Der Root-Ordner wir rekursiv ausgelesen, d.h. alle Unterordner und Dateien werden eingeschlossen, das lässt sich aber in Zeile 7 mit dem letzten Parameter regeln(FALSE = Nicht rekursiv).

Was man noch machen muss ist das Ausfiltern von speziellen Gruppen oder das angeben der gültigen Domains sonst gehen manche Mails ins Nirvana , da es auch Gruppen gibt die z.B. so aussehen: VORDEFINIERT\Administrators.
01.
strFilePath = "c:\ordner"
02.
path_blat = "[PFAD ZUR BLAT.EXE]"
03.
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
04.
Set oDic = CreateObject("scripting.dictionary")
05.
Set objShell = CreateObject("Wscript.Shell")
06.
strAllOwnersList = ""
07.
parseFolders fso.GetFolder(strFilePath),True
08.
keys = oDic.Keys
09.
For i = 0 To oDic.Count -1
10.
	strAllOwnersList = strAllOwnersList &  "Ordner und Dateien welche '" & keys(i) &  " gehören" & vbCrlf & "===========================================" & vbCrLf & oDic.Item(keys(i)) & vbCrLf
11.
	'Mail an User versenden (noch auskommentiert muss noch angepasst werden)
12.
	'sendNewMailViaBlat "absender@domain.com",keys(i),"Anbei eine Liste von Dateien in Ihrem Besitz",oDic.Item(keys(i)),"SMTP-SERVER","SMTP_USER","SMTP-PASSWORD"
13.
Next
14.
fso.CreateTextFile("owners.txt",True).Write(strAllOwnersList)
15.
objShell.Run "notepad.exe owners.txt"
16.

17.
Function parseFolders(strFldr,boolRecursion)
18.
	For each folder in strFldr.Subfolders
19.
		strOwner = GetOwner(folder.Path)
20.
		If strOwner <> "" Then
21.
			arrParts = Split(strOwner,"\",-1,1)
22.
			strDomain = arrParts(0) & ".com"
23.
			strUsername = arrParts(1) 
24.
			strEMail = strUsername & "@" & strDomain
25.
			If oDic.Exists(strEMail) Then
26.
				oDic.Item(strEMail) = oDic.Item(strEMail) & folder.Path & vbCrLf
27.
			Else
28.
				oDic.Add strEMail, folder.Path
29.
			End If			
30.
		End If
31.
		
32.
	Next
33.
	For Each file In strFldr.Files
34.
		strOwner = GetOwner(file.Path)
35.
		If strOwner <> "" Then
36.
			arrParts = Split(strOwner,"\",-1,1)
37.
			strDomain = arrParts(0)& ".com"
38.
			strUsername = arrParts(1) 
39.
			strEMail = strUsername & "@" & strDomain
40.
			If oDic.Exists(strEMail) Then
41.
				oDic.Item(strEMail) = oDic.Item(strEMail) & file.Path & vbCrLf
42.
			Else
43.
				oDic.Add strEMail, file.Path
44.
			End If
45.
		End If
46.
	Next
47.
	If boolRecursion Then
48.
		For Each subFolder in strFldr.SubFolders
49.
			parseFolders subFolder, True
50.
		Next
51.
	End If
52.
End Function
53.

54.

55.
Function GetOwner(str_path)
56.
	Set objWMIService = GetObject("winmgmts:")
57.
	Set objFileSecuritySettings = objWMIService.Get("Win32_LogicalFileSecuritySetting='" & str_path & "'")
58.
	intRetVal = objFileSecuritySettings.GetSecurityDescriptor(objSD)
59.
	owner = ""
60.
	If intRetVal = 0 Then
61.
		owner = objSD.Owner.Domain & "\" & objSD.Owner.Name
62.
	Else
63.
	   owner = ""
64.
	End If
65.
	GetOwner = owner
66.
End Function
67.

68.

69.
Function sendNewMailViaBlat(strFrom,strTo,strSubject,strBody,strSMTPServer,strSMTP_USER,strSMTP_PASS)
70.
    Set objShell = CreateObject("WScript.Shell")
71.
    objShell.Run """" & path_blat & """" & " -subject """ & strSubject & """ -body """ & strBody & """ -to " & strTo & " -f " & strFrom & " -server " & strSMTPServer & " -u """ & strSMTP_USER & """ -pw """ & strSMTP_PASS & """"
72.
    set objShell = Nothing
73.
End Function
Grüße Uwe
Bitte warten ..
Mitglied: smackee
08.01.2014 um 23:09 Uhr
Hallo colinardo,

Vielen Dank für diesen Super Code. Ich werde ihn gleich austesten und dir bescheid sagen.
Der Sinn ist die User zu Benachrichtigen, dass sie Dateien auf einem Netzlaufwerk haben die älter sind als 25 Tage.
Da ich die Dateien schon aussortiert habe und in ein order "archiv" verschiebe, lese ich nun mit dem Script den Ordner "archiv" aus und kann somit mithilfe des Besitzers eine Benachrichtigung per E-Mail versenden. So informiere ich den User, dass die Datei(en) welche er besitzt, innerhalb von 2 Wochen endgültig gelöscht werden.

Gruss
smackee
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
E-Mail aus Shell-Script senden
gelöst Frage von newit1Batch & Shell3 Kommentare

Hallo zusammen, da keine meiner Recherchen im Internet den gewünschen Erfolg gebracht hat, versuche ich es noch einmal hier. ...

Exchange Server

Script odgl ausführen, wenn E-Mail eingeht

Frage von ahstaxExchange Server3 Kommentare

Hallo, gibt es eine Möglichkeit, einem Exchange-2010-Server beizubringen, ein Script odgl bei Eingang einer E-Mail an einen bestimmten Empfänger ...

VB for Applications

VB-Script per Aufgabenplanung

gelöst Frage von S4kar97VB for Applications2 Kommentare

Hallo, Ich habe mir ein VB-Script erstellt, welches im Grunde ein Programm startet und diesem Parameter übergibt und die ...

Entwicklung

VB Script Drucker hinzufügen

Frage von Marcel1989Entwicklung3 Kommentare

Funktionsweise sollte definitiv sein das mit einem Script sich 2 verschiedene Betriebssysteme ein und denselben Drucker holen. Mein Script ...

Neue Wissensbeiträge
Sicherheits-Tools
Putty hat heftige Bugs korrigiert!
Information von Lochkartenstanzer vor 16 StundenSicherheits-Tools5 Kommentare

Moin, Wie man aus herauslesen kann, sind in den Versionen vor 0.71 gravierende Bugs, die es angeraten erscheinen lassen, ...

Off Topic
Sachen die die Welt nicht braucht - Platz 1
Tipp von brammer vor 3 TagenOff Topic14 Kommentare

Hallo, ich habs als Tipp angelegt als Erfahrungsbericht nein Danke brammer

Humor (lol)
Spirit of Health-Kongress in Berlin
Information von AnkhMorpork vor 3 TagenHumor (lol)5 Kommentare

tgif! Beim dritten Spirit of Health-Kongress trafen sich am Wochenende Alternativmediziner und Naturheilkundler im Maritim Hotel Berlin, um sich ...

Windows 7

Updates zum Nachrüsten des SHA-2-Support für Windows 7 SP1, Windows Server 2008 (R2) und WSUS 3.0 SP2 sind da

Information von kgborn vor 5 TagenWindows 7

Wie bereits früher angekündigt (Windows 7 u. Server 2008 (R2) SHA-2-Update kommt am 12. März 2019) hat Microsoft die ...

Heiß diskutierte Inhalte
Cloud-Dienste
Remotedesktopverbindungen beeinflussen sich gegenseitig
gelöst Frage von Samy89Cloud-Dienste15 Kommentare

Moin, ich habe mehrere RDPs gleichzeitig laufen, auf denen jeweils ein Script via Powershell läuft. In diesem Prozess benutzt ...

Netzwerkgrundlagen
Reicht 10GBit Uplink Port für Stacking für ein 10GBit Switch?
gelöst Frage von walnickNetzwerkgrundlagen12 Kommentare

Hallo, Ich habe eine frage. Ich überlege gerade 2 neue Switche von CiscoSG350XG-24F  zu kaufen und die als Core ...

LAN, WAN, Wireless
Switch als Verbindung von 2 Netzwerken
gelöst Frage von Lutz-ReLAN, WAN, Wireless12 Kommentare

Guten Tag Ich hab folgendes Problem 2 Rechner und 2 IP Kameras sind ohne dhcp in einen IP4 Netzwerk ...

DNS
Größere DNS Probleme nach zweitem DC. Eigentlich sollte es auch dadurch besser werden
Frage von TeWutzDNS12 Kommentare

Hallo zusammen, nachdem ich letzte Woche erfolgreich einen zweiten DC ) an den Start gebracht habe melden sich weiterhin ...