Jump to content

Slupor

Members
  • Gesamte Inhalte

    28
  • Registriert seit

  • Letzter Besuch

Über Slupor

  • Geburtstag 17.06.1984

Profile Fields

  • Member Title
    Newbie

Fortschritt von Slupor

Contributor

Contributor (5/14)

  • Erste Antwort
  • Engagiert
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei

Neueste Abzeichen

10

Reputation in der Community

  1. Ich weiß, man soll keine Antiquitäten in einem Forum wieder ausgraben, aber ich hatte eben auch dieses Problem und habe es wie folgt gelöst... Vielleicht hilft es ja dem nächsten der die SuFu benutzt :) - Setze den Drucker, welcher als Standarddrucker gesetzt werden soll an die letzte Stelle der Richtlinie - cmd --> gpupdate /force - Standard-Drucker wurde gesetzt und war auch noch nach Anmeldung vorhanden
  2. http://www.gruppenrichtlinien.de/artikel/bereitgestellte-drucker-drucker-veroeffentlichung/ Soviel dazu... Ich bin nach wie vor der Meinung, dass ich mit meinem Script alles an einer Stelle habe, auch wenn nicht für jeden Blödmann (oder hießen die Leute User :D ) der nur eine GUI lesen kann ersichtlich.
  3. Ich habe niemanden persönlich angegriffen, ich erwarte in so einem Forum lediglich Antworten auf das was ich auch gefragt habe! Zum anderen wiederholt hier der eine den Beitrag des anderen und ich habe das Gefühl, dass meine Beiträge garnicht erst gelesen wurden, sonst wäre klar gewesen: Ich will ein Script basteln, nicht mehr und nicht weniger! Habe ich so auch mehrfach betont! Wofür und ob das so nun in den Einsatz kommt oder nicht kann jedem doch völlig egal sein. Mal im Ernst eine Gegenfrage an dich: Wenn du jemanden fragst der Ahnungs hat (wovon ich hier ja ausgehe) welches Auto er dir empfehlen kann und du gibst ihm 2 Modelle vor und willst die Vor- und Nachteile wissen und bekommst als Antwort "Autofahren ist mist, fahr mit dem Zug!" wärst du mit dieser Antwort zufrieden? Also ich nicht.
  4. Zuerst mal danke an alle die geholfen haben. /rage Hauptsächlich an Sunny, der Rest der hier gepostet hat den würde ich wenn ich Mod wäre hier als Spam löschen! Mal ehrlich, langsam platzt mir die Hutschnur... Wenn mich einer Fragt "Wie wird das Wetter morgen?" dann antworte ich ihm auch nicht in jedem zweiten Satz: "Das sag ich dir nicht, aber im August solls Toll werden, ich würde mir meinen Urlaub dort nehmen!" Ich frage nach expliziten Stellen in einem vorgegebenen Script, weiß sogar schon an welchen Stellen mein Fehler sitzt und jeder zweite hier schreibt mir "Ich würde das garnicht mit VBS machen!" Mein "Ungetüm" wie du es nennst wird sogar insgesamt noch länger, weil wir hier mehere Firmen auf einer Serverfarm haben und mein Chef das mit einem VB-Login-Script haben will und ich ebenfalls! /rage Ende :D Dieses Script ist zum anderen eine Übungssache um da wieder etwas rein zu kommen. Je komplizierter ich es mache und trotzdem noch verstehe desto besser ist das. Mit MsgBox("Hallo Welt!") lernt man in meinen Augen garnichts! Und hierbei habe ich direkt eine Testumgebung. Nicht dass jetzt einer denkt ich würde dieses Script auf laufenden Servern testen. Das wird zum einen zuerst alles in eine Textdatei ausgegeben wie an vielen Stellen zu sehen ist und zum anderen teste ich bevor ich das mache in einer Virtuellen, kleineren Umgebung.
  5. Set Conn = CreateObject("ADODB.Connection") Set fso = CreateObject("Scripting.FileSystemObject") Set fdesc = fso.OpenTextFile("C:\test.txt", 8, True) Set objShell = CreateObject("WScript.Shell") user=objShell.ExpandEnvironmentStrings("%UserName%") PRSName = "PS-1" ' Connect to the database strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\STDPRN.mdb" Conn.Open strConnect StrSQL = "Select * FROM PRN1 WHERE USR = user" Set RS = Conn.Execute(StrSQL) fdesc.WriteLine("\\" & PRSName & "\" & RS("PRN") & vbCrlf & "Standartdrucker gesetzt!") RS.Close Conn.close obigen Code verwende ich aktuell um aus einer Access-DB Daten auszulesen. Wenn ich den Usernamen von Hand eingebe funktioniert das ganze auch so wie es soll, aber ich will ja den Usernamen Variabel haben, wie kann ich meinem VB-Script sagen er soll nicht den user "user" suchen sondern die Variable user? z.B. m.mustermann ist am System angemeldet, dementsprechend soll da stehen >>StrSQL = "Select * FROM PRN1 WHERE USR = m.mustermann"<<
  6. '********************************************************************************************************' Option Explicit On Error Resume Next '********************************************************************************************************' '****************************************** Variablen zuweisen ******************************************' Dim fso Dim objNetwork Dim strComputer Dim objShell Dim objGroups Dim objWMIService Dim colInstalledPrinters Dim objPrinter Dim user Dim domain Dim objGroup Dim Groups Dim Computer Dim PrintQueue Dim PRNAME Dim PRSName strComputer = "." Set objWMIService = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2") Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * From Win32_Printer Where Network = True") Set fso = CreateObject ("Scripting.FileSystemObject") Set objShell = CreateObject("WScript.Shell") Set objNetwork = CreateObject("WScript.Network") domain = objNetwork.UserDomain Groups = "#" PRNAME = "" PRSName = "PS-1" user=objShell.ExpandEnvironmentStrings("%UserName%") Set objGroups = GetObject("WinNT://" & domain & "/" & user) Set Computer = GetObject("WinNT://" & PRSName & ",Computer") Computer.Filter = Array("PrintQueue") '********************************************************************************************************' '************************************ Gruppenmitgliedschaft abfragen ************************************' For Each objGroup In objGroups.Groups Groups = Groups & objGroup.Name & "#" Next '********************************************************************************************************' '********************************************* Datev-Gruppe *********************************************' If InStr(Groups, "#Datev#") > 0 Then '++++++++++++++++++++++++++++++++++++++ Laufwerk L "Datev" ++++++++++++++++++++++++++++++++++++++' If fso.DriveExists ("L:") Then objNetwork.RemoveNetworkDrive "L:", True, True End If objNetwork.MapNetworkDrive "L:", "\\DATEV-SRV\DATEV ", True '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++' End If '********************************************************************************************************' '*********************************************** All-User ***********************************************' If InStr(Groups, "#Alle#") > 0 Then '++++++++++++++++++++++++++++++++++++++ Laufwerk G "Daten" ++++++++++++++++++++++++++++++++++++++' If fso.DriveExists ("G:") Then objNetwork.RemoveNetworkDrive "G:", True, True End If objNetwork.MapNetworkDrive "G:", "\\File-SRV\Daten", True '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++' '+++++++++++++++++++++++++++++ Laufwerk Z: "Daten User Individuell" +++++++++++++++++++++++++++++' If fso.Folderexists("\\File-SRV\Daten-User-Individuell\" & user) = True Then If fso.DriveExists ("Z:") Then objNetwork.RemoveNetworkDrive "Z:", True, True End If objNetwork.MapNetworkDrive "Z:", "\\File-SRV\Daten-User-Individuell\"& user, True End If '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++' End If '********************************************************************************************************' '****************************** alle bestehenden Netzwerkdrucker entfernen ******************************' For Each objPrinter in colInstalledPrinters objPrinter.Delete_ Next '********************************************************************************************************' '********************************************** Drucker 18 **********************************************' If InStr(Groups, "#18#") > 0 Then For Each PrintQueue In Computer PRNAME = PRNAME & PrintQueue.PrinterName & vbCrlf If Instr(PrintQueue.PrinterName, "PS-1\18-") > 0 then objNetwork.AddWindowsPrinterConnection PrintQueue.PrinterName End If Next PRNAME = "" End If '********************************************************************************************************' '********************************************** Drucker 32 **********************************************' If InStr(Groups, "#32#") > 0 Then For Each PrintQueue In Computer PRNAME = PRNAME & PrintQueue.PrinterName & vbCrlf If Instr(PrintQueue.PrinterName, "PS-1\32-") > 0 then objNetwork.AddWindowsPrinterConnection PrintQueue.PrinterName End If Next PRNAME = "" End If '********************************************************************************************************' '********************************************** Drucker 42 **********************************************' If InStr(Groups, "#42#") > 0 Then For Each PrintQueue In Computer PRNAME = PRNAME & PrintQueue.PrinterName & vbCrlf If Instr(PrintQueue.PrinterName, "PS-1\42-") > 0 then objNetwork.AddWindowsPrinterConnection PrintQueue.PrinterName End If Next PRNAME = "" End If '********************************************************************************************************' '************************************** Standart-Drucker festlegen **************************************' objNetwork.SetDefaultPrinter "\\PS-1\18-L202" '********************************************************************************************************' Hier nun mal das bisher fertige Script, damit komme ich wohl ganz gut hin, das einzige was mir noch fehlt ist am Ende die Geschichte mit dem Standart-Drucker, der soll natürlich auch noch dynamisch werden. Es existiert wohl auch schon eine Excel-Datei wo drin steht, wer welchen Standartdrucker hat, ob man diese wohl so verwenden kann als externe Datenquelle? Ich persönlich finde das Script doch sehr überschaubar und übersichtlich, vor allem halt eben alles an einem Fleck. Gibts irgendwo ne Ecke hier im Forum für fertige Scripte zum veröffentlichen, wenn ich alles habe? Was ist eigenlich der unterschied zwischen: Dim var_a Dim var_b Dim var_c und Dim var_a, var_b, var_c Sollte es da keinen geben wäre dann ja doch alles noch um ein paar Zeilen kürzer das ganze, wenn ich da alles in eine Zeile quetsche, oder? Wurde bisher in keinem Tutorial erklärt das ich gefunden habe und wonach ich bei Google suchen sollte um das zu erfahren wüsste ich momentan auch nicht... Wenn meine Vermutung richtig ist dürfte es bei VBS egal sein wie ich das schreibe, nur bei VB nicht, zumindest dann nicht wenn ich noch deklariere was für eine Art von Variable es sein soll (as integer, usw.) aber bei VBS geht das ja garnicht... Oder täusche ich mich hier?
  7. Ok, das hat schonmal wunderbar geklappt und lies sich auch einwandfrei einbinden, aber wie sage ich meinem Script nun, dass es z.B. genau die 4 Drucker die mit 18- anfangen auch installieren soll? bisher wurden alle Drucker "von Hand" mit objNetwork.AddWindowsPrinterConnection "\\PS-1\18-L202" installiert. Alle Netzwerkdrucker deinstallieren habe ich auch hinbekommen mit Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * From Win32_Printer Where Network = True") For Each objPrinter in colInstalledPrinters objPrinter.Delete_ Next Ich habe jetzt ja meine schöne Druckerliste die wie folgt aussieht: "#\\PS-1\01-L100#\\PS-1\01-L101#\\PS-1\02-L100#..." Darin stecken ja irgendwo auch meine "\\PS-1\18-" Drucker. Mit deinem Vorschlag kann ich jetzt zwar sagen sobald diese auftauchen tue irgendwas oder installiere einen bestimmten Drucker, aber ich möchte ja direkt alle die darin auftauchen auch installieren und genau da hänge ich. Wie in meinem anderen Thread (siehe Link im ersten Post) zu sehen ist war mir das if Instr(PrintQueue.PrinterName, "PS-1\18-") > 0 then nicht fremd. Ich hänge im Prinzip an genau dieser Stelle nun fest und hoffe auf weitere Denkanstöße: 'Drucker hier installieren... Edit: habe es nun "fast" hinbekommen... dim PRSName dim Computer dim PrintQueue dim PRNAME dim fso PRNAME = "" PRSName = "PS-1" set fso = CreateObject("Scripting.FileSystemObject") set fdesc = fso.OpenTextFile("test.txt", 2, True) Set Computer = GetObject("WinNT://" & PRSName & ",Computer") Computer.Filter = Array("PrintQueue") For Each PrintQueue In Computer if Instr(PrintQueue.PrinterName, "PS-1\18-") > 0 then fdesc.WriteLine(PrintQueue.PrinterName & " wurde installiert!") end if PRNAME = PRNAME & PrintQueue.PrinterName & vbCrlf Next fdesc.WriteLine(PRNAME & vbCrlf & vbCrlf & "XXXXXXXXXXXXXXXXXX") fdesc.Close Lasse zu testzwecken erstmal alles per Ausgabe in eine Textdatei schreiben, bis ich sicher bin, dass das auch funktioniert. Folgendes Problem habe ich aber noch... meine Textdatei sieht wie folgt aus: \\PS-1\18-LabelPrinter wurde installiert! \\PS-1\18-L205 wurde installiert! \\PS-1\18-L204 wurde installiert! \\PS-1\18-Fax-203 wurde installiert! \\PS-1\18-LabelPrinter \\PS-1\18-L205 \\PS-1\18-L204 \\ps-1\18-L203 \\ps-1\18-L202 \\PS-1\18-Fax-203 . . . XXXXXXXXXXXXXXXXXX gesetz dem Fall ich würde "fdesc.WriteLine(PrintQueue.PrinterName & "wurde installiert!")" ersetzen durch "objNetwork.AddWindowsPrinterConnection PrintQueue.PrinterName" würden mir nun 2 Drucker fehlen, aber warum? Es wurde der Drucker 18-L203 und 18-L202 nicht installiert... kann das an der Groß- Kleinschreibung liegen? wieso macht er überhaupt mal groß und mal klein? Dachte eigentlich Windows wäre außer bei Passwörtern die Groß- Kleinschreibung egal... Habe auch schon versucht im Script die Groß- Kleinschreibung zu ändern, bzw. anzupassen, bringt aber nichts, er liest manche Drucker nur mit Großbuchstaben wie es im Script steht und manche mit Kleinbuchstaben :( jemand eine Idee? Nochmal Edit: Fehler schneller gefunden als ich dachte: Manche Drucker waren wohl noch mit Kleinbuchstaben bereits verbunden, wenn ich diese Trenne dann funktioniert es wie es soll.
  8. Frohes Neues Jahr an alle an dieser Stelle. Wie es letztes Jahr aufgehört hat mit meinem Anmeldescript ist hier zu lesen: http://www.mcseboard.de/topic/196242-mehrere-anmeldescripte-m%C3%B6glich/ Nun stehe ich vor meinem nächsten Gehirnjogging und irgendwie will mein Hirn dieses Jahr nicht so ganz mitspielen, vielleicht nach 14 Tagen Urlaub aus der Übung... - Ich habe einen Printserver (PS-1) auf dem insgesamt 114 Drucker installiert sind. - Alle sind brav benannt (für Mandant 18 heißt der Laserdrucker mit der IP 192.168.0.101 z.B. 18-L101, der Nadeldrucker mit der IP 192.168.0.102 z.B. 18-N102, usw.) Wie ich eine Liste mit allen freigegebenen Druckern bekomme weiß ich noch, das hat auch wunderbar hiermit funktioniert: dim PRNServer dim Computer dim PrintQueue dim PRNAME dim fso PRNAME = "#" PRNServer = "PS-1" set fso = CreateObject("Scripting.FileSystemObject") set fdesc = fso.OpenTextFile("printers.txt", 2, True) Set Computer = GetObject("WinNT://" & PRNServer & ",Computer") Computer.Filter = Array("PrintQueue") For Each PrintQueue In Computer PRNAME = PRNAME & PrintQueue.PrinterName & "#" Next fdesc.WriteLine(PRNAME) fdesc.Close Die Textdatei war nur zum Test, es reicht mir ja im Script später das Query, aber in einer MsgBox zeigt er nicht alle an, vermutlich zu viel Inhalt. Als Trennzeichen zwischen den Druckern ist auch schön brav ein "#" damit man weiß: hier beginnt der nächste Drucker. Achtung, erst jetzt kommt die Frage: Wie kann ich z.B. alle Drucker installieren, die im Query mit "#\\PS-1\18-" stehen? Brauche ich das Query überhaupt? Ich muss es mit einem Script lösen, ich weiß selbst, dass und wie es einfacher geht, dient als Übung in VBS.
  9. Soweit mir bekannt ist das so nicht ganz richtig, mit psexec wird auf dem fremden PC die Software gestartet.
  10. Set objShell = CreateObject( "WScript.Shell" ) user=objShell.ExpandEnvironmentStrings("%UserName%") Set WshNetwork = WScript.CreateObject("WScript.Network") domain = WshNetwork.UserDomain txt = "#" Set oGroups = GetObject("WinNT://" & domain & "/" & user) For Each oGroup In oGroups.Groups txt = txt & oGroup.Name & "#" Next eingabe=INPUTBOX("Welche Gruppe soll abgefragt werden:") If InStr(txt, "#" & eingabe & "#") > 0 Then MsgBox "Der Benutzer " & user & " ist Mitglied der Gruppe " & eingabe & "!" Else MsgBox "Der Benutzer " & user & " ist NICHT Mitglied der Gruppe " & eingabe & "!" End If Für alle die noch mehr wollen, damit kann man die Zugehörigkeit einer Gruppe abfragen. Lässt sich im Prinzip auch problemlos in das Script einbauen...
  11. http://hannes-schurig.de/26/08/2010/batch-if-errorlevel/ Das schon mal versucht?
  12. '**************** Bei einem Fehler nicht abbrechen, sondern weiterlaufen **************** On Error Resume Next Option Explicit '**************** Variablen deklarieren und initialisieren **************** Dim fso Dim objNetwork Dim strComputer Dim oShell Dim objWMIService Dim colInstalledPrinters Dim objPrinter Dim user strComputer = "." Set objWMIService = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2") Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * From Win32_Printer Where Network = True") Set fso = CreateObject ("Scripting.FileSystemObject") Set oShell = CreateObject( "WScript.Shell" ) Set objNetwork = CreateObject("WScript.Network") user=oShell.ExpandEnvironmentStrings("%UserName%") '**************** Netzlaufwerke prüfen und neu verbinden **************** '**************** Laufwerk G "Daten" **************** If fso.DriveExists ("G:") Then objNetwork.RemoveNetworkDrive "G:", True, True Else WScript.Sleep 100 End If objNetwork.MapNetworkDrive "G:", "\\FS-1\Daten", True '**************** Laufwerk Z "Daten User Individuell" **************** If fso.Folderexists("\\FS-1\Daten-User-Individuell\" & user) = True Then If fso.DriveExists ("Z:") Then objNetwork.RemoveNetworkDrive "Z:", True, True Else WScript.Sleep 100 End If objNetwork.MapNetworkDrive "Z:", "\\FS-1\Daten-User-Individuell\"& user, True Else WScript.Sleep 100 End If '**************** alle benötigten Drucker prüfen und neu verbinden **************** For Each objPrinter in colInstalledPrinters objPrinter.Delete_ Next objNetwork.AddWindowsPrinterConnection "\\PS-1\PRN1" objNetwork.AddWindowsPrinterConnection "\\PS-1\PRN2" objNetwork.AddWindowsPrinterConnection "\\PS-1\PRN3" objNetwork.AddWindowsPrinterConnection "\\PS-1\PRN4" '**************** Standartdrucker festlegen **************** objNetwork.SetDefaultPrinter "\\PS-1\PRN2" Für alle die mal eins brauchen, hier mein VB-Login-Script Klar kann ich das im Script abfragen, aber dann wiederum wird das Script doch wieder etwas umständlicher und es sollen ja auch mal zukünftig eventuell Leute damit klar kommen die in VBS nicht so ganz bewandert sind. Wie meine AD-Struktur aussieht steht oben, es soll zusätzlich zu den Mandanten noch Sicherheitsgruppen geben für z.B. Datev und Sfirm So wenig wie möglich war wohl eher auf die jetzige Situation bezogen, weil momentan jeder zum Standart-Loginscript noch sein persönliches zusätzlich besitzt, stand aber auch oben...
  13. Die Laufwerke sollen auf keinen Fall fest verbunden werden. Die Aufgaben der User ändern sich mit der Zeit und ich will ohne viel Aufwand den Usern die nötigen Laufwerke zur verfügung stellen. Meine Idee war, wenn z.B. User2.1 momentan nicht in Datev arbeitet bekommt er kein Laufwerk L (auch keinen Zugriff wenn er es über \\Servername\Datev aufrufen sollte). Das ganze ist dann mit der Pflege des AD im Prinzip komplett geschehen. Sollte User2.1 aber nun in 6 Monaten doch in Datev arbeiten müssen, dann ist er ab da einfach zusätzlich "Mitglied von DatevUsers" und bekommt automatisch das Laufwerk L bei Anmeldung verbunden. Wenn er wiederum in weiteren 3 Monaten keinen Datev Zugriff mehr haben soll nehme ich ihn einfach aus der Gruppe raus und somit verschwindet bei der nächsten Abmeldung automatisch das Laufwerk L und kommt bei erneuter Anmeldung nicht wieder. Zum Thema Laufwerke selbst verbinden... Fällt leider aus, es wird über Citrix und veröffentlichte Anwendungen gearbeitet. Es geht ja auch nicht nur um Laufwerke, sondern auch um freigegebene Drucker, Standartdrucker setzen, usw. Ich selbst finde da ein einseitiges VB-Script doch übersichtlicher als eine GUI in der jeder Punkt dann in einer anderen Registerkarte steckt. Desweiteren bin ich mehr der Konsolen-Fan und auch davon nicht abzubringen :) Meine Frage ist lediglich noch folgende: Geht das so wie ich mir das vorstelle oder nicht?
  14. 2x oder Citrix geht auch, sowas nennt man dann veröffentlichte Anwendung und sowas erfordert Lizenzen. Wenn das mit einem Script so einfach wäre, dann müsste sich ja keiner sowas kaufen :) Aber auch 2x und Citrix greifen hier auf das RDP zurück.
  15. Hallo, Ich stehe hier vor folgendem Problem: In unserer Firma arbeiten 180 Mitarbeiter am PC. Bisher sind diese auf 10 Mandanten verteilt und jeder Mandant hat sein eigenes Anmeldescript, welches beim Benutzer eingetragen ist. Folgendes Fallbeispiel: Für Mandant 1 werden standartmäßig Laufwerk Z und Q verbunden (wohin ist ja eingentlich egal). 4 von 10 Mitarbeitern müssen aber zusätzlich Laufwerk G haben. Für diese Mitarbeiter ist ein zusätzliches script mit Namen "%username%.cmd" erstellt worden, welches über "if exist "\\DC1\NETLOGON\%username%.cmd" call "\\DC1\NETLOGON\%username%.cmd"" aufgerufen wird. Nun ändern sich hier die Berechtigungen aber ständig und bei den Scripten existiert mehr und mehr ein Totales durcheinander. Mein AD sieht in etwa wie folgt aus: -Domäne - Mandant 1 - User1.1 - User1.2 - Mandant 2 -User2.1 -User2.2 . . . Ich möchte nun mit so wenig Scripten wie möglich eine Lösung finden und habe mir folgendes überlegt: 1.: weg mit den Batch-Scripten --> Umstellung auf VBS 2.: Kein Script mehr im AD-Benutzer 3.: Über die GPO pro Firma/Mandant ein Loginscript ausführen 4.: Gruppen erstellen für Anwendungen (z.B: Datev, SFIRM, usw.) 5.: In den Gruppen per GPO weitere Anmeldescripte hinterlegen Aber: Bevor ich das ganze ausprobiere, weil ich da ja im AD mal so richtig viel Zeit zum aufräumen investieren müsste möchte ich vorher mal fragen ob dies so überhaupt funktioniert. Ich hätte dann ja z.B. das Script Mandant1.vbs welches sämtliche Laufwerke und Drucker für sämtliche User verbindet. Zusätzlich wenn User1.1 in der Gruppe "Datev" Mitglied ist wird noch das Netzlaufwerk für Datev verbunden. Ich hoffe ich konnte mich verständlich ausdrücken und würde mich über weitere Vorschläge und Antworten freuen. Gruß, Slupor
×
×
  • Neu erstellen...