Beide Server befinden sich in unterschiedlichen Umgebungen, ich habe Zugriff auf beide Umgebungen.
z. B.
Server1 befindet sich in Umgebung1, Server2 in Umgebung2
und ich möchte kopieren Datei von Server1 C:\test\copy.txt nach Server2 C:\test\
Hinweis: Verwendung eines Windows-Servers.
Ich habe unten Code hinzugefügt. Damit kann ich die Datei kopieren, wenn sich beide Server im selben VPN befinden, aber in meinem Szenario befinden sich beide Server in unterschiedlichen VPN.
Code: Select all
public void copyFile()
{
IntPtr admin_token = default(IntPtr);
WindowsIdentity wid_current = WindowsIdentity.GetCurrent();
WindowsIdentity wid_admin = null;
WindowsImpersonationContext wic = null;
try
{
Console.WriteLine("Copying file...");
if (LogonUser("LocalUsername", "LocalDomain", "LocalPass", 9, 0, ref admin_token) != 0)
{
wid_admin = new WindowsIdentity(admin_token);
wic = wid_admin.Impersonate();
System.IO.File.Copy("C:\\test\\copy.txt", "\\\\Server2\\test\\copy.txt", true);
Console.WriteLine("Copy succeeded");
}
else
{
Console.WriteLine("Copy Failed");
}
}
catch (System.Exception se)
{
int ret = Marshal.GetLastWin32Error();
Console.WriteLine(ret.ToString(), "Error code: " + ret.ToString());
Console.WriteLine(se.Message);
}
finally
{
if (wic != null)
{
wic.Undo();
}
Console.ReadLine();
}
}
}
Mobile version