PS命令之系统资源信息查看管理示例

2022-09-29 15:22:42 浏览数 (1)

[TOC]

0x00 操作系统信息查看

Get-ComputerInfo 命令 - 获取系统和操作系统属性的合并对象。

描述: 该cmdlet获取系统和操作系统属性的合并对象(OS/Bios/计算机系统信息/处理等信息),此cmdlet在Windows PowerShell 5.1中引入。

语法&参数:

代码语言:javascript复制
Get-ComputerInfo [[-Property] <System.String[]>] [<CommonParameters>]

基础示例:

代码语言:javascript复制
# 示例1.获取所有计算机属性
Get-ComputerInfo

# 示例2.获取所有计算机操作系统属性
$OS = Get-ComputerInfo -Property "os*"
Write-Host $OS.OsName $OS.OsVersion - $OS.OsArchitecture
# Microsoft Windows 10 专业版 10.0.19041 - 64 位
Write-Output $OS.OsHotFixes # 安全更新

补充示例:

0) 基础操作系统信息利用Get-WmiObject -Class Win32_OperatingSystem命令查看

代码语言:javascript复制
SystemDirectory : C:WINDOWSsystem32
Organization    :
BuildNumber     : 19041
RegisteredUser  : WeiyiGeek
SerialNumber    : 00331-10010-00111-AA535
Version         : 10.0.19041

1) PowerShell结合systeminfo.exe提取当前计算机信息可以当做替代方案(值得学习)

代码语言:javascript复制
function Get-SystemInfo
{
  param($ComputerName = $env:COMPUTERNAME)
  $header = 'Hostname','OSName','OSVersion','OSManufacturer','OSConfiguration','OS Build Type','RegisteredOwner','RegisteredOrganization','Product ID','Original Install Date','System Boot Time','System Manufacturer','System Model','System Type','Processor(s)','BIOS Version','Windows Directory','System Directory','Boot Device','System Locale','Input Locale','Time Zone','Total Physical Memory','Available Physical Memory','Virtual Memory: Max Size','Virtual Memory: Available','Virtual Memory: In Use','Page File Location(s)','Domain','Logon Server','Hotfix(s)','Network Card(s)'
  systeminfo.exe /FO CSV /S $ComputerName |Select-Object -Skip 1 | ConvertFrom-CSV -Header $header
}

Hostname                  : WEIYIGEEK
OSName                    : Microsoft Windows 10 专业版
OSVersion                 : 10.0.19041 暂缺 Build 19041
OSManufacturer            : Microsoft Corporation
OSConfiguration           : 独立工作站
OS Build Type             : Multiprocessor Free
RegisteredOwner           : WeiyiGeek
RegisteredOrganization    : 暂缺
Product ID                : 00331-10000-00001-AA535
Original Install Date     : 2020/11/5, 0:09:24
System Boot Time          : 2021/5/19, 8:50:20
System Manufacturer       : Dell Inc.
System Model              : OptiPlex 9020
System Type               : x64-based PC
Processor(s)              : 安装了 1 个处理器。,[01]: Intel64 Family 6 Model 60 Stepping 3 GenuineIntel ~3301 Mhz
BIOS Version              : Dell Inc. A11, 2015/4/1
Windows Directory         : C:WINDOWS
System Directory          : C:WINDOWSsystem32
Boot Device               : DeviceHarddiskVolume1
System Locale             : zh-cn;中文(中国)
Input Locale              : zh-cn;中文(中国)
Time Zone                 : (UTC 08:00) 北京,重庆,香港特别行政区,乌鲁木齐
Total Physical Memory     : 16,326 MB
Available Physical Memory : 9,326 MB
Virtual Memory: Max Size  : 30,582 MB
Virtual Memory: Available : 20,801 MB
Virtual Memory: In Use    : 9,781 MB
Page File Location(s)     : C:pagefile.sys
Domain                    : WORKGROUP
Logon Server              : \WEIYIGEEK
Hotfix(s)                 : 安装了 8 个修补程序。,[01]: KB4601554,[02]: KB4577266,[03]: KB4580325,[04]: KB4586864,[05]: KB4593175,[06]: KB4598481,[07]: KB5003173,[08]: KB5003242
Network Card(s)           : 安装了 5 个 NIC。,[01]: TAP-Windows Adapter V9,    连接名:      以太网 2,    状态:        媒体连接已中断,[02]: TAP-Windows Adapter V9,    连接名:      以太网 3,    状态:        媒体连接已中断,[03]: VMware Virtual Ethernet Adapter for VMnet1,    连接名:
                                 VMware Network Adapter VMnet1,    启用 DHCP:   否,    IP 地址,      [01]: 192.168.151.253,      [02]: 192.168.1.253,      [03]: fe80::6dfc:881b:1f89:55f3,[04]: VMware Virtual Ethernet Adapter for VMnet8,    连接名:      VMware Network Adapter VMnet
                            8,    启用 DHCP:   是,    DHCP 服务器: 192.168.150.254,    IP 地址,      [01]: 192.168.150.1,      [02]: fe80::f469:f9fb:99bc:5c22,[05]: Intel(R) Ethernet Connection I217-LM,    连接名:      以太网,    启用 DHCP:   否,    IP 地址,      [01]: 10.20.172.1
                            03,      [02]: fe80::d97d:fe6c:10bf:4244

