Wie kann ich überprüfen, ob der aktuelle Benutzer das Roaming-Profil verwendet?Wie kann überprüft werden, ob der aktuell angemeldete Benutzer das servergespeicherte Profil verwendet?
Gibt es eine .net Framework-Bibliothek, die helfen kann?
Wie kann ich überprüfen, ob der aktuelle Benutzer das Roaming-Profil verwendet?Wie kann überprüft werden, ob der aktuell angemeldete Benutzer das servergespeicherte Profil verwendet?
Gibt es eine .net Framework-Bibliothek, die helfen kann?
Ich glaube, der einzige Weg, dies zu tun ist, die Win32-Shell-Funktion GetProfileType aufrufen. Sie müssten P/Invoke verwenden, um den Aufruf auszuführen, und dann den out-Wert des pdwFlags-Parameters für PT_ROAMING überprüfen (der den Wert 2 hat).
Ich habe keine Unterschriftsprobe für diese Funktion auf pinvoke.net sehen, aber mit einer solchen einfachen Unterschrift:
BOOL WINAPI GetProfileType(
DWORD *pdwFlags
);
Erstellen einer nicht schwer sein würde.
[DllImport("Userenv.dll", EntryPoint = "GetProfileType", SetLastError = true, CharSet = CharSet.Auto)]
public static extern bool GetProfileType(ref uint pdwflags);
[Flags]
enum Win32ProfileType : uint {
Local=0x00,
Temporary=0x01,
Roaming=0x02,
Mandatory=0x04
}
public void SomeTest()
{
uint type = 0;
if (GetProfileType(ref type)) {
//todo
}
}
@Bubbafat: Stimmt es, dass Benutzer mit servergespeicherten Profilen standardmäßig keine Installationsrechte haben? Wie setzt man diese Berechtigungen dann? – gneash