Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Prüfen, ob ein Windows User schon exisitiert


2 replies to this topic

krakos

krakos
  • Full Members
  • 8 posts

Posted 01 September 2009 - 10:08

Ich habe einen Dialog in dem ein Username und ein Password abgefragt wird. Der User wird später benötigt, um einen Windows-Service zu starten. Dazu musste ich noch die lokalen Sicherheitsrichtlinien ändern, damit der User einen Windows-Dienst starten darf. Wen es interessiert:

CODE
// Dem User die Berechtigung zum Starten von Diensten erteilen.
   szProgram = TempFolder ^ "ntrights.exe";
   szCmdLine = "-u " + svAccount + " +r SeServiceLogonRight";
   if ( LaunchAppAndWait(szProgram ,szCmdLine, WAIT ) < ISERR_SUCCESS) then
    Proto("FEHLER: Konnte " + TempFolder ^ "ntrights.exe nicht ausführen");  
   endif;


Meine Frage ist nun, wie kann ich überprüfen, ob der Username der eingegeben wurde auf dem Rechner exisitiert?? Also giebt es diesen Windowsuser???

Exisitiert er nicht, wird er wie folgt angelegt und der Administratorengruppe hinzugefügt:

CODE
net user username1 password1 /add /expires:never                                  
net localgroup Administratoren username1 /add

(Natürlich den net-Befehl wie oben mit LaunchAppAndWait ausführen.)

Vielen Dank!

Juanchex

Juanchex
  • Full Members
  • 2 posts

Posted 02 September 2009 - 10:13

Hallo Krakos,

hier ist ein VB Script zur Überprüfung ob ein Benutzer bereits existiert oder nicht.

CODE

Function IsUser(s_User)
   Dim o_WinNT
   Dim o_User
   
   ' Begin beeing False
   IsUser = False
   
   Set o_WinNT = GetObject("WinNT://.")
   o_WinNT.Filter = Array("User")
   
   ' Browse all users found
   For Each o_User In o_WinNT
       If LCase(o_User.Name) = LCase(s_User) Then
           IsUser = True
       End If
   Next
   
   ' Clean up objects
   Set o_User = Nothing
   Set o_WinNT = Nothing
End Function


Mein Problem hier ist, dass ich die Zeile mit Array("User") nicht in InstallScript übersetzen kann, weil ich nicht weiss wie das geht. Ansonsten wäre alles bei mir in InstallScript gewesen.

Gruß,
Juan.


krakos

krakos
  • Full Members
  • 8 posts

Posted 02 September 2009 - 10:44

Dank dir erstmal!

Habs grad auch mal versucht nach InstallScript zu konvertieren. Aber sobald ich das o_WinNT Objekt anspreche knallt es.

Werds dann wie du auch mit VB-Script machen.

Wo und wie muss ich denn das VB-Script einfügen. (VisualStudio? dll/exe erzeugen???)