Thread CreateProcessAsUser (10 answers)
Opened by tricky at 2007-11-26 19:02

tricky
 2007-11-26 19:02
#103077 #103077
User since
2006-03-14
10 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich möchte einen Process unter einem anderen User (admin) starten und habe dafür das Modul Win32::AdminMisc mit der Funktion CreateProcessAsUser verwendet.
Leider startet bei mir kein zweites command Fenster.

Die Fehler Meldung Incorrect Funktion hilft mir nicht viel weiter.

Meine Perlversion ist 5.8.8
Mein OS Windows XP Prof.
AdminMisc 0.2003.07.14

Danke für Eure Hilfe im voraus!

Gruß
tricky

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
use Win32::AdminMisc;

my $Domain = "";
my $User = "test";
my $Password = "test";
my $Process = "cmd";


print "\nStarting \"$Process\" as $User in the \U$Domain\E domain...\n\n";
$Result = Win32::AdminMisc::LogonAsUser( $Domain,
$User,
$Password,
LOGON32_LOGON_INTERACTIVE );
if( $Result )
{
$LogonUser = Win32::AdminMisc::GetLogonName();
print "Successfully logged on as $LogonUser.\n";
$Result = Win32::AdminMisc::CreateProcessAsUser(
$Process,
"Flags" => CREATE_NEW_CONSOLE,
"XSize" => 640,
"YSize" => 80,
"X" => 200,
"Y" => 80,
"XBuffer"=> 80,
"YBuffer"=> 180,
"Show" => SW_MAXIMIZE,
"Title" => "\u$User\'s $Process program",
"Fill" => BACKGROUND_BLUE |
FOREGROUND_RED |
FOREGROUND_BLUE |
FOREGROUND_GREEN |
FOREGROUND_INTENSITY );
if( $Result )
{
print "Successful! The new processes PID is $Result.\n";
}
else
{
print "Failed.\n\tError: ", Error(), "\n";
}
}
else
{
print "Failed to logon.\n\tError: ", Error(), "\n";
}

sub Error
{
return( Win32::FormatMessage( Win32::AdminMisc::GetError() ) );
}

View full thread CreateProcessAsUser