c ++ - Hvordan kan jeg hente Windows-profilerne vejbanen eksternt?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at hente stien til profilsmappen på tværs af forskellige versioner af Windows. I ældre versioner, der måske er [[drev]]: \ Dokumenter og indstillinger, på nyere er det [[drev]]: \ Brugere. Der er flere måder at gøre dette lokalt uden problemer, men jeg skal finde stien på en fjernmaskine, som jeg har forbindelse til.



  • Fjernregistret er aktiveret.

  • Jeg har et identifikationsmærke og kan med held samle oplysninger fra den eksterne vært via Net API osv.

  • Jeg har adgang til den administrative deling, og derfor alle filerne på fjerndisken.



Her er en liste over andre vigtige advarsler.



  • Det er et C ++-projekt.

  • Det synes ikke at være muligt for GetProfilesDirectory eller GetUserProfileDirectory at fungere i en ekstern sammenhæng. Hvis jeg er forkert, så lad mig vide, men i alle mine eksperimenter har funktionen returneret noget fra den lokale maskine.

  • Jeg kan ikke bruge WMI, vi forsøgte mange gange at integrere WMI-funktionalitet i vores projekt, og det fungerede bare ikke.

  • Jeg foretrækker at gøre så lidt 'skærmskrabning' som muligt. Hvis du har en ide, der ikke indebærer læsning fra nogle tekstfiler og analyse af resultatet, vil jeg gerne høre det. Men jeg værdsætter et nyttigt svar virkelig.

  • Oplysningerne i profilmappen i registreringsdatabasen synes ikke at være nyttige, fordi de indeholder miljøvariabler, og ligesom GetProfilesDirectory virker funktionen for miljøvariabeludvidelse ikke designet til arbejde med eksterne værter. Det betyder, at løsningen ikke ville være arbejde, hvis jeg foretog opkaldet fra en nyere Windows-maskine til en ældre Windows-maskine eller omvendt.

  • Løsningen skal være generel nok til at arbejde mellem værter, der kan køre en hvilken som helst version af Windows fra Windows Server 2003 til Windows 7.



På forhånd tak for de ideer du måtte have. Ideelt set vil jeg bare gerne tvinge GetProfilesDirectory til at fungere på den eksterne vært, så hvis du ved hvordan du gør det, vil jeg elske dig for evigt.

Bedste reference


Hvis du har adgang til fjernregistret, skal du kunne se på nøglen, hvor profilmappen og profillisten holdes:


HKEY\_LOCAL\_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList