支持WIN7+或2008R2+。
检测脚本是64位还是32位是一件非常简单的事情,测试指针大小,看它是的大小是4位还是8位。
if ([IntPtr]::Size -eq 8) { '64-bit' } else { '32-bit' }
这无法获取操作系统的位数,因为32位的脚本也可以运行在64位的系统上。
如果需要获取系统版本,请尝试:
if ([Environment]::Is64BitOperatingSystem) { '64-bit' } else { '32-bit' }
同时,也这个类也可以查看程序位数。
if ([Environment]::Is64BitProcess) { '64-bit' } else { '32-bit' }
2016-10-29日更新:
还有@C推荐的:
(Get-WmiObject Win32_OperatingSystem).osarchitecture
原文地址:Detecting 64-bit Operating System
本文链接: https://www.pstips.net/detecting-64-bit-operating-system.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请问下 兄台 [IntPtr] 是什么意思?添加的类型吗? 是不是插入流? 还是什么其他?
这是在.Net中调用Windows API时,用到的一个句柄指针类型。IntPtr是一个整形,具体的大小和系统的位数有关。
经典的案例就是在C# 中调用Windows 的API,里面就会遇到:
(Get-WmiObject Win32_OperatingSystem).osarchitecture
漂亮,已在原文上更新了。
(Get-WmiObject -Class Win32_Processor).addresswidth返回TypeName:System.UInt16更好用
$ENV:PROCESSOR_ARCHITECTURE
漂亮
你好,请教下怎么把“(Get-WmiObject Win32_OperatingSystem).osarchitecture”的结果赋值给一个变量呢?