Sto cercando di eseguire PSExec
dall'applicazione Web Asp.Net per connettersi a un server remoto. In qualche modo dà "Access Denied Error -5"
senza le credenziali impostate e impostando le credenziali nel comando PSEXEC dà "2250 Network connection could not be found"
. Sono un amministratore sul server e ho Windows authentication and Asp.Net Impersonation
abilitato (IIS7.5
). Più interessante quando provo a eseguire questo da un console application
o anche solo usando il command prompt
funziona perfettamente. Sto provando a fare solo un'operazione di ping come test.Esegui script utilizzando sysinternals PSExec dall'applicazione Web Asp.Net
Ecco il mio frammento di codice: -
var startInfo = new ProcessStartInfo{
CreateNoWindow = true,
UseShellExecute = false,
FileName = FilePath,
Arguments = CommandArgs
}
Process vsCommandProcess = Process.Start(startInfo);
vsCommandProcess.WaitForExit();
var exitCode = vsCommandProcess.ExitCode;
if (vsCommandProcess.ExitCode != 0)
{
...rest of the code
Qui: -
FilePath --> C:\pstools\psexec.exe
Arguments --> \\servername -accepteula -u domain\userName -p password ipconfig (1)
\\servername -accepteula ipconfig (2)
(1) Gives Error 2250 (2) gives Error 5
Lo stesso comando e il codice funziona con un'applicazione console. COSÌ credo che sia sicuramente qualcosa a che fare con l'applicazione Asp.net che non è in grado di trasferire le credenziali al telecomando della macchina. Ho provato l'evento startInfo.LoadUserProfile
ma senza risultati.
Apprezzo il tuo aiuto. Ho cercato di cercare domande simili ma non ho trovato una soluzione per il problema che sto affrontando.
1 Se funziona con la console e non con l'applicazione Web asp, questo sembra un problema di sicurezza. 2 Hai anche verificato se la versione .net è quella giusta? Prova a eseguire il pool di app su IIS con .net 2.0 (ho avuto questo problema oggi). – gartenabfall
Sto usando dotnet versione 4.0. Sì, sembra che più di un token di autenticazione non venga portato avanti ... – PSL
IIS sta eseguendo gli stessi privilegi dell'utente del prompt dei comandi? – Powerslave