Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

FTP Passwörter automatisch per Mail am Monatsanfang versenden

Frage Entwicklung Batch & Shell

Mitglied: m.reeger

m.reeger (Level 2) - Jetzt verbinden

09.11.2013 um 23:07 Uhr, 3011 Aufrufe, 10 Kommentare, 1 Danke

Hallo,

ich bin auf der Suche nach einem Skript oder ähnlichem, welches FTP Zugangsdaten per Mail versendet.

Ich habe eine Excel Tabelle mit E-Mailadressen drinne, an die gehen jeden Monat unterschiedliche E-Mails mit Zugangsdaten für meinen FTP-Server

FTP Software: Filezilla Server
Server OS: Windows Server 2012 R2

Bisher ändere ich die Kennwörter immer am Monatsende manuell und sende diese dann auch per Hand an ca 30 Leute.
Eine sehr aufwendige Arbeit, welche ich gerne automatisieren würde.

Gruß
Mitglied: wiesi200
10.11.2013 um 09:15 Uhr
Hallo,

da der Filezilla Server soweit ich weiß keine Möglichkeit hat ihn über Command Line zu steuern wird's schwer bis unmöglich.
Wenn du den internen FTP Server vom Microsoft verwenden würdest. Könnte man sicher über z.B. PowerShell ein Script schreiben.
Bitte warten ..
Mitglied: IceAge
10.11.2013 um 11:16 Uhr
mhmm, mit ein bissl Skriptarbeit sollte das doch wenigstens das Zusenden per Batch mit Blat automatisiert werden können...
Bitte warten ..
Mitglied: colinardo
10.11.2013, aktualisiert 08.05.2014
Hallo Marius,
dazu hatte ich mal ein VB-Script geschrieben welches genau dies automatisiert. Es öffnet ein Excel-File generiert für die User die darin stehen ein neues Passwort(hier ein Passwort mit 15 Zeichen), dann sucht es in der FileZilla-Config nach dem entsprechenden User, setzt das Passwort als MD5 Hash, speichert die Config, führt einen Config-Reload durch und versendet im Anschluss Mails an alle User (Im Script ist im das Moment mit Outlook gelöst, dies lässt sich aber einfach via "Blat" anpassen s. ganz unten im Beitrag). Das Script geht außerdem davon aus das der Username die E-Mail-Adresse ist.
Wichtig: Bitte die Hinweise zum Excel-File und zum Aufruf des Scripts weiter unten beachten !
01.
GenerateNewPasswords 
02.
 
03.
Sub GenerateNewPasswords() 
04.
    Const CONFIGFILE = "C:\Program Files (x86)\FileZilla Server\FileZilla Server.xml" 
05.
    Const EXCELFILE = "C:\DeinExcelFile.xlsx" 
06.
     
07.
    Set objShell = CreateObject("WScript.Shell") 
08.
    Set fso = CreateObject("Scripting.Filesystemobject") 
09.
    Set objExcel = CreateObject("Excel.Application") 
10.
    Set objDoc = objExcel.Workbooks.Open(EXCELFILE) 
11.
    Set hash = New hashing 
12.
    objExcel.Visible = False 
13.
    objExcel.DisplayAlerts = False 
14.
     
15.
    'Remove ReadOnly Attribute of Config File 
16.
    Set objConfigFile = fso.GetFile(CONFIGFILE) 
17.
    objConfigFile.Attributes = 0 
18.
    Set objConfigFile = Nothing 
19.
    '--------------------- 
20.
     
21.
    Set xmlDoc = CreateObject("Msxml2.DOMDocument.6.0") 
22.
    xmlDoc.Load CONFIGFILE 
23.
    Set userNodes = xmlDoc.selectNodes("/FileZillaServer/Users/User") 
24.
     
25.
    Set sheet = objDoc.Worksheets(1) 
26.
    Set rngEmails = sheet.Range("A2", sheet.Range("A2").End(-4121)) 
27.
    For Each cell In rngEmails 
28.
        strNewPass = newPass(15) 
29.
        cell.Offset(0, 1).value2 = strNewPass 
30.
        For Each userNode In userNodes 
