在 Powershell中创建日志文件

我有下面的代码,目前它加载屏幕上的所有信息。我希望它记录到 D:\ Apps\ Logs 上的日志文件。

我有下面的代码,目前它加载屏幕上的所有信息。我希望它记录到 D:\ Apps\ Logs 上的日志文件。

日志文件需要有它加载的计算机的名称-所以 COMPUTERNAME.log

任何想法我怎么能做到这一点?

谢谢

$computer = gc env:computername
$onetcp = ((get-childitem c:\windows\system32\drivers\tcpip.sys).Versioninfo.ProductMajorPart).tostring() $twotcp = ((get-childitem c:\windows\system32\drivers\tcpip.sys).Versioninfo.ProductMinorPart).tostring() $threetcp = ((get-childitem c:\windows\system32\drivers\tcpip.sys).Versioninfo.ProductBuildPart).tostring() $fourtcp = ((get-childitem c:\windows\system32\drivers\tcpip.sys).Versioninfo.ProductPrivatePart).tostring()
$onedfsr = ((get-childitem c:\windows\system32\dfsrs.exe).Versioninfo.ProductMajorPart).tostring() $twodfsr = ((get-childitem c:\windows\system32\dfsrs.exe).Versioninfo.ProductMinorPart).tostring() $threedfsr = ((get-childitem c:\windows\system32\dfsrs.exe).Versioninfo.ProductBuildPart).tostring() $fourdfsr = ((get-childitem c:\windows\system32\dfsrs.exe).Versioninfo.ProductPrivatePart).tostring()
write-host TCPIP.sys Version on $computer is: "$onetcp.$twotcp.$threetcp.$fourtcp" Write-Host write-host DFSRS.exe Version on $computer is: "$onedfsr.$twodfsr.$threedfsr.$fourdfsr"
Write-Host
If (get-wmiobject win32_share | where-object {$_.Name -eq "REMINST"}) {   Write-Host "The REMINST share exists on $computer" } Else {   Write-Host "The REMINST share DOES NOT exist on $computer - Please create as per standards"  }   Write-Host
$hotfix1 = Get-HotFix -Id KB2450944 -ErrorAction SilentlyContinue $hotfix2 = Get-HotFix -Id KB2582284 -ErrorAction SilentlyContinue $hotfix3 = Get-HotFix -Id KB979808 -ErrorAction SilentlyContinue
If ($hotfix1) {     Write-Host "Hotfix KB2450944 is installed"
-BackgroundColor Green -ForegroundColor Black   } else {    Write-Host "Hotfix KB2450944 is NOT installed - Please ensure you install this hotfix" -ForegroundColor "red"   }
If ($hotfix2) {     Write-Host "Hotfix KB2582284 is installed"
-BackgroundColor Green -ForegroundColor Black   } else {    Write-Host "Hotfix KB2582284 is NOT installed - Please ensure you install this hotfix" -ForegroundColor "red"   }
If ($hotfix3) {     Write-Host "Hotfix KB979808 is installed"
-BackgroundColor Green -ForegroundColor Black   } else {    Write-Host "Hotfix KB979808 is NOT installed - Please ensure you install this hotfix" -ForegroundColor "red"    }
160

把这个放在你的文件的顶部:

$Logfile = "D:\Apps\Logs\$(gc env:computername).log"
Function LogWrite
{
   Param ([string]$logstring)
   Add-content $Logfile -value $logstring
}

然后用LogWrite替换您的Write-host调用。

82

一个将这些原则更进一步的函数。

添加的时间戳-不能有一个日志没有时间戳。

Add 是一个级别(默认情况下使用 INFO),这意味着您可以突出显示大问题。

允许可选的控制台输出。如果您没有设置日志目标,它只是将其抽出。

Function Write-Log {
    [CmdletBinding()]
    Param(
    [Parameter(Mandatory=$False)]
    [ValidateSet("INFO","WARN","ERROR","FATAL","DEBUG")]
    [String]
    $Level = "INFO",
    [Parameter(Mandatory=$True)]
    [string]
    $Message,
    [Parameter(Mandatory=$False)]
    [string]
    $logfile
    )
    $Stamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
    $Line = "$Stamp $Level $Message"
    If($logfile) {
        Add-Content $logfile -Value $Line
    }
    Else {
        Write-Output $Line
    }
}
51

我相信这是将屏幕上的所有内容放入文件的最简单方法,它是本机 PS CmdLet,因此您不必更改或安装脚本中的任何内容

Start-Transcript -Path Computer.log
Write-Host "everything will end up in Computer.log"
Stop-Transcript
9
function WriteLog
{
    Param ([string]$LogString)
    $LogFile = "C:\$(gc env:computername).log"
    $DateTime = "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
    $LogMessage = "$Datetime $LogString"
    Add-content $LogFile -value $LogMessage
}
WriteLog "This is my log message"

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(503)
如何查找网页上次更新的时间(how to find last updated date of website)
上一篇
在 Powershell中创建日志文件
下一篇

相关推荐

  • 祝生日快乐的代码:生日蛋糕的 Powershell代码

    关于祝生日快乐的代码的问题,在how to write happy birthday on a cake中经常遇到,我的儿子是计算机科学专业的,他的生日快到了。我想为他创建一个代码主题蛋糕。我已经研究了 PowerShell 代码,并创建了我认为是正确和有趣的东西。但是,我不确定,并被打开这个网站以获得帮助。这就是我所拥有的...JularJ 是我儿子的视频游戏的显示名称。…

    2022-12-29 13:14:57
    0 23 71
  • 服务器监控脚本:服务器监控 powershell脚本

    关于服务器监控脚本的问题,在powershell server monitoring dashboard中经常遇到,我已经编写了用于服务器监控的 PowerShell 脚本。我已经在 Google Cloud Platform 上创建了服务器。我的服务器 / 实例外部 IP 为 34.72.154.186 (http://34.72.154.186/)。这是我的 PowerShell 脚本:…

    2022-11-30 12:38:25
    0 59 45
  • PowerShell中用于截断字符串长度的子字符串

    是否可以在 PowerShell 中截断字符串(使用SubString()?),到给定的最大字符数,甚至如果原始字符串已经更短?…

    2022-11-11 15:20:56
    0 49 62
  • 如何使用powershell遍历远程注册表项

    我有一个 powershell 脚本,它通过注册表项中的名称值对列表并执行一些 maniupulations。所有这些都发生在下面的 foreach-object 循环中…

    2022-12-05 14:34:24
    0 94 39
  • 在 Powershell中创建日志文件

    我有下面的代码,目前它加载屏幕上的所有信息。我希望它记录到 D:\ Apps\ Logs 上的日志文件。…

    2022-12-13 15:09:10
    0 62 68
  • 在 Powershell中创建日志文件

    我有下面的代码,目前它加载屏幕上的所有信息。我希望它记录到 D:\ Apps\ Logs 上的日志文件。…

    2022-11-22 11:23:01
    0 49 61
  • powershell脚本实例:如何使用PowerShell脚本管理Windows服务

    脚本是一种可以用来自动化复杂的任务的强大工具。它的基本语法与其他编程语言类似,但更加简单易懂。下面是一个简单的脚本实例,它可以获取当前系统上所有运行中的进程:…

    2023-01-13 15:29:36
    0 55 76
  • Skype连接不上:使用Powershell上的Skype联机连接器获取用户的 Skype状态

    关于Skype连接不上的问题,在login skype online中经常遇到,我正在开发一个小脚本,输出用户当前的 Skype for Business 状态。…

    2022-12-15 12:01:06
    0 77 23

发表评论

登录 后才能评论

评论列表(33条)