2) 该Cmdlet获取的主要信息可以作为以后提取参考

代码语言:javascript复制
# - Windos系统相关信息
WindowsProductName                                      : Windows Server 2019 Standard
WindowsEditionId                                        : ServerStandard
WindowsInstallationType                                 : Server Core
WindowsCurrentVersion                                   : 6.3
WindowsVersion                                          : 1809
WindowsProductId                                        : 00429-00000-00001-AA739

# - Bios 相关信息
BiosManufacturer                                        : VMware, Inc.
BiosFirmwareType                                        : Uefi
BiosName                                                : VMW71.00V.17369862.B64.2012240522
BiosVersion                                             : INTEL  - 6040000
BiosBIOSVersion                                         : {INTEL  - 6040000, VMW71.00V.17369862.B64.2012240522, VMware, Inc. - 10000}
BiosSeralNumber                                         : VMware-56 4d 17 fd ab 99 b0 87-c8 8f 44 08 4b 42 0b b6
CsBootupState                                           : Normal boot
OsBootDevice                                            : DeviceHarddiskVolume2
BiosReleaseDate                                         : 2020/12/24 8:00:00

# - 操作系统相关信息
CsName                                                  : WEIYIGEEK
CsAdminPasswordStatus                                   : Enabled
CsManufacturer                                          : VMware, Inc.
CsModel                                                 : VMware7,1
OsName                                                  : Microsoft Windows 10 专业版
OsType                                                  : WINNT
OsProductType                                           : Server
OsServerLevel                                           : ServerCore
OsArchitecture                                          : 64 位
OsOperatingSystemSKU                                    : 48
OsVersion                                               : 10.0.19041
OsBuildNumber                                           : 17763
OsSerialNumber                                          : 00429-00000-00001-AA739
OsInstallDate                                           : 2021/5/19 11:42:45
OsSystemDevice                                          : DeviceHarddiskVolume4
OsSystemDirectory                                       : C:Windowssystem32
OsCountryCode                                           : 86
OsCodeSet                                               : 936
OsLocaleID                                              : 0804
OsCurrentTimeZone                                       : 480
TimeZone                                                : (UTC 08:00) 北京,重庆,香港特别行政区,乌鲁木齐
OsLanguage                                              : zh-CN
OsLocalDateTime                                         : 2021/5/22 10:44:26
OsLastBootUpTime                                        : 2021/5/19 17:47:49

# - 处理器相关信息
CsProcessors                                            : {Intel(R) Xeon(R) CPU E3-1271 v3 @ 3.60GHz, Intel(R) Xeon(R) CPU E3-1271 v3 @ 3.60GHz, Intel(R) Xeon(R) CPU E3-1271 v3 @ 3.60GHz, Intel(R) Xeon(R) CPU E3-1271 v3 @ 3.60GHz}
OsBuildType                                             : Multiprocessor Free                                                        
CsNumberOfProcessors                                    : 4
CsNumberOfLogicalProcessors                             : 4
OsMaxNumberOfProcesses                                  : 4294967295

