我发现这个 PS 脚本可以检查 PC 是台式机还是笔记本电脑
function Get-HardwareType {
$hardwaretype = Get-WmiObject -Class Win32_ComputerSystem -Property PCSystemType
If ($hardwaretype -ne 2)
{
return $true
}
Else
{
return $false
}}
If (Get-HardwareType)
{
"$Env:ComputerName is a Desktop"
}
Else
{
"$Env:ComputerName is a Laptop"
}
如果结果是“笔记本电脑”,我需要运行这个其他命令
Add-AppxPackage -Path ".\28671Petrroll.PowerPlanSwitcher_0.4.4.0_x86__ge82akyxbc7z4.Appx"
否则跳过它。我怎样才能将它们结合起来?
编辑:
似乎我需要互联网连接才能完全安装该应用程序;没有互联网,只要我通过互联网连接运行该应用程序,该应用程序就不会启动。有人知道没有互联网连接我需要做什么吗?或者这是不可能的?
这是您的代码的清理后更易读的版本:
编辑:建议从 切换
Get-WmiObject
到Get-CimInstance
。在这种情况下,该命令将如下所示:原因如下:
来源:https ://devblogs.microsoft.com/scripting/should-i-use-cim-or-wmi-with-windows-powershell/
您的程序并不能证明它是台式机,它只是确定系统是否是笔记本电脑。您正在假设系统必须是错误的一个或另一个。这是物联网时代,除了笔记本电脑外,还有嵌入式设备、服务器、工作站和台式机。永远不要假设。
以下是可能的值:
AppliancePC 6
System 是一款设备 PC
桌面 1
系统是桌面
EnterpriseServer 4
系统是企业服务器
最大值 8
最大枚举值
Mobile 2
System 是一款移动设备
PerformanceServer 7
System 是一个性能服务器
SOHOServer 5
System 是小型办公室和家庭办公室 (SOHO) 服务器
未指定 0
系统类型未指定
Workstation 3
System 是一个工作站
尝试这个:
好吧,现在这可能是真的。事情发生了变化,然后有一天它不再是真的。根据我 20 多年编写配置不同类型 PC 硬件的代码的经验,尽可能彻底是值得的。我只是想在路上拯救你的悲伤。
查看此 URL 中所有不同的机箱类型。所有这些都可能由笔记本电脑报告:便携式 (8)、笔记本电脑 (9)、笔记本电脑 (10)、子笔记本电脑 (14)
https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-systemenclosure