编写PowerShell基准测试命令脚本

2024-10-01 09:29:11 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我想说的是,我不太喜欢编码。
我唯一学的语言是一点python,只是一些基础知识

我想让我的工作更轻松,并自动化一些我现在必须手动完成的任务

问题:

有时我必须为客户的某些工作站PC创建基准。
我意识到这一点:

powershell -> winsat disk -v

powershell -> winsat cpuformal -v

powershell -> winsat memformal -v

powershell -> winsat graphicsformal -v

powershell -> winsat dwmformal -v

因此,我使用管理员权限启动powershell并键入第一个命令,等待结果并将其复制并粘贴到.txt文件中。 然后是下一个,下一个等等

我的问题:

我如何:

从脚本打开具有管理员权限的PowerShell
键入命令并执行它(如“打印winsat磁盘…”)
等待结果显示,然后将其复制粘贴到.txt

谢谢你的帮助


Tags: 命令txt语言权限编码客户键入管理员
2条回答

WMI系统有一个存储该数据的类。[grin]您可以调用它,直接使用生成的对象,或者构建一个只包含您想要的内容的对象

它的作用

  • 使用CIM stuff访问指定系统的WinSAT信息
  • 计算评级的平均值
  • 构建一个PSCustomObject来保存该信息
  • 显示信息

代码

$CIM_WinSAT = Get-CimInstance -ClassName Win32_WinSAT -ComputerName $env:COMPUTERNAME

$Average_WinSAT = ($CIM_WinSAT.PSObject.Properties.Where({$_ -match 'score'}).Value |
    Measure-Object -Average).Average

$WinSAT_Info = [PSCustomObject]@{
    ComputerName = $CIM_WinSAT.PSComputerName
    Perf_WinExp_Average = '{0:N2}' -f $Average_WinSAT
    Perf_WinExp_All = $CIM_WinSAT.WinSPRLevel
    Perf_WinExp_CPU = $CIM_WinSAT.CPUScore
    Perf_WinExp_RAM = $CIM_WinSAT.MemoryScore
    Perf_WinExp_Disk = $CIM_WinSAT.DiskScore
    Perf_WinExp_Vid = $CIM_WinSAT.GraphicsScore
    Perf_WinExp_Vid_D3D = $CIM_WinSAT.D3DScore
    }

$WinSAT_Info

输出

ComputerName        : [MySysName]
Perf_WinExp_Average : 7.02
Perf_WinExp_All     : 6.5
Perf_WinExp_CPU     : 7.3
Perf_WinExp_RAM     : 7.3
Perf_WinExp_Disk    : 7.5
Perf_WinExp_Vid     : 6.5
Perf_WinExp_Vid_D3D : 6.5

尝试:

import os

os.system("""powershell -command "winsat disk -v" >> result.txt """)

os.system("""powershell -command "winsat cpuformal -v" >> result.txt """)

您可以尝试使用administrator运行此脚本。参考here

相关问题 更多 >