Roo*_*oop 0 powershell powershell-2.0 powershell-3.0
我有一个小脚本可以过滤掉过去 7 天内远程 PC 的应用程序和系统的错误日志。
Write-Host "Creating Error Log of Remote PC ......."
[System.Threading.Thread]::CurrentThread.CurrentCulture = New-Object "System.Globalization.CultureInfo" "en-US"
$date = get-date
$range = $date.adddays(-7)
$pcname = Read-Host -Prompt "Please Enter PC name"
Get-WinEvent -ComputerName $pcname -FilterHashtable @{LogName="system","application"; Level=1,2; starttime=$range} |
Select-Object @{label="PC"; expression={"$pcname"}},LogName,levelDisplayName,ProviderName,ID,TimeCreated,message |
Sort-Object logname |
Format-Table -AutoSize |
Out-File C:\Eventlog.txt -width 214748
C:\Eventlog.txt
Run Code Online (Sandbox Code Playgroud)
当它运行时,我会得到一个输入 PC 名称的提示,问题是当脚本完成后,powershell 提示将返回到
PS c:\windows\system32\windowspowershell\v1.0>
Run Code Online (Sandbox Code Playgroud)
如果我想在另一台 PC 上检查日志,我必须关闭当前的 PS 窗口并再次运行我的脚本。
我怎样才能做一个循环,让它在第一次运行完成后再次显示我的 [Enter PC name] 提示?
您可以将现有代码包含在while循环中:
while($true){
Write-Host "Creating Error Log of Remote PC ......."
...
# rest of the code
...
C:\Eventlog.txt
}
Run Code Online (Sandbox Code Playgroud)
这将无限重复您的代码或直到您按下ctrl+c。
| 归档时间: |
|
| 查看次数: |
22314 次 |
| 最近记录: |