# - 内存相关信息
OsTotalVisibleMemorySize                                : 4193312
OsFreePhysicalMemory                                    : 2941040
OsTotalVirtualMemorySize                                : 5635104
OsFreeVirtualMemory                                     : 4460064
OsInUseVirtualMemory                                    : 1175040
OsMaxProcessMemorySize                                  : 137438953344

# - 网卡相关信息
CsNetworkAdapters                                       : {Ethernet0}

# - 系统补丁信息
OsHotFixes                                              : {KB4601554, KB4577266, KB4580325, KB4586864...}

0x01 磁盘资源信息查看

Get-PSDrive 命令 - 获取当前会话中的驱动器

描述: Get-PSDrive cmdlet 不仅显示由提供程序公开的驱动器,而且还显示 Windows 逻辑驱动器,其中包括映射到网络共享的驱动器。

基础语法:

代码语言:javascript复制
# 语法
Get-PSDrive [-LiteralName] <System.String[]> [-PSProvider <System.String[]>] [-Scope <System.String>] [-UseTransaction] [<CommonParameters>]

Get-PSDrive [[-Name] <System.String[]>] [-PSProvider <System.String[]>] [-Scope <System.String>] [-UseTransaction] [<CommonParameters>]

基础实例:

代码语言:javascript复制
# 1.此命令获取当前会话中的驱动器 (Alias:, Cert:, Env:, Function:, HKCU:, HKLM:, and Variable:).。
PS C:> Get-PSDrive
Name           Used (GB)     Free (GB) Provider      Root                                     CurrentLocation
Alias                                  Alias
C                 127.50         21.94 FileSystem    C:                                      UsersWeiyiGeek
Cert                                   Certificate   
D                  28.61        232.39 FileSystem    D:
E                  67.53        192.47 FileSystem    E:
Env                                    Environment
F                 192.02         68.26 FileSystem    F:
Function                               Function
G                                      FileSystem    G:
H                 105.37        826.11 FileSystem    H:
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
I                                      FileSystem    I:
K                 408.66        522.82 FileSystem    K:
Variable                               Variable
WSMan                                  WSMan
Z                 167.71        763.80 FileSystem    \10.20.10.101Work


# 2.获取在电脑上安装一个驱动器信息
PS C:foo> Get-PSDrive D
  # Name           Used (GB)     Free (GB) Provider      Root
  # ----           ---------     --------- --------      ----
  # D                1211.06     123642.32 FileSystem    D:


# 3.获取Windows PowerShell文件系统提供程序支持的所有驱动器
PS C:> Get-PSDrive -PSProvider FileSystem
Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
A                                                    A:
C                 202.06      23718.91 FileSystem    C:
D                1211.06     123642.32 FileSystem    D:
G                 202.06        710.91 FileSystem    \MusicGratefulDead


# 4.检查驱动器是否用作Windows PowerShell驱动器名(便于后续判断是否存在该驱动器)
if (Get-PSDrive X -ErrorAction SilentlyContinue) {
  Write-Host 'The X: drive is already in use.'
} else {
  New-PSDrive -Name X -PSProvider Registry -Root HKLM:SOFTWARE  # 后续讲解
}


# 5.比较文件系统驱动器的类型以及多种方式获取磁盘信息
PS C:> Get-PSDrive -PSProvider FileSystem
PS C:> net use
  # New connections will be remembered.
  # Status       Local     Remote                    Network
  # -------------------------------------------------------------------------------
  # OK           Z:        \10.20.10.101Work      Microsoft Windows Network

