环境: 服务器:启用了远程PowerShell的Windows Server 2012 R2。 工作站:Windows 8.1
所以我创建了一个名为MyModule.psm1的PowerShell模块,其功能如下:
Function CreateEvent() {
Write-EventLog –LogName ToolLog –Source “Schedule” –EntryType Information –EventID 13 –Message “There were users written to the database.”
}
我创建了一个PSSessionConfigurationFile,然后使用配置名称EventLogging注册它,以便我可以通过以下方式远程执行PowerShell:
$Creds = Get-Credential
$SessionOpts = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
$Session = New-PSSession -ComputerName Server.Domain.Com -ConfigurationName EventLogging -Credential $Creds -UseSSL -SessionOption $SessionOpts
Import-PSSession $Session
现在,当我在Get-Credential中输入本地管理员凭据时,我可以运行CreateEvent函数,一切正常。但是,如果我输入标准本地用户凭据,则会收到以下错误:日志的注册表项" ToolLog" for source" Schedule"无法打开。
我将函数中的Write-EventLog替换为:
$EventLog = new-object System.Diagnostics.EventLog("ToolLog");
$EventLog.MachineName = ".";
$EventLog.Source = "Schedule";
$EventLog.WriteEntry("There were users written to the database.", "Information", 15);
我收到一个错误:异常调用" WriteEntry"用" 3"参数:"无法打开源日志' Schedule'。您可能没有写入权限。"
如果我在本地登录服务器并导入模块并尝试运行该功能,我会得到完全相同的错误。我也无法自己运行Write-EventLog的cmdlet。
根据我在互联网上找到的所有信息,我已经为我的本地非管理员用户提供了对事件日志的写入权限。通过RegEdit和NTFS实际的事件日志文件。
有什么想法吗?
谢谢, 布赖恩
答案 0 :(得分:0)
据我了解,只有管理员才能创建新的事件日志。我不确定是否有办法解决这个问题。我建议您提前在管理员服务器上添加新的事件日志,以便在非管理员尝试写入事件日志之前存在事件日志。