我有下面的代码,目前它加载屏幕上的所有信息。我希望它记录到一个日志文件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" }
8条答案
按热度按时间nhaq1z211#
把这句话放在你档案的最上面:
然后将
Write-host
调用替换为LogWrite
。m0rkklqb2#
一个将这些原则进一步发展的函数。
1.添加的时间戳-不能有没有时间戳的日志。
1.允许可选的控制台输出。如果你不设置日志目的地,它只是简单地输出它。
nhhxz33t3#
我相信这是把屏幕上的所有内容放到一个文件中的最简单的方法。它是一个原生的PS Cmdlet,所以你不必在脚本中修改或安装任何东西
您也可以添加
-Append
来附加内容[感谢@scipilot的提示!]b1uwtaje4#
wz3gfoph5#
使用此
Log-Entry
framework:D:\Apps\Logs\<computername>.log
):kb5ga3dv6#
日志旋转要点:https://gist.github.com/barsv/85c93b599a763206f47aec150fb41ca0
用法:
cbjzeqam7#
您可能只想使用新的TUN。日志PowerShell模块,这也可以发送日志邮件。只需使用Start-Log和/或Start-MailLog cmdlet启动日志,然后使用Write-HostLog、Write-WarningLog、Write-VerboseLog、Write-ErrorLog等写入控制台和日志文件/邮件。然后在最后调用Send-Log和/或Stop-Log,瞧,您已获得日志记录。只需从PowerShell库通过
或者点击链接:https://www.powershellgallery.com/packages/TUN.Logging
该模块的文档可在此处找到:https://github.com/echalone/TUN/blob/master/PowerShell/Modules/TUN.Logging/TUN.Logging.md
rkttyhzu8#
我一直在玩这个代码一段时间了,现在我有一些东西对我来说很好。日志文件编号与前导'0',但保留其文件扩展名。我知道每个人都喜欢使函数的一切,但我开始删除函数,执行1简单的任务。为什么使用许多字时,很少做的伎俩?将可能删除其他函数,也许创建函数了其他块。我将日志记录器脚本保存在一个中央共享中,如果它发生了更改,我会制作一个本地副本,或者如果需要,从中央位置加载它。
首先导入日志记录器:
定义日志文件:
我记录的内容取决于我创建的调试级别:
我可能会认为自己有点“黑客”,当谈到编码,所以这可能不是最漂亮的,但这里是我的
logger.ps1
版本: