Datei übertragen auf anderen Server via Visual Studio

Datei übertragen auf anderen Server via Visual Studio

Hallo Zusammen,


ich suche eine Möglichkeit, um in einem Programm, welches ich in Visual Studio 2005 programmiere,
eine Datei aus dem Programm herraus (am Ende der Prozedur), auf einen anderen Windows 2003 Server in ein Verzeichniss zu kopieren.

Vorraussetzung ist jedoch, nicht die Verwendung von Netzlaufwerken...

Jedoch kann auf dem "Quell-PC" nicht weiter installiert werden, außer das Programm, welches ich programmiere...
auf den Ziel-Server, kein problem....

Gibts es hier eine Möglichkeit via z.B. FTP oder WMI ???

Danke

Content-Key: 135586

Url: https://administrator.de/contentid/135586

Ausgedruckt am: 25.01.2022 um 15:01 Uhr

Mitglied: dog
dog 09.02.2010 um 23:49:57 Uhr
Goto Top
Ähm...wie jetzt?

http://msdn.microsoft.com/en-us/library/system.io.file.aspx

In members that accept a path, the path can refer to a file or just a directory. The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name.

Mitglied: mayho33
mayho33 10.02.2010 um 00:04:26 Uhr
Goto Top
Hi und Sorry?

Du willst in VB2005 eine Datei zwischen 2 Servern kopieren ohne, ich nehme an, gemappte, sprich, Netzlaufwerksbuchstaben?

WArum nicht VBS? da musst du garnix installieren. Alles schon da. Auch FTP braucht irgendeine Freigabe oder eine Share oder sonstwas damit du da was hincopieren kannst.

Versteh dich glaube ich nicht ganz. Kannst du das genauer erklären?

Grüße
Mitglied: BadFsaadKl
BadFsaadKl 10.02.2010 um 10:26:54 Uhr
Goto Top
Hallo Mayho33,


genau.
aber um genau zu sein, will ich diversen Workstation's eine Datei, in Ein Verzeichniss auf einen Server kopieren.
Jedoch, ohne auf jedem dieser Workstations eine Netzlaufwerk einrichten zu müssen.

Auf den Zielserver einen FTP-Client zu installieren, wäre ein Möglichkeit. welche ich aber erst als letztes in Erwägung ziehen möchte.

Wie würde ich denn die Dateien via VBS übermitteln können ?
Und wie kann ich das VBS - Script dann in das Programm integrieren ?

Danke
Mitglied: mayho33
mayho33 10.02.2010 um 20:12:38 Uhr
Goto Top
Hi!

Etwa so:

Set oShell = WScript.CreateObject("WScript.Shell")
Set oFso = CreateObject("Scripting.FileSystemObject")

appPath = ofso.getparentfoldername(wscript.scriptfullname)

'
'# Variante 1
'Host = InputBox("IP oder Hostmane:")


CopyPath = "\\" + Host + "\c$\Windows\Dateiname"

If ofso.FileExists(copypath + ".txt") Then
ofso.CopyFile copypath + ".txt", apppath + "\", True
End If

'
'# Variante 2
RangeHost = InputBox("IP oder Hostmane getrennt durch ""|"" eingeben:")
arrRangeHost = Split(RangeHost, "|")
LenarrRangeHost = UBound(arrRangeHost)

x = 0

Do
copypath = "\c$\Windows\Dateiname"
FullCopyPath = "\\" + arrRangeHost(x) + CopyPath + ".txt"

If ofso.FileExists(FullCopyPath) Then
ofso.CopyFile FullCopyPath, apppath +"\", True
WScript.Sleep 1500
ofso.MoveFile apppath + "\dateiname.txt", apppath + "\dateiname" + "_" + arrRangeHost(x) + ".txt"
End If
x = x + 1
Loop Until x > LenarrRangeHost
Mitglied: BadFsaadKl
BadFsaadKl 11.02.2010 um 09:41:38 Uhr
Goto Top
Hallo Mayho33,


