首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Powershell中使用Get-EventLog远程读取事件日志

在Powershell中使用Get-EventLog远程读取事件日志
EN

Stack Overflow用户
提问于 2013-05-28 11:16:21
回答 2查看 46.5K关注 0票数 12

我有一个powershell脚本,它运行在服务器(测试服务器)上,并读取他的客户端(DC1)的日志文件。

  • 双方都可以互相呼应。
  • 在双方,防火墙是禁用的。
  • 远程桌面和远程协助在DC1上启用。 Get系统-ComputerName测试-服务器-Source - -Source -Winlogon# WORKS -EventLog System -ComputerName DC1 -Source Microsoft-Windows-Winlogon #不工作

我在测试服务器上运行这个脚本。正如您所看到的,当我在测试服务器上读取本地日志文件时,它可以正常工作,但是如果我试图远程读取DC1的日志文件,就会得到错误“:没有找到网络路径”。

错误的截图:

如何避免此错误,并使用从测试服务器读取DC1的日志文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-29 07:28:07

@Lars Truijens的建议解决了我的问题。但其他建议也很重要。

因此,如果您尝试远程获取日志文件时出现了这样的错误,请看下面的清单:

  • 禁用或设置双方的防火墙设置。
  • 在客户端计算机上启用远程桌面和远程协助。
  • 你能打开客户端的机器吗?
  • 运行dir \\dc1\c$以确保允许您访问硬盘。(@Shay Levy的建议)
  • 运行Get-Service -ComputerName YOURCOMPUTERNAME以确保您可以访问这些服务。(@Shay Levy的建议)
  • 启动远程注册表服务.(@LA尔斯Truijens的建议,这使它对我有效)

下面是这个解决方案的截图:

票数 14
EN

Stack Overflow用户

发布于 2015-04-28 12:48:16

启动RemoteRegistry服务对我的情况没有帮助。

显然,通过一些cmdlet(如Get-Service )中的ComputerName参数访问的远程处理与使用调用命令( Invoke-Command )等cmdlet访问的较新的远程处理形式有区别。

由于传统的远程访问是由单个cmdlet实现的,因此它是不一致的(使用不同的技术和要求不同的需求),并且只能在选定的cmdlet中使用。用于远程访问的技术可以从cmdlet到cmdlet不等,而且您还不太清楚。每个cmdlet都使用它的作者选择的任何远程处理技术。大多数cmdlet使用远程过程调用(RPC),但也可能需要目标系统上的其他服务和设置。 从WindowsWindows2.0开始,有一种更通用的访问远程系统的方法: PowerShell PowerShell远程处理。使用这种类型的远程处理,Windows处理所有命令的远程访问。它使用相对新的和高度可配置的WinRM服务将命令传输到远程系统,在运行在远程系统上的单独会话中执行代码,并将结果返回给调用系统。 http://powershell.com/cs/media/p/7257.aspx

当我从这个命令中交换

代码语言:javascript
复制
get-eventlog -LogName System -computername <ServerName>

到这个

代码语言:javascript
复制
invoke-command {get-eventlog -LogName System} -ComputerName <ServerName>

我不再得到以下错误

获取-事件日志:未找到网络路径。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16790666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档