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

Frage Entwicklung VB for Applications

Mitglied: smackee

smackee (Level 1) - Jetzt verbinden

07.01.2014 um 13:18 Uhr, 1481 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
Windows 10
Skript zum Auslesen und Automatischen Versenden von E-Mails
Frage von weber4134Windows 103 Kommentare

Guten Abend, ich habe ein kleines Unternehmen und würde gerne die Rechnungsstellung auf Versand per E-Mail umstellen. Dazu werden ...

Outlook & Mail
E-Mail versenden mit PowerShell
gelöst Frage von 112TimoOutlook & Mail6 Kommentare

Hallo liebe Comunity, ich soll mit hilfe der Powershell eine E-Mail mit Dateianhang versenden können, jedoch zeigt diese mir ...

Entwicklung
VB Script gesucht um Videodateien auslesen zu können.
gelöst Frage von templierEntwicklung7 Kommentare

Hallo zusammen, ich habe einen Kunden der auf seinem SAN hunderte von Präsentationsvideos angesammelt hat. Diese sollen nun in ...

E-Mail
Automatische E-Mails verzögert versenden
Frage von typischAndyE-Mail12 Kommentare

Hallo, wir haben im Augenblick ein kleines Problem, welches wir beheben müssen. Wir, dass bin ich und meine Kollegen, ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 17 StundenWindows 102 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 19 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.