Bir uzak sunucuya bağlanmak için Asp.Net Web uygulamasından PSExec
dosyasını çalıştırmaya çalışıyorum. Bir şekilde, hiçbir kimlik bilgisi olmadan "Access Denied Error -5"
verir ve PSEXEC komutunda kimlik bilgilerini ayarlayarak "2250 Network connection could not be found"
verir. Sunucuda bir yöneticiyim ve Windows authentication and Asp.Net Impersonation
etkin (IIS7.5
) var. Daha ilginç bir şekilde bunu bir console application
ya da sadece command prompt
kullanarak çalıştırmaya çalıştığınızda, sadece iyi çalışıyor. Test olarak sadece bir ping işlemi yapmaya çalışıyorum. İşteAsp.Net Web uygulamasından sysinternals PSExec komut dosyasını kullanarak çalıştırınız.
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
: - -:
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
aynı komut ve kod bir konsol uygulaması ile çalışır
İşte benim kod parçacığı olduğunu. Bu yüzden kesinlikle makineye uzaktan kimlik bilgilerini taşımak mümkün olmayan Asp.net uygulaması ile bir şey olduğuna inanıyorum. Ben olay startInfo.LoadUserProfile
çalıştı ama boşuna.
Yardımlarınız için teşekkür ederiz. Benzer sorulara bakmaya çalıştım ama karşılaştığım sorun için bir çözüm bulamadım.
1 Konsolda çalışıyor ve asp web uygulamasıyla çalışmıyorsa bu bir güvenlik sorunu gibi görünüyor. 2 .net versiyonunun doğru olup olmadığını kontrol ettiniz mi? Uygulama havuzunuzu .net 2.0 ile IIS'de çalıştırmayı deneyin (Bugün bu sorunu yaşadım). – gartenabfall
Dotnet sürüm 4.0 kullanıyorum. Evet, daha fazla kimlik doğrulama belirteci gibi taşınmıyor gibi görünüyor .... – PSL
IIS, komut isteminizle aynı kullanıcı ayrıcalıkları altında çalışıyor mu? – Powerslave