当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

作者:精品下载站 日期:2024-12-14 13:10:51 浏览:14 分类:玩电脑

了解有关 PowerShell 的所有内容 Start-Transcript


顾名思义,Start-Transcript cmdlet 创建 PowerShell 会话的文本记录。当您想要查看或共享先前会话的内容时,此 cmdlet 会派上用场。您还可以使用此 cmdlet 将脚本发送给可以提供帮助的人员来解决问题。

在本教程中,您将学习如何使用 PowerShell Start-Transcript。完成本教程后,您将了解启动脚本、如何停止脚本以及如何查看脚本的不同方法。

准备好将您的剧本写作技巧提升到新的水平了吗?继续阅读以开始!

先决条件

本教程将是一个实践演示。如果您想继续操作,请确保您的计算机在任何受支持的平台上安装有 Windows PowerShell 5.1 或 PowerShell 7+。本教程将使用带有 PowerShell 7.2.5 的 Windows 10 电脑。

启动和停止转录

您可以运行不带任何参数的 Start-Transcript cmdlet 来启动转录。此 cmdlet 启动当前会话的记录,并将其以带时间戳的名称保存在用户的文档目录中。

此 cmdlet 会自动为脚本文件生成一个包含随机字符的随机名称。此行为可以避免覆盖现有文件,并确保如果您启动多个转录本,每个转录本都将具有唯一的名称。

1. 首先,以管理员身份打开PowerShell。

Start-Transcript 和 Stop-Transcript cmdlet 必须在提升的 PowerShell 提示符下运行,以便脚本包含会话期间执行的所有命令。

2. 要启动转录,请运行以下命令。

Start-Transcript

您将看到类似于以下内容的输出。转录文件的结构由以下模式组成。

<%userprofile%\Documents>\PowerShell_transcript.<hostname>.<random string>.<timestamp>.txt

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

3. 运行命令 $PSVersionTable 以便您的 PowerShell 记录包含一些内容。

$PSVersionTable

4. 运行脚本或要记录的任何内容后,通过运行以下命令来停止转录。此 cmdlet 停止当前转录并保存文件。

Stop-Transcript

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

5. 通过在文本编辑器中打开 PowerShell 记录或运行 Get-Content cmdlet 来查看 PowerShell 记录,如下所示。

Get-Content -Path '<%userprofile%\Documents>\PowerShell_transcript.<hostname>.<random string>.<timestamp>.txt'

您将看到类似于下面的输出。如您所见,Start-Transcript cmdlet 保存从控制台到脚本文件的所有内容,包括您运行的命令、输出,甚至错误。

当您想要与其他人(例如供应商支持)共享会话记录以进行故障排除时,此行为非常有用。

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

Start-Transcript 和 Stop-Transcript cmdlet 必须在同一会话中运行才能完成脚本。如果您在一个 PowerShell 会话中启动记录,请尝试在另一个 PowerShell 会话中查看它;您运行的命令不会出现在脚本中。

指定转录本路径

现在您已了解如何启动和停止 PowerShell 转录本,您可以查看可与此 cmdlet 一起使用的一些参数。

如果您不想将抄本保存在用户的文档目录中怎么办?您想将其保存在默认位置以外的位置吗?

幸运的是,Start-Transcript cmdlet 有一个 Path 参数,允许您指定脚本的自定义路径。

你为什么想做这个?有几个原因。

  • 您可能希望将脚本保存在共享位置,以便其他人可以查看。
  • 您可能希望将其保存在由其他进程(例如 Azure Monitor 日志和分析)监视的位置。

无论出于何种原因,Start-Transcript cmdlet 都能满足您的需求。

输出到自定义目录和文件名

运行以下命令来指定 PowerShell 脚本的自定义路径。如您所见,您将脚本保存在 C:\Public 文件夹中。您可以将此路径更改为系统上的任何有效路径。

Start-Transcript -Path C:\Public\logfiles\PS-logs.txt
Stop-Transcript

如果该目录不存在,Start-Transcript 将在您的特定路径中创建该目录。

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

