UNC konvertieren

JJB

Cogito ergo brumm
Tach !

Ich muss zwei Pfade vergleichen, einer davon enthält aber immer wieder UNC Pfade wie \\XYServer\XYPfad\MyFolder. Dieser kann jedoch der auch über F:\MyFolder angesprochen werden.

Kann ich den UNC Pfad irgendwie konvertieren oder die Laufwerksbuchstaben in einen UNC Pfad überführen, so dass ein Vergleich beider Pfade, trotzt anderer Zeichenfolge, eine Übereinstimmung feststellt ?

Irgendwas einfaches wie Convert.ToUnc(MyPath) wäre mir natürlich am liebsten.
Gibt es da irgendwelche Möglichkeiten ?

MFG JJB
 
Tja...

GetUncPath funktioniert, doch auch nicht immer.
Kann es sein, dass der Erfolg dieser Abfrage von Benutzerrechten abhängt ?

Ich führe diese Abfrage mit einem bestimmten Benutzernamen in einem Dienst aus.
Dieser Benutzer hat alle nötigen Rechte für das bestimmte Netzverzeichnis, aber möglicherweise kennt er trotzdem das Mapping nicht. Wie kann ich das lösen, so dass er den Pfad trotzdem auflösen kann ?

Jemand eine Idee ?
 
Hat sich erledigt...

Meine Ursprüngliche Methode funktionierte, nur muss für den entsprechenden Benutzer auch das Mapping angelegt werden.

Code:
ManagementClass aManagementClass = new ManagementClass("Win32_NetworkConnection");
ManagementObjectCollection aManagementObjectCollection = aManagementClass.GetInstances();
foreach(ManagementObject aManagementObject in aManagementObjectCollection)
{
   String aLocalName = (String)aManagementObject.GetPropertyValue("LocalName");
   String aRemotePath = (String)aManagementObject.GetPropertyValue("RemotePath");

   if((aLocalName != null) && (aLocalName != "") && myUnconvertedPath.ToLower().StartsWith(aLocalName.ToLower() + "\\"))
      myConvertedPath = myUnconvertedPath.ToLower().Replace(aLocalName.ToLower() + "\\", aRemotePath + "\\");
}

Zum setzen des Mappings reicht ein einfaches NET USE, wobei man hier den Benutzer auf keinen Fall vergessen sollte, sonst klappt es nicht:

IF NOT EXIST Z:\*.* NET USE Z: \\myServer\myPath /user:myDomain\myUser "myPassword"

Der Benutzer ist natürlich jener, über den der Dienst ausgeführt wird.
 

Neue Beiträge

Zurück