PS C:> [System.IO.DriveInfo]::GetDrives() | Format-Table
  # Name DriveType DriveFormat IsReady AvailableFreeSpace TotalFreeSpace    TotalSize RootDirectory VolumeLabel
  # ---- --------- ----------- ------- ------------------ --------------    --------- ------------- -----------
  # C:      Fixed NTFS           True        23552114688    23552114688 160457101312 C:           OS
  # D:      Fixed NTFS           True       249524043776   249524043776 280247660544 D:           软件
  # Z:    Network NTFS           True       820123381760   820123381760 ...201224192 Z:

PS N:> Get-CimInstance -Class Win32_LogicalDisk
  # DeviceID DriveType ProviderName         VolumeName  Size          FreeSpace
  # -------- --------- ------------         ----------  ----          ---------
  # C:       3                              OS          160457101312  23552049152
  # D:       3                              软件        280247660544  249524043776
  # G:       5
  # Z:       4         \10.20.10.101Work             1000201224192 820123381760

PS C:> Get-CimInstance -Class Win32_NetworkConnection
  # LocalName RemoteName           ConnectionState Status
  # --------- ----------           --------------- ------
  # Z:        \10.20.10.101Work Connected       OK

New-PSDrive 命令 - 创建临时和永久映射的网络驱动器。

描述:该New-PSDrivecmdlet会创建与数据存储中的某个位置映射或关联的临时和持久驱动器,例如网络驱动器,本地计算机上的目录或注册表项,以及与Windows关联的持久Windows映射的网络驱动器。远程计算机上的文件系统位置。

语法参数:

代码语言:javascript复制
New-PSDrive [-Name] <System.String> [-PSProvider] <System.String> [-Root] <System.String> [-Confirm] [-Credential <System.Management.Automation.PSCredential>] [-Description <System.String>] [-Persist] [-Scope <System.String>] [-UseTransaction] [-WhatIf] [<CommonParameters>]

基础示例:

代码语言:javascript复制
# 1.创建一个映射到网络共享的临时PowerShell驱动器。
New-PSDrive -Name "WeiyiGeek" -PSProvider "FileSystem" -Root "\10.20.17.103Temp"
  # Name           Used (GB)     Free (GB) Provider      Root                                           
  # ----           ---------     --------- --------      ----       
  # WeiyiGeek                              FileSystem    \10.20.17.103Temp
Get-ChildItem -Path WeiyiGeek:  # 从PowerShell会话中查看内容(下面创建的驱动器都可以采用此种方式查看)
  # 目录: \10.20.172.103Temp
  # Mode                 LastWriteTime         Length Name
  # ----                 -------------         ------ ----
  # d-----         2020/9/22      9:18                5小更新包update2

# 2.创建映射到本地目录的临时驱动器(效果同上只不过是本地的映射)
$parameters = @{
    Name = "myHome"
    PSProvider = "FileSystem"
    Root = "C:UsersweiyigeekDocuments"
    Description = "Maps to my My Documents folder."
}
New-PSDrive @parameters

# 3.创建一个名为MyCompany的驱动器,该驱动器映射到HKLM:SoftwareMyCompany注册表项。
New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:SoftwareMyCompany"
  # Name           Provider      Root
  # ----           --------      ----
  # MyCompany      Registry      HKLM:SoftwareMyCompany

# 4.使用凭据创建一个持久性映射的网络驱动器
# 请记住,如果在脚本中使用代码段请将Scope参数值设置为“ Global”,以确保驱动器在当前范围之外仍然存在。
$cred = Get-Credential -Credential WEIYIGEEKWeiyiGeek
New-PSDrive -Name "x" -Persist -Scope Global -Root "\10.20.172.103Temp" -PSProvider "FileSystem" -Credential $cred
  # Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
  # ----           ---------     --------- --------      ----                                               ---------------
  # x                  28.77        232.23 FileSystem    \10.20.17.103Temp