Danke für den Code.
Funktioniert Lokal wunderbar.

Jetzt bräucht nur noch die Info, wie, wo ich die Zugangsdaten für den Server eingebe.
Sprich Benutzername, Password.

Danke
Mitglied: mayho33
mayho33 11.02.2010 um 21:12:57 Uhr
Goto Top
Hi!

Eigentlich wird das Script am Server ausgeführt und holt von den Clients die Datei die du haben möchtest. in den Script-Pfad Da am Server eh nur der Admin was zu suchen hat sollte im AD das Script eigentlich problemlos ohne Login funktionieren.

LOgon ginge z.B. über die WMI wenn du das unbedingt brauchst.
Mitglied: BadFsaadKl
BadFsaadKl 16.02.2010 um 14:37:49 Uhr
Goto Top
Hallo Mayho33,


Danke für den Code.
Kennst du auch eine Möglichkeit, das ganze nun doch via Visual Basic umzusetzen ?
Ausführen von Scripten auf dem Server ist leider nicht mehr möglich (Firmenpolitik :-( face-sad )....

Würde das ganze gerne über die System.Management & Filesystem Klasse machen, falls das geht.

Habe bereits bissle rumgetüftelt, aber fehlt mir noch einiges :-( face-sad...

Imports System
Imports System.Management

Dim Options As ConnectionOptions
Options = New ConnectionOptions
Options.Username = "###"
Options.Password = "###"

Dim Path As ManagementPath
Path = New ManagementPath("\\Server\root\CIMV2:Win32_LogicalDisk.DeviceID=""C:""")
Dim path2 = "C:\web.txt"

Hab bis jetzt nur mit dem ManagementScope und ObjectQuery mit paar Infos auslesen können...
Jedoch komme ich mit dem Filetransfer noch net so klar.

Kannst du mir da weiterhelfen ?

Danke
Mitglied: dog
dog 16.02.2010 um 14:53:20 Uhr
Goto Top
Vielleicht liest du dir einfach nochmal meinen ersten Kommentar genau durch ;-) face-wink
Mitglied: BadFsaadKl
BadFsaadKl 16.02.2010 um 15:34:37 Uhr
Goto Top
Hab ich mir schon durchgelesen.
Komme jedoch net mit zurecht, wie ich beim Zielpfad, die Zugangsdaten mitgebe.

Bei der Scope-Finktion siehts wie folgt aus:
'scope = New ManagementScope("\\Server\root\CIMV2", Options)
' Die Opteions sind die Zugangsdaten.

bei der ManagementPath Funktion klappt das aber irgendwie net so.
Mitglied: dog
dog 16.02.2010 um 16:04:53 Uhr
Goto Top
Sicher nicht schön (weil man über die C-API gehen muss) aber über WNetAddConnection2 kannst du dich mit einem Share verbinden: http://msdn.microsoft.com/en-us/library/aa385413%28VS.85%29.aspx
Damit solltest du die notwendige Session zum Kopieren haben.
(Das lpLocalName Attribut des NETRESOURCE Structs muss leer sein).
Mitglied: mayho33
mayho33 18.02.2010 um 23:11:09 Uhr
Goto Top
Hi!

Hier ein Beispiel. Gefunden in der allgemeinen Hilfe

geschrieben in VB2008 musst du also eventuell ein wenig anpassen und ist ungetestet

Auf System.Management musst du explizit einen Verweis setzen


Imports System
Imports System.Management
Imports System.IO

Module Module1
Sub main()
'User/Passwort übergeben
Dim Anmelden() As String = {"USER", "PASSWORT"}

RemoteConnect.Main_(Anmelden)
End Sub


Public Class RemoteConnect

Public Overloads Shared Function Main_(ByVal args() As String) As Integer

'User/Passwort übernehmen
Dim options As ConnectionOptions
options = New ConnectionOptions
options.Username = args(0)
options.Password = args(1)

'VErbindung aufbauen
Dim scope As ManagementScope
scope = New ManagementScope("\\SERVERNAME:Win32_LogicalDisk.DeviceID=""C:""", options)
scope.Connect()

' Query system for Operating System information
Dim query As ObjectQuery
query = New ObjectQuery( _
"SELECT * FROM Win32_OperatingSystem")
Dim searcher As ManagementObjectSearcher
searcher = _
New ManagementObjectSearcher(scope, query)

Dim queryCollection As ManagementObjectCollection
queryCollection = searcher.Get()

Dim m As ManagementObject
For Each m In queryCollection
' Daten anzeigen
Console.WriteLine("Computer Name : {0}", _
m("csname"))
Console.WriteLine("Windows Directory : {0}", _
m("WindowsDirectory"))
Console.WriteLine("Operating System: {0}", _
m("Caption"))
Console.WriteLine("Version: {0}", m("Version"))
Console.WriteLine("Manufacturer : {0}", _
m("Manufacturer"))
Next

Return 0
End Function
End Class




Grüße!


Mayho
Heiß diskutierte Beiträge
question
Ist diese Hardware sinnvoll für privaten Haushalt?stonevVor 1 TagFrageRouter & Routing6 Kommentare

Hallo erstmal :) Meine alte Fritzbox 7490 spinnt seit gestern. Ich gehe von Alterschwäche aus, es wird also Ersatz fällig. Zufrieden war ich mit ihr ...

