Powershell Scheduled Tasks conflicts?

两盒软妹~` 提交于 2020-01-15 05:43:45

问题


I have scheduled two powershell scripts as tasks to run at 00:00.

This morning I checked the event log and found that one of the scripts failed with the following exception:

Failure. The error was: 'Failed to create log entry in: ‘C:\Users\SPSETU~1\AppData\Local\Temp\PowerShellLog.txt’. The error was: ‘The process cannot access the file 'C:\Users\SPsetupAdmin\AppData\Local\Temp\PowerShellLog.txt' because it is being used by another process.’.'.

  • Can be the problem related to logs? Both the scripts are using the write-log function (see poshcode.org) and log in the windows event log with the same id.
  • Do you know any known conflict among powershell scripts as scheduled tasks?
  • Do I have to execute tasks one a time?

回答1:


Well, since you simultaneously try to write to the same file from two different processes you can expect the above error.

Powershell has the same restrictions as any application or program; in this case file write-locks. I don't think there are any "special" restrictions on Powershell scripts as scheduled tasks.

I would either see to that the commands you want to execute uses unique log files (if running them simultaneously is your top priority), or put the commands in the same script and execute this as a scheduled task (if getting everything in one log is your top priority).




回答2:


The poshcode.org code logs to the file PowerShellLog.txt as well as the event-log so both of your scripts are trying to write to the same file. If you only want to write to the event-log you could try removing:

if ($Clobber) {
$msg | Out-File -FilePath $Path -Force
} else {
$msg | Out-File -FilePath $Path -Append
}

If you want to keep the file logging then I suggest the introduction of a file name as an argument.



来源:https://stackoverflow.com/questions/5548283/powershell-scheduled-tasks-conflicts

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!