powershell 5 信息收集命令

PowerShell 命令来查看当前用户及其权限:

powershellCopy Code
# 获取当前登录的用户
$env:USERNAME

# 获取计算机名称
$env:COMPUTERNAME

# 检查当前用户是否为管理员
([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)

# 获取当前用户所属的组列表
$groups = [System.Security.Principal.WindowsIdentity]::GetCurrent().Groups | foreach { $_.Translate([System.Security.Principal.NTAccount]).Value }
$groups

这些命令将依次输出当前登录的用户名、计算机名称、当前用户是否为管理员,以及当前用户所属的组列表。


PowerShell 中,你可以使用以下命令来查看当前主机名:

powershellCopy Code
$env:COMPUTERNAME

运行这个命令后,将显示当前主机的名称。


PowerShell 中,你可以使用以下命令来获取本机的配置信息:

powershellCopy Code
Get-ComputerInfo

运行这个命令后,将显示包含有关本机配置信息的详细输出,例如操作系统版本、处理器信息、内存信息、网络适配器等。

你还可以根据需要使用特定的 cmdlet 来获取特定的配置信息。以下是一些常用的示例:

  • 获取操作系统信息:Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object Caption, Version, OSArchitecture
  • 获取处理器信息:Get-CimInstance -ClassName Win32_Processor | Select-Object Name, Manufacturer, MaxClockSpeed
  • 获取内存信息:Get-CimInstance -ClassName Win32_PhysicalMemory | Select-Object Manufacturer, Capacity, Speed
  • 获取网络适配器信息:Get-NetAdapter | Select-Object Name, InterfaceDescription, MacAddress, Status

通过组合和筛选这些命令,你可以轻松获取你所需的配置信息。


PowerShell 中,你可以使用以下命令来查看主机上的用户账号:

powershellCopy Code
Get-LocalUser

这个命令将列出本地计算机上的所有用户账号,包括名称、描述和是否启用等信息。

如果你只想查看特定的用户账号,可以使用以下命令:

powershellCopy Code
Get-LocalUser -Name "username"

将 "username" 替换为你想要查找的特定用户名。这个命令将返回与该用户名匹配的用户账号信息。


PowerShell 中,你可以使用以下命令来获取本地管理员的信息:

powershellCopy Code
Get-LocalGroupMember -Group "Administrators"

这个命令将返回属于 "Administrators" 组的成员信息,其中包括用户名、和域(如果适用)等。


要获取本地计算机上所有用户的 SID,你可以使用以下 PowerShell 命令:

powershellCopy Code
$users = Get-WmiObject Win32_UserAccount
foreach ($user in $users) {
    $objUser = New-Object System.Security.Principal.NTAccount($user.Name)
    $strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier]).Value
    Write-Output "$($user.Name): $strSID"
}

这个命令将列出本地计算机上所有用户的用户名及其对应的 SID。运行后,你将看到一个包含所有用户及其 SID 的列表。


PowerShell 中,你可以使用以下命令来获取当前用户的 SID(安全标识符):

powershellCopy Code
$objUser = New-Object System.Security.Principal.NTAccount($env:UserName)
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier]).Value
$strSID

运行这个命令后,将显示当前用户的 SID。


PowerShell 命令来获取当前计算机上所有会话的信息:

powershellCopy Code
Get-WmiObject Win32_LogonSession | Select-Object StartTime, LogonId, UserName

这个命令会返回会话的开始时间、登录ID 和用户名等信息。通过这个命令可以快速获取当前计算机上所有会话的信息。


要查看当前计算机上的在线用户,你可以使用以下 PowerShell 命令:

powershellCopy Code
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object UserName

这个命令将返回当前计算机上已登录用户的用户名。请注意,这个命令可能无法区分远程用户和本地用户,它只会列出当前已登录的所有用户。

如果你想要获取更详细的用户信息,可以使用以下命令:

powershellCopy Code
Get-WmiObject -Class Win32_LoggedOnUser | Select-Object Antecedent -ExpandProperty Antecedent

这个命令将返回更详细的已登录用户信息,包括域名、用户名等。通过这些命令,你可以查看当前计算机上的在线用户信息。


在Windows系统中,你可以使用以下 PowerShell 脚本来获取本机连接过的WiFi密码:

powershellCopy Code
$wifiProfiles = netsh wlan show profiles | Select-String "所有用户配置文件 :"
$wifiPasswords = @()

foreach ($profile in $wifiProfiles) {
    $wifiName = $profile -replace "    所有用户配置文件 :\s+", ""
    $wifiPassword = (netsh wlan show profile name="$wifiName" key=clear | Select-String "关键内容            :").ToString() -replace "    关键内容            : ", ""
    
    $wifiInfo = [PSCustomObject]@{
        "WiFiName" = $wifiName
        "Password" = $wifiPassword
    }
    
    $wifiPasswords += $wifiInfo
}

$wifiPasswords

这个脚本将列出本机连接过的所有WiFi网络名称及其对应的密码。请注意,为了能够查看密码,你需要以管理员权限运行 PowerShell。


PowerShell 查询操作系统和版本信息,你可以使用以下命令:

powershellCopy Code
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object Caption, Version, OSArchitecture

这个命令将返回当前操作系统的名称(Caption)、版本(Version)以及架构(OSArchitecture)等信息。


PowerShell 查看计算机的详细信息,包括操作系统、处理器、内存、磁盘等方面的信息,你可以使用以下命令:

powershellCopy Code
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object Manufacturer, Model, TotalPhysicalMemory
Get-CimInstance -ClassName Win32_Processor | Select-Object Name, NumberOfCores, MaxClockSpeed
Get-CimInstance -ClassName Win32_LogicalDisk | Select-Object DeviceID, Size, FreeSpace

