2009-03-25 7 views
1

Ich bin ein Programm zum Überwachen eines Remote-Verzeichnisses, und ich verwende die Windows-API: WNetAddConnection. Ich verwende es, um Remote-Verzeichnis zu Z zuzuordnen: mit einem bestimmten Benutzer/Passwort.Wie ein Windows-Remote-Verzeichnis zu trennen?

Nachdem ich dieses Programm auf die Arbeitsumgebung setzen, jemand Explorer Ort verwenden „\ 192.168.XX \ somedir“ das gleiche Verzeichnis anmelden I überwacht, und es macht mein Programm nicht in diesem Verzeichnis eine Verbindung herstellen können, so ich Ich muss diese Leute bitten, das nicht zu tun, aber ich kann sie nicht dazu zwingen.

Also ich möchte wissen, ob es eine Möglichkeit gibt, alle anderen Verbindungen zu trennen, oder provent sie tun dieses Ding, weiß jemand wie?

By the way, ich bin kein Experte in Fenster, ich weiß nicht, die Details der Windows-Netzwerk (oder das, was dieser Fehler wirklich bedeutet), kann mir jemand sagen, wo die Dokumentation für Windows-Netzwerk ist?

+0

Ich weiß nicht, warum, wenn die Leute benutzen Explorer und setzen Ort: „\ 192.168.XX \ somedir“ und Benutzer ihr Benutzer/pwd, mein Programm wird nicht das gleiche gemeinsame Verzeichnis verbinden .. – linjunhalida

+0

Das ist eine Microsoft-Beschränkung. Ein Windows-Client, der auf Freigaben auf einem Windows-Server zugreift, muss für alle Freigaben, auf die er zugreift, denselben Benutzernamen und dasselbe Kennwort verwenden. –

Antwort

1

Hässliche Option:

Sie könnten die Ausgabe von "net use" analysieren und dann die Verbindungen trennen Sie nicht wie mit "net use/d"

(WNetCancelConnection2 scheint die API zu sein, dass Verwendung net/d verwendet)

1
WNetCancelConnection2 

Aber es ist nicht das freundlichste, Menschen zu tun.

+0

wir entwickeln ein Programm nur in unserer Fabrik verwendet, und die Benutzer sind Arbeiter ... – linjunhalida

0

Nicht sicher über die API, aber net session/delete löscht alle geöffneten Sitzungen zu einer Freigabe.

0

Sie können dies den Schritt folgen tun: 1, führen Sie den Auftrag alle Netzbenutzer zu löschen und die passwd, die Reihenfolge ist: rundll32.exe shell32.dll, Control_RunDLL keymgr.dll 2, löschen Sie alle Informationen des Benutzers im Speicher verwenden Sie die ord er: net use * /delete /y oder Sie können eine Fledermaus-Datei erstellen Whit die Folge Informationen:

@echo off 
rundll32.exe shell32.dll,Control_RunDLL keymgr.dll 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 

net use 
net use 
net use 

net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y