请注意,您必须指定完整路径,包括文件名和扩展名。如果不指定文件名,Start-Transcript 将无法创建转录文件,并且会出现错误,如下所示。

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

现在,确认转录文件存在于您指定的位置。

Get-ChildItem C:\Public\logfiles

您应该在结果中看到转录文件,如下所示。

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

输出到具有默认文件名的自定义目录

输出 Start-Transcript 的另一种方法是指定 -OutputDirectory 参数,后跟自定义目录路径。该参数允许您设置要保存脚本文件的路径,而无需指定文件名。

按原样,此参数会在您指定的路径中为转录本生成一个随机文件名。如果您正在运行多个 PowerShell 脚本并且不想指定每个文件名,则可能需要使用此参数。

  1. 要使用此参数,请运行以下命令。
Start-Transcript -OutputDirectory C:\Public\logfiles\
Stop-Transcript

如下所示,PowerShell 会为脚本生成随机文件名并将其保存在您指定的路径中。

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

删除起始标头

默认情况下,Start-Transcript cmdlet 在输出文件中包含标头信息。此信息很少有帮助,这就是为什么您可以选择排除标头。

例如,如果您要与某人共享脚本以进行故障排除,他们需要知道的是运行的 PowerShell 命令和输出。

当不需要标头中的附加信息时,可以使用 Start-Transcript-UseMinimalHeader 参数将其排除。

运行以下命令以在 PowerShell 记录中包含最小标头。

Start-Transcript -OutputDirectory C:\Public\logfiles\ -UseMinimalHeader
$PSVersionTable
Stop-Transcript

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

现在,查看脚本文件,您会发现标题要短得多。正如您在下面的屏幕截图中看到的,标头仅包含 PowerShell 记录的开始时间。

Get-Content C:\Public\logfiles\PowerShell_transcript.atadc01.LFoo9G0u.20220719103620.txt

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

防止覆盖转录文件

如果您正在运行多个 PowerShell 转录本,您可能希望防止一个转录本覆盖另一个转录本。

例如,运行以下命令创建名为C:\Public\logfiles\PS-log.txt 的脚本文件。

Start-Transcript -Path C:\Public\logfiles\PS-log.txt -UseMinimalHeader
Stop-Transcript

如果您运行相同的命令,PowerShell 将覆盖 PS-log.txt 文件而不发出警告。这种行为将是一场灾难,您会浪费时间来运行原始记录。

要防止覆盖现有转录本,请指定 Start-Transcript-NoClobber 参数。如果脚本文件已存在,此参数将导致 PowerShell 生成错误。

Start-Transcript -Path C:\Public\logfiles\PS-log.txt -NoClobber

如果路径中存在 PS-log.txt 文件,PowerShell 将生成以下错误。

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

附加到现有转录文件

在某些情况下,您宁愿将新的转录本附加到现有的转录本文件中,而不是创建新的转录本文件。

例如,假设您有一个脚本文件,其中包含 Active Directory 域中所有用户的输出。稍后,您可以在将新用户添加到 Active Directory 时运行带有 -Append 开关的 Start-Transcript,将新的记录附加到同一文件中。

运行以下命令将新记录附加到C:\Public\logfiles\PS-log.txt 文件中。

Start-Transcript -Path C:\Public\logfiles\PS-log.txt -Append -UseMinimalHeader
Write-Host 'Appending Texts!'
Stop-Transcript

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

通过运行 Get-Content cmdlet 验证该命令是否附加了记录。

Get-Content -Path C:\Public\logfiles\PS-log.txt

[玩转系统] 了解有关 PowerShell 的所有内容 Start-Transcript

结论

在本文中,您学习了如何使用 PowerShell Start-Transcript cmdlet 创建 PowerShell 会话的记录。

您还学习了如何使用一些可用参数自定义这些转录本。脚本对于记录您在 PowerShell 中所做的事情以及与他人共享以进行故障排除非常有用。

现在您已了解如何使用 PowerShell Start-Transcript,开始创建 PowerShell 会话的记录。不要忘记调用 -NoClobber 参数,这样您就不会意外覆盖现有的转录文件。最后,始终确保停止你的成绩单,不要让它们无限期地运行!

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