Я пытаюсь выполнить скрипт Powershell удаленно, который запустит файл accdb через MSAccess.Я могу заставить скрипт PowerShell успешно выполняться, но MSAccess не запускается, так как я знаю, что файл test.accdb, который у меня есть, не обновляется.Чего мне не хватает в моем коде, чтобы можно было запустить MSAccess?Или это невозможно?
Мой код выполняется в среде Windows 2012 R2 в IIS и выполняется с помощью учетной записи службы, которая имеет права администратора на компьютере.Если я запускаю код, зарегистрированный под этой учетной записью службы, он работает без проблем.Если я выполняю его удаленно, выполняется только часть кода
Мой код для приложения .NET выглядит следующим образом (работает под учетной записью службы).Я изменил некоторые личные данные, но они не влияют на код.
internal static HttpStatusCode ExecuteRemoteCommand()
{
WSManConnectionInfo connectioninfo = new WSManConnectionInfo();
connectioninfo.ComputerName = "testcomputer";
using (Runspace runspace = RunspaceFactory.CreateRunspace(connectioninfo))
{
runspace.Open();
using (PowerShell ps = PowerShell.Create())
{
ps.Runspace = runspace;
var re = ps.AddScript(@"\\testcomputer\test\StartTest.ps1");
var results = re.Invoke();
}
}
return HttpStatusCode.Created;
}
Мой код Powershell выглядит следующим образом:
try {
$msAccess = "C:\Program Files (x86)\Microsoft Office\Office14\msaccess.exe"
$fileLocation = "C:\test\DBT.accdb"
Start-Process -FilePath $msAccess -ArgumentList $fileLocation -Verb RunAs -WindowStyle Hidden -WorkingDirectory "C:\test"
$today = Get-Date
"SUCCESS: " + $today > "c:\test\TestExecutionSuccess.txt"
}
Catch
{
$_.Exception.Message > "c:\test\TestExecutionError.txt"
}
В обоих случаях, тот, где я запускаю скрипт локально, и тот, где я выполняю его удаленно, создается файл TestExecutionSuccess.txt.
Однако, ТОЛЬКО в локальномВ тестовом прогоне обновлен файл DBT.accdb.