Potrzebuję uzyskać dostęp za pośrednictwem VBA do folderu hostowanego na serwerze plików sieciowych. Folder jest dostępny na piśmie tylko za pośrednictwem konta usługi (innego niż zwykłe konta użytkowników), dla którego mam nazwę użytkownika i hasło.Dostęp do udostępnionego folderu sieciowego
Za pośrednictwem interfejsu użytkownika mogę zobaczyć ten folder i mapować go jako dysk lokalny, ale aby uzyskać do niego dostęp na piśmie, muszę się wylogować z systemu Windows i zalogować się za pomocą konta usługi.
Czy jest jakiś sposób uzyskania dostępu do folderu sieciowego podczas normalnej sesji użytkownika, ale nazwa użytkownika na twardym dysku i kod pwd w kodzie VBA?
Próbowałem mapowanie folder jako dysk lokalny z:
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "S:", "\\corp-server\HostingFolder", False, Username, pwd
ale nie działa („S” nie został odwzorowany napęd). Jeśli zamiast tego robię to samo, ale bez podawania nazwy użytkownika i hasła:
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "S:", "\\corp-server\HostingFolder"
działa idealnie.
Zastanawiasz się teraz, czy to, co próbuję zrobić, jest rzeczywiście możliwe? Jeśli nie, czy jest jakaś alternatywa?
Dzięki
Świetne rzeczy, dzięki! Ponieważ obecnie pracuję w domu, mogłem tylko wypróbować twój kod przez VPN i nie działałem (zwróciłem błąd "złą nazwę użytkownika lub hasło") .Traktowałem z i bez domeny w nazwie użytkownika. Byłem również w stanie odtworzyć powyższy błąd (wiele połączeń), otwierając folder docelowy za pomocą Explorera. Muszę teraz przetestować kiedy wracam do pracy, ale to ogólnie brzmi dla mnie dobrze i "musi" działać. Jeśli uważasz, że jest coś innego, co mogę spróbować, daj mi znać, inaczej porozmawiajmy w poniedziałek! – cfugge
To działało idealnie dla mnie. Wielkie dzięki za tak czysty kawałek kodu. – cfugge
Hej, ten kod jest niesamowity. Pracował po raz pierwszy bez masowania. Twoje zdrowie! –