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 FTP Passwörter automatisch per Mail am Monatsanfang versenden

Mitglied: m.reeger

m.reeger (Level 2) - Jetzt verbinden

09.11.2013 um 23:07 Uhr, 3338 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 ..
Ähnliche Inhalte
Utilities

FTP-Ordner mit Passwort schützen, um über FTP Passwort eingeben zu müssen

Frage von wescraven07Utilities2 Kommentare

Weiss jemand, ob und wie man einen FTP-Ordner nochmal separat passwort-schützen kann. Also, wenn man sich mit einem FTP-User ...

Mac OS X

Automatisch mail beim booten

gelöst Frage von agnostikerMac OS X3 Kommentare

Alle Clients unserer Domain senden automatisch wenn sie starten eine mail, das sich Benutzer xyz an client abc angemeldet ...

Windows Userverwaltung

E-Mail bei AD-Passwort-Ablauf

Frage von AkroshWindows Userverwaltung8 Kommentare

Guten Morgen, ich weiss das Internet ist voll von Antworten auf die nachfolgende Fragestellung jedoch fehlen mir irgendwo die ...

Microsoft

E-Mail PDF Anhang automatisch drucken

Frage von sven784230Microsoft7 Kommentare

Hallo zusammen, unsere Telefonanlage verschickt eingehende Fax-Nachrichten per Mail - das Fax selbst ist immer als PDF im Anhang. ...

Neue Wissensbeiträge
Hyper-V
Setup VM W2016 startet nicht in Hyper-V 2016
Erfahrungsbericht von keine-ahnung vor 1 TagHyper-V4 Kommentare

Moin, sitze gerade über meinem neuen Server und versuche, die VM auf den Host zu prügeln. Jetzt wollte ich ...

Server-Hardware

HPE Proliant ML350P Gen8 Probleme mit Zugriff auf Raid-Volumes

Erfahrungsbericht von goscho vor 1 TagServer-Hardware1 Kommentar

Hallo Leute, das Problemgerät: HPE ML350P G8 Windows Server 2012R2 HyperV-Host 8 x 300 GB 10K SAS HDD (1 ...

Humor (lol)

"Linux und 5 Gründe Warum man kein Windows verwenden sollte sondern Ubuntu Linux"

Information von Snowbird vor 3 TagenHumor (lol)8 Kommentare

Gerade gefunden. Ja, ist etwas älter, aber irgendwie lustig?

Linux

"Warum Linux in einer vernetzten Welt einfach keinen Komfort bietet!"

Tipp von Snowbird vor 3 TagenLinux13 Kommentare

Ein interessanter Einblick warum Linux nichts für Geräteübergreifende Arbeit ist :)

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Windows Server über Außen-IP nicht ansprechbar
Frage von uups81Netzwerkgrundlagen25 Kommentare

Hallo! Es gibt mehrere Windows Server (2016, 2019), die über einen zweiten Netzwerkadapter in einem lokalen Netzwerk miteinander verbunden ...

Microsoft
Windows 10 - Kombination von lokalen Benutzerkonten und Benutzern aus einer Domäne
Frage von PappnaseVxVVMicrosoft21 Kommentare

Hi, würde gerne folgendes realisieren, von dem ich gern wüsste, ob es geht. Ich habe einen Raum mit 3 ...

Grafikkarten & Monitore
Grafikkarten Angebot auf Amazon
gelöst Frage von NudellordGrafikkarten & Monitore21 Kommentare

Hallo Community, ich suche eine neue Grafikkarte und bin auf die Nvidea Gforce GTX 1080 ti gestoßen. Und dabei ...

Hyper-V
Keine Netzwerkverbindung W2016 VM
gelöst Frage von keine-ahnungHyper-V19 Kommentare

Moin, ich verliere gleich meine contenance ;-). Ich versuche gerade, auf einem Hyper-V 2016 GUI eine W2016-VM (Generation 2 ...