31.
            strUserName = userNode.attributes.getNamedItem("Name").Text 
32.
            If cell.Value = strUserName Then 
33.
                'setze das neue Passwort im Configfile (MD5-Codiert) 
34.
                userNode.selectSingleNode("Option[@Name='Pass']").Text = hash.MD5(strNewPass) 
35.
                'erstelle eine E-Mail mit dem neuen Passwort 
36.
                sendNewMailViaOutlook strUserName, strNewPass 
37.
                'sendNewMailViaBlat strUserName, strNewPass 
38.
            End If 
39.
        Next 
40.
    Next 
41.
    objDoc.Save 
42.
    xmlDoc.Save CONFIGFILE 
43.
    objExcel.DisplayAlerts = True 
44.
    objExcel.Quit 
45.
    objShell.Run """C:\Program Files (x86)\FileZilla Server\FileZilla Server.exe"" /reload-config" 
46.
    Set xmlDoc = Nothing 
47.
    Set objExcel = Nothing 
48.
    Set objDoc = Nothing 
49.
    Set objShell = Nothing 
50.
    Set fso = Nothing 
51.
End Sub 
52.
 
53.
Function newPass(intLength) 
54.
    chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" 
55.
    pass = "" 
56.
    For z = 1 To intLength 
57.
        Randomize 
58.
        randomPos = Int((Len(chars) * Rnd) + 1) 
59.
        pass = pass & Mid(chars, randomPos, 1) 
60.
    Next 
61.
    newPass = pass 
62.
End Function 
63.
 
64.
Function sendNewMailViaOutlook(strEmailAddress, strNewPassword) 
65.
    Set objOutlook = CreateObject("Outlook.Application") 
66.
    Set objMail = objOutlook.CreateItem(0) 
67.
    With objMail 
68.
        .To = strEmailAddress 
69.
        .Subject = "Ihr neues Passwort für den FTP-Server" 
70.
        .Body = "Ihr neues Passwort für den FTP-Server lautet: " & strNewPassword 
71.
        .Display 
72.
        .Send 
73.
    End With 
74.
    Set objOutlook = Nothing 
75.
End Function 
76.
 
77.
Function sendNewMailViaBlat(strEmailAddress, strNewPassword) 
78.
    Set objShell = CreateObject("WScript.Shell") 
79.
    path_blat = "[PFAD ZUR BLAT.EXE]" 
80.
    mail_from = "[DEINE MAIL-ADRESSE]" 
81.
    mail_to = strEmailAddress 
82.
    smtp_server = "[SMTPSERVER]" 
83.
    smtp_user = "[USERNAME]" 
84.
    smtp_pass = "[PASSWORT]" 
85.
    subject = "Ihre neuen FTP-Server Zugangsdaten" 
86.
    body = "Ihr neues FTP-Server Passwort lautet: " & strNewPassword 
87.
    objShell.Run """" & path_blat & """" & " -subject """ & subject & """ -body """ & body & """ -to " & mail_to & " -f " & mail_from & " -server " & smtp_server & " -u """ & smtp_user & """ -pw """ & smtp_pass & """" 
88.
    set objShell = Nothing 
89.
End Function 
90.
 
91.
'--------------------------------- 
92.
' 	MD5 Function 
93.
'---------------------------------------------------------------- 
94.
' Original-Source: http://chayoung.tistory.com/entry/VBScript-MD5 
95.
' converted to a class by @colinardo (Administrator.de) 
96.
'---------------------------------------------------------------- 
97.
 
98.
Class hashing 
99.
	Private BITS_TO_A_BYTE 
100.
	Private BYTES_TO_A_WORD 
101.
	Private BITS_TO_A_WORD 
102.
	Private m_lOnBits(30) 
103.
	Private m_l2Power(30) 
104.
	 
105.
	Private Sub Class_Initialize 
106.
		BITS_TO_A_BYTE = 8 
107.
		BYTES_TO_A_WORD = 4 
108.
		BITS_TO_A_WORD = 32 
109.
     	m_lOnBits(0) = CLng(1) 
110.
		m_lOnBits(1) = CLng(3) 
111.
		m_lOnBits(2) = CLng(7) 
112.
		m_lOnBits(3) = CLng(15) 
113.
		m_lOnBits(4) = CLng(31) 
114.
		m_lOnBits(5) = CLng(63) 
115.
		m_lOnBits(6) = CLng(127) 
116.
		m_lOnBits(7) = CLng(255) 
117.
		m_lOnBits(8) = CLng(511) 
118.
		m_lOnBits(9) = CLng(1023) 
119.
		m_lOnBits(10) = CLng(2047) 
120.
		m_lOnBits(11) = CLng(4095) 
121.
		m_lOnBits(12) = CLng(8191) 
122.
		m_lOnBits(13) = CLng(16383) 
123.
		m_lOnBits(14) = CLng(32767) 
124.
		m_lOnBits(15) = CLng(65535) 
125.
		m_lOnBits(16) = CLng(131071) 
126.
		m_lOnBits(17) = CLng(262143) 
127.
		m_lOnBits(18) = CLng(524287) 
128.
		m_lOnBits(19) = CLng(1048575) 
129.
		m_lOnBits(20) = CLng(2097151) 
130.
		m_lOnBits(21) = CLng(4194303) 
131.
		m_lOnBits(22) = CLng(8388607) 
132.
		m_lOnBits(23) = CLng(16777215) 
133.
		m_lOnBits(24) = CLng(33554431) 
134.
		m_lOnBits(25) = CLng(67108863) 
135.
		m_lOnBits(26) = CLng(134217727) 
136.
		m_lOnBits(27) = CLng(268435455) 
137.
		m_lOnBits(28) = CLng(536870911) 
138.
		m_lOnBits(29) = CLng(1073741823) 
139.
		m_lOnBits(30) = CLng(2147483647) 
140.
		 
141.
		m_l2Power(0) = CLng(1) 
142.
		m_l2Power(1) = CLng(2) 
143.
		m_l2Power(2) = CLng(4) 
144.
		m_l2Power(3) = CLng(8) 
145.
		m_l2Power(4) = CLng(16) 
146.
		m_l2Power(5) = CLng(32) 
147.
		m_l2Power(6) = CLng(64) 
148.
		m_l2Power(7) = CLng(128) 
149.
		m_l2Power(8) = CLng(256) 
150.
		m_l2Power(9) = CLng(512) 
151.
		m_l2Power(10) = CLng(1024) 
152.
		m_l2Power(11) = CLng(2048) 
153.
		m_l2Power(12) = CLng(4096) 
154.
		m_l2Power(13) = CLng(8192) 
155.
		m_l2Power(14) = CLng(16384) 
156.
		m_l2Power(15) = CLng(32768) 
157.
		m_l2Power(16) = CLng(65536) 
158.
		m_l2Power(17) = CLng(131072) 
159.
		m_l2Power(18) = CLng(262144) 
160.
		m_l2Power(19) = CLng(524288) 
161.
		m_l2Power(20) = CLng(1048576) 
162.
		m_l2Power(21) = CLng(2097152) 
163.
		m_l2Power(22) = CLng(4194304) 
164.
		m_l2Power(23) = CLng(8388608) 
165.
		m_l2Power(24) = CLng(16777216) 
166.
		m_l2Power(25) = CLng(33554432) 
167.
		m_l2Power(26) = CLng(67108864) 
168.
		m_l2Power(27) = CLng(134217728) 
169.
		m_l2Power(28) = CLng(268435456) 
170.
		m_l2Power(29) = CLng(536870912) 
171.
		m_l2Power(30) = CLng(1073741824) 
172.
   	End Sub 
173.
	 
174.
	Private Function LShift(lValue, iShiftBits) 
175.
	    If iShiftBits = 0 Then 
176.
	        LShift = lValue 
177.
	        Exit Function 
178.
	    ElseIf iShiftBits = 31 Then 
179.
	        If lValue And 1 Then 
180.
	            LShift = &H80000000 
181.
	        Else 
182.
	            LShift = 0 
183.
	        End If 
184.
	        Exit Function 
185.
	    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then 
186.
	        Err.Raise 6 
187.
	    End If 
188.
	 
189.
	    If (lValue And m_l2Power(31 - iShiftBits)) Then 
190.
	        LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000 
191.
	    Else 
192.
	        LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits)) 
193.
	    End If 
194.
	End Function 
195.
	 
196.
	Private Function RShift(lValue, iShiftBits) 
197.
	    If iShiftBits = 0 Then 
198.
	        RShift = lValue 
199.
	        Exit Function 
200.
	    ElseIf iShiftBits = 31 Then 
201.
	        If lValue And &H80000000 Then 
202.
	            RShift = 1 
203.
	        Else 
204.
	            RShift = 0 
205.
	        End If 
206.
	        Exit Function 
207.
	    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then 
208.
	        Err.Raise 6 
209.
	    End If 
210.
	    
211.
	    RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits) 
212.
	 
213.
	    If (lValue And &H80000000) Then 
214.
	        RShift = (RShift Or (&H40000000 \ m_l2Power(iShiftBits - 1))) 
215.
	    End If 
216.
	End Function 
217.
	 
218.
	Private Function RotateLeft(lValue, iShiftBits) 
219.
	    RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits)) 
220.
	End Function 
221.
	 
222.
	Private Function AddUnsigned(lX, lY) 
223.
	    Dim lX4 
224.
	    Dim lY4 
225.
	    Dim lX8 
226.
	    Dim lY8 
227.
	    Dim lResult 
228.
	  
229.
	    lX8 = lX And &H80000000 
230.
	    lY8 = lY And &H80000000 
231.
	    lX4 = lX And &H40000000 
232.
	    lY4 = lY And &H40000000 
233.
	  
234.
	    lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF) 
235.
	  
236.
	    If lX4 And lY4 Then 
237.
	        lResult = lResult Xor &H80000000 Xor lX8 Xor lY8 
238.
	    ElseIf lX4 Or lY4 Then 
239.
	        If lResult And &H40000000 Then 
240.
	            lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8 
241.
	        Else 
242.
	            lResult = lResult Xor &H40000000 Xor lX8 Xor lY8 
243.
	        End If 
244.
	    Else 
245.
	        lResult = lResult Xor lX8 Xor lY8 
246.
	    End If 
247.
	  
248.
	    AddUnsigned = lResult 
249.
	End Function 
250.
	 
251.
	Private Function F(x, y, z) 
252.
	    F = (x And y) Or ((Not x) And z) 
253.
	End Function 
254.
	 
255.
	Private Function G(x, y, z) 
256.
	    G = (x And z) Or (y And (Not z)) 
257.
	End Function 
258.
	 
259.
	Private Function H(x, y, z) 
260.
	    H = (x Xor y Xor z) 
261.
	End Function 
262.
	 
263.
	Private Function I(x, y, z) 
264.
	    I = (y Xor (x Or (Not z))) 
265.
	End Function 
266.
	 
267.
	Private Sub FF(a, b, c, d, x, s, ac) 
268.
	    a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac)) 
269.
	    a = RotateLeft(a, s) 
270.
	    a = AddUnsigned(a, b) 
271.
	End Sub 
272.
	 
273.
	Private Sub GG(a, b, c, d, x, s, ac) 
274.
	    a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac)) 
275.
	    a = RotateLeft(a, s) 
276.
	    a = AddUnsigned(a, b) 
277.
	End Sub 
278.
	 
279.
	Private Sub HH(a, b, c, d, x, s, ac) 
280.
	    a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac)) 
281.
	    a = RotateLeft(a, s) 
282.
	    a = AddUnsigned(a, b) 
283.
	End Sub 
284.
	 
285.
	Private Sub II(a, b, c, d, x, s, ac) 
286.
	    a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac)) 
287.
	    a = RotateLeft(a, s) 
288.
	    a = AddUnsigned(a, b) 
289.
	End Sub 
290.
	 
291.
	Private Function ConvertToWordArray(sMessage) 
292.
	    Dim lMessageLength 
293.
	    Dim lNumberOfWords 
294.
	    Dim lWordArray() 
295.
	    Dim lBytePosition 
296.
	    Dim lByteCount 
297.
	    Dim lWordCount 
298.
	    
299.
	    Const MODULUS_BITS = 512 
300.
	    Const CONGRUENT_BITS = 448 
301.
	    
302.
	    lMessageLength = Len(sMessage) 
303.
	    
304.
	    lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) \ BITS_TO_A_BYTE)) \ (MODULUS_BITS \ BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS \ BITS_TO_A_WORD) 
305.
	    ReDim lWordArray(lNumberOfWords - 1) 
306.
	    
307.
	    lBytePosition = 0 
308.
	    lByteCount = 0 
309.
	    Do Until lByteCount >= lMessageLength 
310.
	        lWordCount = lByteCount \ BYTES_TO_A_WORD 
311.
	        lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE 
312.
	        lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition) 
313.
	        lByteCount = lByteCount + 1 
314.
	    Loop 
315.
	 
316.
	    lWordCount = lByteCount \ BYTES_TO_A_WORD 
317.
	    lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE 
318.
	 
319.
	    lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition) 
320.
	 
321.
	    lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3) 
322.
	    lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29) 
323.
	    
324.
	    ConvertToWordArray = lWordArray 
325.
	End Function 
326.
	 
327.
	Private Function WordToHex(lValue) 
328.
	    Dim lByte 
329.
	    Dim lCount 
330.
	    
331.
	    For lCount = 0 To 3 
332.
	        lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1) 
333.
	        WordToHex = WordToHex & Right("0" & Hex(lByte), 2) 
334.
	    Next 
335.
	End Function 
336.
	 
337.
	Public Function MD5(sMessage) 
338.
	    Dim x 
339.
	    Dim k 
340.
	    Dim AA 
341.
	    Dim BB 
342.
	    Dim CC 
343.
	    Dim DD 
344.
	    Dim a 
345.
	    Dim b 
346.
	    Dim c 
347.
	    Dim d 
348.
	    
349.
	    Const S11 = 7 
350.
	    Const S12 = 12 
351.
	    Const S13 = 17 
352.
	    Const S14 = 22 
353.
	    Const S21 = 5 
354.
	    Const S22 = 9 
355.
	    Const S23 = 14 
356.
	    Const S24 = 20 
357.
	    Const S31 = 4 
358.
	    Const S32 = 11 
359.
	    Const S33 = 16 
360.
	    Const S34 = 23 
361.
	    Const S41 = 6 
362.
	    Const S42 = 10 
363.
	    Const S43 = 15 
364.
	    Const S44 = 21 
365.
	 
366.
	    x = ConvertToWordArray(sMessage) 
367.
	    
368.
	    a = &H67452301 
369.
	    b = &HEFCDAB89 
370.
	    c = &H98BADCFE 
371.
	    d = &H10325476 
372.
	 
373.
	    For k = 0 To UBound(x) Step 16 
374.
	        AA = a 
375.
	        BB = b 
376.
	        CC = c 
377.
	        DD = d 
378.
	    
379.
	        FF a, b, c, d, x(k + 0), S11, &HD76AA478 
380.
	        FF d, a, b, c, x(k + 1), S12, &HE8C7B756 
381.
	        FF c, d, a, b, x(k + 2), S13, &H242070DB 
382.
	        FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE 
383.
	        FF a, b, c, d, x(k + 4), S11, &HF57C0FAF 
384.
	        FF d, a, b, c, x(k + 5), S12, &H4787C62A 
385.
	        FF c, d, a, b, x(k + 6), S13, &HA8304613 
386.
	        FF b, c, d, a, x(k + 7), S14, &HFD469501 
387.
	        FF a, b, c, d, x(k + 8), S11, &H698098D8 
388.
	        FF d, a, b, c, x(k + 9), S12, &H8B44F7AF 
389.
	        FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1 
390.
	        FF b, c, d, a, x(k + 11), S14, &H895CD7BE 
391.
	        FF a, b, c, d, x(k + 12), S11, &H6B901122 
392.
	        FF d, a, b, c, x(k + 13), S12, &HFD987193 
393.
	        FF c, d, a, b, x(k + 14), S13, &HA679438E 
394.
	        FF b, c, d, a, x(k + 15), S14, &H49B40821 
395.
	    
396.
	        GG a, b, c, d, x(k + 1), S21, &HF61E2562 
397.
	        GG d, a, b, c, x(k + 6), S22, &HC040B340 
398.
	        GG c, d, a, b, x(k + 11), S23, &H265E5A51 
399.
	        GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA 
400.
	        GG a, b, c, d, x(k + 5), S21, &HD62F105D 
401.
	        GG d, a, b, c, x(k + 10), S22, &H2441453 
402.
	        GG c, d, a, b, x(k + 15), S23, &HD8A1E681 
403.
	        GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8 
404.
	        GG a, b, c, d, x(k + 9), S21, &H21E1CDE6 
405.
	        GG d, a, b, c, x(k + 14), S22, &HC33707D6 
406.
	        GG c, d, a, b, x(k + 3), S23, &HF4D50D87 
407.
	        GG b, c, d, a, x(k + 8), S24, &H455A14ED 
408.
	        GG a, b, c, d, x(k + 13), S21, &HA9E3E905 
409.
	        GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8 
410.
	        GG c, d, a, b, x(k + 7), S23, &H676F02D9 
411.
	        GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A 
412.
	            
413.
	        HH a, b, c, d, x(k + 5), S31, &HFFFA3942 
414.
	        HH d, a, b, c, x(k + 8), S32, &H8771F681 
415.
	        HH c, d, a, b, x(k + 11), S33, &H6D9D6122 
416.
	        HH b, c, d, a, x(k + 14), S34, &HFDE5380C 
417.
	        HH a, b, c, d, x(k + 1), S31, &HA4BEEA44 
418.
	        HH d, a, b, c, x(k + 4), S32, &H4BDECFA9 
419.
	        HH c, d, a, b, x(k + 7), S33, &HF6BB4B60 
420.
	        HH b, c, d, a, x(k + 10), S34, &HBEBFBC70 
421.
	        HH a, b, c, d, x(k + 13), S31, &H289B7EC6 
422.
	        HH d, a, b, c, x(k + 0), S32, &HEAA127FA 
423.
	        HH c, d, a, b, x(k + 3), S33, &HD4EF3085 
424.
	        HH b, c, d, a, x(k + 6), S34, &H4881D05 
425.
	        HH a, b, c, d, x(k + 9), S31, &HD9D4D039 
426.
	        HH d, a, b, c, x(k + 12), S32, &HE6DB99E5 
427.
	        HH c, d, a, b, x(k + 15), S33, &H1FA27CF8 
428.
	        HH b, c, d, a, x(k + 2), S34, &HC4AC5665 
429.
	    
430.
	        II a, b, c, d, x(k + 0), S41, &HF4292244 
431.
	        II d, a, b, c, x(k + 7), S42, &H432AFF97 
432.
	        II c, d, a, b, x(k + 14), S43, &HAB9423A7 
433.
	        II b, c, d, a, x(k + 5), S44, &HFC93A039 
434.
	        II a, b, c, d, x(k + 12), S41, &H655B59C3 
435.
	        II d, a, b, c, x(k + 3), S42, &H8F0CCC92 
436.
	        II c, d, a, b, x(k + 10), S43, &HFFEFF47D 
437.
	        II b, c, d, a, x(k + 1), S44, &H85845DD1 
438.
	        II a, b, c, d, x(k + 8), S41, &H6FA87E4F 
439.
	        II d, a, b, c, x(k + 15), S42, &HFE2CE6E0 
440.
	        II c, d, a, b, x(k + 6), S43, &HA3014314 
441.
	        II b, c, d, a, x(k + 13), S44, &H4E0811A1 
442.
	        II a, b, c, d, x(k + 4), S41, &HF7537E82 
443.
	        II d, a, b, c, x(k + 11), S42, &HBD3AF235 
444.
	        II c, d, a, b, x(k + 2), S43, &H2AD7D2BB 
445.
	        II b, c, d, a, x(k + 9), S44, &HEB86D391 
446.
	    
447.
	        a = AddUnsigned(a, AA) 
448.
	        b = AddUnsigned(b, BB) 
449.
	        c = AddUnsigned(c, CC) 
450.
	        d = AddUnsigned(d, DD) 
451.
	    Next 
452.
	    
453.
	    MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d)) 
454.
	End Function 
455.
End Class
Das Excel File sollte so aufgebaut sein damit es mit dem obigen Script funktioniert:

91ac21d23ea0e3466cb287284291b870 - Klicke auf das Bild, um es zu vergrößern

Das Script muss als Administrator folgendermaßen ausgeführt werden:
(Ein Admin-Konto deswegen, da das Script die Berechtigungen haben muss um das Config-File zu speichern)
01.
wscript.exe //NOLOGO script.vbs
Um "Blat" zum verschicken von Mails zu verwenden musst du in Zeile 37 das Kommentar entfernen, und Zeile 36 löschen oder auskommentieren.
Zusätzlich musst du die Variablen in der Funktion sendNewMailViaBlat (Zeile 77-89) welche in eckigen Klammern stehen an deine Umgebung anpassen.

p.s. das das Verschicken von Passwörtern via Mail keine gute Idee ist weist du hoffentlich selber ....

Grüße Uwe
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
Bitte warten ..
Mitglied: m.reeger
10.11.2013 um 15:26 Uhr
Mahlzeit,

besten Dank für eure Antworten!
@colinardo TOP!!! Das habe ich gesucht vielen Dank.

Ja Kennwörter über E-Mails zu versenden ist eigentlich doof, aber es bleibt alles auf einem Mailserver.

Es geht darum, ich habe die Domain xzy-gaming.net, dort habe ich Mitglieder die VIP's sind und jeder hat 20GB FTP Speicher
Da man ja die Kennwörter öfters aktualisieren sollte....mach ich das so.
Die Mitglieder haben je eine Adresse mit mail.xzy-gaming.net.
Beide "Domains" liegen auf dem selben Mailserver.

Schönen Sonntag noch!
Bitte warten ..
Mitglied: m.reeger
10.11.2013 um 20:12 Uhr
Jut habe alles angepasst und nun mal nen Test gestartet, leider erhalte ich eine Windows Script Host Fehlermeldung.

Skript: P:\Serverseitig\Daten\Skripts\vbs\ftp_passwörter.vbs
Zeile: 9
Zeichen: 5
Fehler: ActiveX-Komponenten kann kein Objekt erstellen: 'Excel.Application'
Code: 800A01AD
Quelle: Laufzeitfehler in Microsoft VBScript

Office ist auf dem Serversystem nicht installiert!
Bitte warten ..
Mitglied: colinardo
11.11.2013, aktualisiert um 17:14 Uhr
Zitat von m.reeger:
Office ist auf dem Serversystem nicht installiert!
hatte auch nicht gesagt das es komplett ohne Voraussetzungen läuft. Das Script lief vorher auf einer Windows 7 Kiste mit installiertem Office. Um Excel lesen und beschreiben zu können ist ein installiertes Excel nun mal Voraussetzung.
Du hast nun aber zwei Möglichkeiten, wenn du kein Excel auf dem Server installieren willst (ist auch verständlich):
  • Du lagerst das Script auf deine Workstation aus und baust im Script den Remote-Befehl zum aktualisieren der FileZilla Config mit psexec ein und gibst das Verzeichnis in dem die Config steht für die WS frei.
  • Die bessere Lösung, da das Script dann autark auf dem Server laufen kann: Du nutzt anstatt Excel als Datenquelle für die E-Mail-Adressen und Passwörter eine einfache Textdatei, in dem diese dann in folgendem Format stehen [USERNAME]=[PASSWORD]
Beispiel:
user@domain.com=hhsdkhfoiewuri34 
user2@domain.com=773hjj234jhds8f9z
Wenn du es so wie in Variante 2 machen möchtest tauschst du oben im Script die Funktion GenerateNewPasswords durch diese äquivalente Variante aus, und passt den Pfad zur Textdatei in Zeile 3 an :
01.
Sub GenerateNewPasswords() 
02.
    Const CONFIGFILE = "C:\Program Files (x86)\FileZilla Server\FileZilla Server.xml" 
03.
    Const TEXTFILE = "C:\Scripts\users.txt" 
04.
     
05.
    Set objShell = CreateObject("WScript.Shell") 
06.
    Set fso = CreateObject("Scripting.Filesystemobject") 
07.
    Set xmlDoc = CreateObject("Msxml2.DOMDocument.6.0") 
08.
    Set hash = New hashing 
09.
     
10.
    'Remove ReadOnly Attribute of Config File 
11.
    Set objConfigFile = fso.GetFile(CONFIGFILE) 
12.
    objConfigFile.Attributes = 0 
13.
    Set objConfigFile = Nothing 
14.
    '--------------------- 
15.
     
16.
    xmlDoc.Load CONFIGFILE 
17.
    Set userNodes = xmlDoc.selectNodes("/FileZillaServer/Users/User") 
18.
	 
19.
	'Textdatei einlesen und in Array splittem  
20.
    Set txtRead = fso.OpenTextFile(TEXTFILE,1) 
21.
    arrTextFile = Split(txtRead.ReadAll(),vbCrLf) 
22.
    txtRead.Close 
23.
     
24.
 	txtNewContent = "" 
25.
    For k = 0 To UBound(arrTextFile) 
26.
    	If arrTextFile(k) <> "" Then 
27.
    		arrParts = Split(arrTextFile(k),"=") 
28.
    		strEmail = Trim(arrParts(0)) 
29.
	        strNewPass = newPass(15) 
30.
	         
31.
	        For Each userNode In userNodes 
32.
	            strUserName = userNode.attributes.getNamedItem("Name").Text 
33.
	            If strEmail = strUserName Then 
34.
	                'setze das neue Passwort im Configfile (MD5-Kodiert) 
35.
	                userNode.selectSingleNode("Option[@Name='Pass']").Text = hash.MD5(strNewPass) 
36.
	                'erstelle eine E-Mail mit dem neuen Passwort 
37.
	                sendNewMailViaBlat strUserName, strNewPass 
38.
	                txtNewContent = txtNewContent & strEmail & "=" & strNewPass & vbCrLf 
39.
	            End If 
40.
	        Next 
41.
	     End If 
42.
    Next 
43.
    'Speichere Datei mit den neuen Passwörtern 
44.
    Set txtWrite = fso.OpenTextFile(TEXTFILE,2) 
45.
    txtWrite.Write(txtNewContent) 
46.
    txtWrite.Close 
47.
    'Speichere FileZilla Config 
48.
    xmlDoc.Save CONFIGFILE 
49.
    objShell.Run """C:\Program Files (x86)\FileZilla Server\FileZilla Server.exe"" /reload-config" 
