Сценарий powershell для установки свойства PriorityClass доступа MS - PullRequest
0 голосов
/ 01 октября 2018

У меня есть следующий сценарий PS, который выполняет 25 отдельных БД Access в автоматизации.Это выполняется один раз в час.У меня общая проблема «зависания» баз данных на длительные периоды времени.Если я смотрю вживую и у меня открыт Диспетчер задач, я могу повысить приоритет MSAccess, и база данных запустится быстро.Я хотел бы добавить строку кода, которая будет повышать приоритет MS Access при каждом вызове.(Переменная $ Owner укорочена до 3 для краткости)

# Run Merge Database on all Owner groups
$Owner = "Beach", "Bennett", "Burger"
foreach ($element in $Owner) 
{ # BEGIN "foreach" LOOP
# Create variable with directory of Target file
$OwnerPath = "E:\ServerFolders\Ops\$element\$element-Merge.accdb"

# Remove # below to see Directory variables
Write-Output $OwnerPath

# start Access
$access = New-Object -comobject Access.Application

#make it visible (just to check what is happening)
$access.Visible = $true

#access the Application object and run a macro
$access.OpenCurrentDatabase($OwnerPath)


} # END "foreach"

1 Ответ

0 голосов
/ 01 октября 2018

Это уродливо, но вы можете сделать что-то вроде следующего

$PIDS_Before = Get-Process | ?{ $_.Name -like "iexplore*"} | select id, Name
$IE = New-Object -com internetexplorer.application
sleep -Seconds 5
$Pid_After = Get-Process | ?{$_.Name -like "iexplore*"} | select id, Name
Compare-Object $PIDS_Before $Pid_After | select -ExpandProperty InputObject | %{
    $process = Get-Process -Id $_.Id
    $process.PriorityClass = "High"
}

Реальная область, которую вам нужно достичь, это PriorityClass в объекте Process. Проблема в получении PID.из COM-объекта.Если вы можете получить это, то вы можете получить процесс с помощью get-process -id $ PIDHERE

причина сна (который действительно очень ненавистен) заключается в том, что вам нужно ждать загрузки объекта.Иногда 5 секунд недостаточно, и вам может потребоваться больше.

Допустимые значения для класса приоритета: Idle, BelowNormal, Normal, AboveNormal, High, RealTime

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...