Выполнить удаленный пакетный файл из приложения форм C # - PullRequest
0 голосов
/ 07 октября 2009

Я работаю над VPN-номеронабирателем, который выполнит сценарий входа в систему при успешном подключении, используя следующий метод.

        Process p = new Process();
        try
        {
            p.StartInfo.UseShellExecute = true;
            p.StartInfo.FileName = @"\\serverName\NETLOGON\Script Test.cmd";
            p.Start();
            p.WaitForExit();
            }
        }

        catch (Exception ex)
        {

        }

Пакетный файл выполняется должным образом в соответствии с методами ведения журнала в пакетном файле, но диски не привязаны к пользователю для использования. Другие проверенные командные файлы (локальные и удаленные) имеют тот же результат.

Я предполагаю, что это как-то связано с доменом приложения или UAC. Готовое приложение будет работать в Viata / 7 и тестируется в Windows 7.

Любая помощь здесь будет принята с благодарностью.

С уважением Bert

Ответы [ 2 ]

1 голос
/ 07 октября 2009

Подключенные диски хранятся в профиле пользователя. Который обычно загружается при входе пользователя. Наиболее распространенный способ получить доступ к ресурсам, связанным с профилем, - выдать себя за пользователя.

Здесь есть пример плохого отношения (PInvoke): http://support.microsoft.com/kb/306158#4

Но обычно использование подключенных дисков из скрипта вызывает проблемы. ИМХО:)

Надеюсь, это поможет,

Jan

0 голосов
/ 07 октября 2009

Вы можете проверить, произошло ли какое-либо исключение. Я вижу, что catch (исключение ex) поглощает ваше исключение.

...