50.
    Set objShell = Nothing 
51.
    Set fso = Nothing 
52.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: rziemke
11.11.2013 um 12:05 Uhr
Hi, mal auch eine doofe Frage. Bekommt damit jeder die selbe Excel Tabelle mit allen Passwörtern?
Gruß
Bitte warten ..
Mitglied: colinardo
11.11.2013, aktualisiert um 12:09 Uhr
Zitat von rziemke:
Hi, mal auch eine doofe Frage. Bekommt damit jeder die selbe Excel Tabelle mit allen Passwörtern?
Die Frage ist wirklich doof ....
Quatsch, natürlich nicht, jeder bekommt nur sein eigenes Passwort zugesendet !

Grüße Uwe
Bitte warten ..
Mitglied: m.reeger
11.11.2013 um 17:13 Uhr
Ok besten dank.
Ja ich werde dann wohl mal Excel 2013 aufm Server installieren.
Schönen Abend noch!
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
E-Mail
gelöst BLAT zum Mail versenden. Fehler für mich nicht lösbar (25)

Frage von 130217 zum Thema E-Mail ...

Outlook & Mail
gelöst E-Mail versenden mit PowerShell (6)

Frage von 112Timo zum Thema Outlook & Mail ...

Outlook & Mail
gelöst Office 365 - SMTP - automatisierte Mail versenden - "Gerät freigeben?!" (4)

Frage von KMUlife zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...