# 5.创建永久和临时驱动器
# 两者区别: 如果您关闭PowerShell会话,然后打开一个新会话则该临时文件夹PSDrive:将不可用,但永久X:驱动器将可用
New-PSDrive -Name "PSDrive" -PSProvider "FileSystem" -Root "\Server01Public"
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\Server01Public" -Scope Global
Get-PSDrive -Name "PSDrive", "X"
Get-PSDrive "PSDrive", "x" | Get-Member
Net Use && Get-CimInstance Win32_LogicalDisk | Format-Table -Property DeviceID
Get-CimInstance Win32_NetworkConnection
  # Status       Local     Remote                    Network
  # --------------------------------------------------------
  # OK           X:        \contoso-pcdata         Microsoft Windows Network
  # deviceid
  # --------
  # C:
  # D:
  # X:
  # LocalName    RemoteName              ConnectionState          Status
  # ---------    ----------              ---------------          ------
  # X:           \productspublic       Disconnected             Unavailable

# 6.创建注册表驱动器提供程序(注意默认得注册表提供程序是HKCU和HKLM)而注册表包含的根节点远不止两个此时我们可以采用此cmdlet命令进行创建新的驱动器
  # 计算机HKEY_CLASSES_ROOT    = HKCR  (事实上 HKEY_CLASSES_ROOT 根节点不是一个独立的根节点而是指向 HKEY_LOCAL_MACHINESOFTWAREClasses )
  # 计算机HKEY_CURRENT_USER    = HKCU
  # 计算机HKEY_LOCAL_MACHINE   = HKLM
  # 计算机HKEY_USERS           = HKUS 
  # 计算机HKEY_CURRENT_CONFIG  = HKCC  (事实上 HKEY_CURRENT_CONFIG 根节点不是一个独立的根节点而是指向 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetHardware ProfilesCurrent )
New-PSDrive -name HKCR -PSProvider registry -root HKLM:SOFTWAREClasses
New-PSDrive -name HKUS -PSProvider registry -root HKEY_USERS
New-PSDrive -name HKCC -PSProvider registry -root 'HKLM:SYSTEMCurrentControlSetHardware ProfilesCurrent'
PS C:> Set-Location 'HKUS:'   # 采用注册表驱动器别名进入
PS HKUS:> Get-Item *
  # Hive: HKEY_USERS
  # Name                           Property
  # ----                           --------
  # .DEFAULT
  # S-1-5-19
  # S-1-5-20
  # S-1-5-21-923396991-3399624210- WordWrap : 1
  # 3190802951-1001
  # S-1-5-21-923396991-3399624210-
  # 3190802951-1001_Classes
S-1-5-18

# Tips.你可以自由地创建任何额外的驱动器,尤其在你有频繁操作某个特定的注册表区域时。
New-PSDrive -name CV -PSProvider registry -root "HKLM:SoftwareMicrosoftWindows NTCurrentVersion"
  # Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
  # CV                                     Registry      HKEY_LOCAL_MACHINESoftwareMicr...
Get-ItemProperty -Path "CV:"

Remove-PSDrive 命令 - 删除临时PowerShell驱动器并断开映射的网络驱动器。

描述: 从Windows PowerShell 3.0开始,当外部驱动器连接到计算机时,PowerShell会自动将PSDrive添加到表示新驱动器的文件系统中。您不需要重新启动PowerShell。类似地当外部驱动器与计算机断开连接时,它会自动删除代表已删除驱动器的PSDrive。,包括但不限于使用New PSDrive的Persist参数创建的驱动器。 Tips :该cmdlet无法删除Windows物理或逻辑驱动器。

语法参数:

代码语言:javascript复制
Remove-PSDrive
  [-Name] <String[]> | [-LiteralName] <String[]>
  [-PSProvider <String[]>]
  [-Scope <String>]
  [-Force]
  [-WhatIf]
  [-Confirm]
  [<CommonParameters>]

简单示例:

代码语言:javascript复制
# 1.此命令将删除名为“weiyigeek”的临时文件系统驱动器(操作之前需要确认)。
Remove-PSDrive -Name weiyigeek -Confirm
  # 是否确实要执行此操作?
  # 正在目标“名称: X 提供程序: Microsoft.PowerShell.CoreFileSystem 根路径: X:”上执行操作“删除驱动器”。
  # [Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“Y”):

# 2.此命令用于Remove-PSDrive断开X:和S:映射的网络驱动器。
Get-PSDrive X, S | Remove-PSDrive

0 人点赞