这个命令将返回计算机的制造商(Manufacturer)、型号(Model)、总物理内存(TotalPhysicalMemory)、处理器名称(Name)、核心数(NumberOfCores)、最大时钟速度(MaxClockSpeed)、逻辑磁盘设备标识符(DeviceID)、磁盘大小(Size)和可用空间(FreeSpace)等信息。


PowerShell 查询系统信息,你可以使用以下命令:

powershellCopy Code
Get-ComputerInfo

这个命令将返回计算机的大量信息,包括操作系统、处理器、内存、磁盘、网络配置、安全等方面的信息。


PowerShell 查询计算机的补丁情况,你可以使用以下命令:

powershellCopy Code
Get-HotFix

这个命令将返回安装在计算机上的所有已安装的热补丁(HotFix)信息,包括补丁编号、安装日期等。


PowerShell 查询操作系统的体系架构(Architecture),你可以使用以下命令:

powershellCopy Code
Get-WmiObject -Class Win32_OperatingSystem | Select-Object OSArchitecture

这个命令将返回当前操作系统的体系架构信息。


PowerShell 查询本机的服务信息,你可以使用以下命令:

powershellCopy Code
Get-Service

这个命令将返回计算机上所有的服务列表,包括服务的名称、状态、启动类型等信息。


PowerShell 查询 HOSTS 文件的内容,你可以使用以下命令:

powershellCopy Code
Get-Content C:\Windows\System32\drivers\etc\hosts

这个命令将返回计算机上 HOSTS 文件的内容。


PowerShell 查询进程列表,你可以使用以下命令:

powershellCopy Code
Get-Process

这个命令将返回计算机上所有正在运行的进程列表,包括进程的 ID、名称、优先级、状态等信息。


PowerShell 查询启动项程序的信息,你可以使用以下命令:

powershellCopy Code
Get-WmiObject -Query "SELECT * FROM Win32_StartupCommand"

这个命令将返回计算机上所有的启动项程序信息,包括程序的名称、路径、启动类型等。


PowerShell 查询计划任务,你可以使用以下命令:

powershellCopy Code
Get-ScheduledTask

这个命令将返回计算机上所有的计划任务列表,包括任务的名称、状态、触发器等信息。


PowerShell 查询主机的开机时间,你可以使用以下命令:

powershellCopy Code
Get-CimInstance Win32_OperatingSystem | Select-Object LastBootUpTime

这个命令将返回计算机系统的上次开机时间。


PowerShell 查看主机的共享信息,你可以使用以下命令:

powershellCopy Code
Get-WmiObject Win32_Share

这个命令将返回计算机上所有的共享资源信息,包括共享名称、路径、类型等。


查询本地运行环境,你可以使用 PowerShell 中的以下命令:

powershellCopy Code
Get-ChildItem Env:

这个命令将返回当前计算机上所有的环境变量信息,包括系统环境变量和用户环境变量。


PowerShell 查询防火墙相关配置,你可以使用以下命令:

powershellCopy Code
Get-NetFirewallProfile

这个命令将返回计算机上所有防火墙配置文件的详细信息,包括公用网络、专用网络和域网络的配置。


PowerShell 查看代理配置情况,你可以使用以下命令:

powershellCopy Code
Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'

这个命令将返回当前用户在 Windows 系统中的代理配置信息,包括代理服务器地址、端口号、是否启用代理等。


查询远程桌面协议(RDP)使用的端口号,一般情况下默认端口号是3389。你可以使用以下 PowerShell 命令来确认:

powershellCopy Code
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber

执行这个命令后,如果系统使用的是默认端口号3389


查询远程桌面协议(RDP)是否启用,你可以使用以下 PowerShell 命令:

powershellCopy Code
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections

执行这个命令后,你将会得到如下输出:

Copy Code
fDenyTSConnections : 0

如果输出结果中的 fDenyTSConnections 的值为 0,则表示远程桌面协议(RDP)已启用。如果值为 1,则表示远程桌面协议被禁用。

请注意,执行此命令需要管理员权限。如果你没有管理员权限,请使用管理员账户或者以管理员身份运行 PowerShell。


查看最近在 Windows 系统中打开的文件,你可以使用以下 PowerShell 命令:

powershellCopy Code
Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs'

执行这个命令后,你将会看到最近打开的文件列表。这些文件可能是最近在资源管理器中打开过的文件。


查询回收站中的文件,你可以使用以下 PowerShell 命令:

powershellCopy Code
$shell = New-Object -ComObject Shell.Application
$recycleBin = $shell.NameSpace(0xA)
$recycleBin.Items() | foreach {
    $item = $_
    $itemPath = $recycleBin.GetDetailsOf($item, 0)
    $itemDate = $recycleBin.GetDetailsOf($item, 2)
    Write-Output "文件名: $itemPath, 删除日期: $itemDate"
}

执行此命令后,它将返回回收站中的文件列表,包括文件名和删除日期。


在Windows系统中,可以使用不同的命令来查询杀毒软件和防火墙的信息。以下是针对不同版本的Windows的命令:

Windows 7、Windows 8、Windows 8.1:

查询杀毒软件:

Copy Code
wmic /namespace:\\root\SecurityCenter2 path AntiVirusProduct get displayName /format:list

查询防火墙:

Copy Code
netsh advfirewall show allprofiles

Windows 10:

查询杀毒软件:

Copy Code
Get-MpComputerStatus

查询防火墙:

Copy Code
Get-NetFirewallProfile

以上命令将返回有关杀毒软件和防火墙的基本信息,包括名称、状态和配置。你可以在命令提示符或PowerShell中运行这些命令来查看相关信息。

 
posted @ 2024-02-25 10:09  suv789  阅读(165)  评论(0编辑  收藏  举报