question
LTO-5 Bänder Löschen geht nichtkreuzbergerVor 1 TagFrageBackup23 Kommentare

Hallo ihr Helden, ich hab da ein blödes Problem: Ich habe einen Stapel gebrauchte LTO-5-Bänder bekommen, die soweit völlig i. O. sind. Mit welchem Programm ...

question
Teilenummer für weiße Esprimo Mini-PC?LochkartenstanzerVor 1 TagFrageHardware21 Kommentare

Moin, Ich habe eine eigenwillige Kundin, die einen weißen Fujitsu Esprimo Mini-PC haben will. Und der Kundin ist, wie sollte es anders sein, die Farbe ...

question
Ein Smartphone für privat und geschäftliche NutzungNebellichtVor 1 TagFragePeripheriegeräte5 Kommentare

Hallo, für die Firma werden aktuell Smartphone(s) gesucht, die da eine Dual Sim ermöglichen und zusätzlich trennende Sicherheit, d.h. ein Trennen von privaten Daten und ...

question
Tipp für Firewall mit mehreren DHCP-Instanzen für VLAN gesucht gelöst Holly484Vor 22 StundenFrageFirewall5 Kommentare

Hallo zusammen, hatte in einer Gemeinschaftspraxis bisher tolle Erfahrungen mit Netgear über die letzten vielen Jahre gesammelt. Jetzt ist Netgear aus dem Firewall-Business ausgestiegen. Bisher ...

question
Suche nach "Beschreibung"ThabeusVor 1 TagFrageVmware11 Kommentare

Moin, ich stehe gerade auf dem Schlauch bei der Suche nach einer Anleitung. Vielleicht kann mir jemand helfen die "Begrifflichkeit" zu finden. In meinem Netzwerk ...

question
User verschickt mit kryptischer Outlook.com Adresse aus on-prem Exchange 2016LauneBaerVor 1 TagFrageExchange Server10 Kommentare

Servus in die Runde, ich habe ein für mich nicht nachvollziehbares Problem bei einem User, das heute zum 2ten mal aufgetreten ist. Und zwar verschickte ...

question
Windows Admin Center - Zugriff verweigertsaschakpVor 1 TagFrageWindows Update3 Kommentare

Hallo ich habe das Windows Admin Center Installiert, leider bekomme ich beim öffnen die Meldung: Zugriff verweigert Sie sind leider nicht zum Senden dieser Anforderung ...