powershell 5 信息收集命令
PowerShell 命令来查看当前用户及其权限:
# 获取当前登录的用户
$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 中,你可以使用以下命令来查看当前主机名:
$env:COMPUTERNAME
运行这个命令后,将显示当前主机的名称。
PowerShell 中,你可以使用以下命令来获取本机的配置信息:
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 中,你可以使用以下命令来查看主机上的用户账号:
Get-LocalUser
这个命令将列出本地计算机上的所有用户账号,包括名称、描述和是否启用等信息。
如果你只想查看特定的用户账号,可以使用以下命令:
Get-LocalUser -Name "username"
将 "username" 替换为你想要查找的特定用户名。这个命令将返回与该用户名匹配的用户账号信息。
PowerShell 中,你可以使用以下命令来获取本地管理员的信息:
Get-LocalGroupMember -Group "Administrators"
这个命令将返回属于 "Administrators" 组的成员信息,其中包括用户名、和域(如果适用)等。
要获取本地计算机上所有用户的 SID,你可以使用以下 PowerShell 命令:
$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(安全标识符):
$objUser = New-Object System.Security.Principal.NTAccount($env:UserName)
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier]).Value
$strSID
运行这个命令后,将显示当前用户的 SID。
PowerShell 命令来获取当前计算机上所有会话的信息:
Get-WmiObject Win32_LogonSession | Select-Object StartTime, LogonId, UserName
这个命令会返回会话的开始时间、登录ID 和用户名等信息。通过这个命令可以快速获取当前计算机上所有会话的信息。
要查看当前计算机上的在线用户,你可以使用以下 PowerShell 命令:
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object UserName
这个命令将返回当前计算机上已登录用户的用户名。请注意,这个命令可能无法区分远程用户和本地用户,它只会列出当前已登录的所有用户。
如果你想要获取更详细的用户信息,可以使用以下命令:
Get-WmiObject -Class Win32_LoggedOnUser | Select-Object Antecedent -ExpandProperty Antecedent
这个命令将返回更详细的已登录用户信息,包括域名、用户名等。通过这些命令,你可以查看当前计算机上的在线用户信息。
在Windows系统中,你可以使用以下 PowerShell 脚本来获取本机连接过的WiFi密码:
$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 查询操作系统和版本信息,你可以使用以下命令:
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object Caption, Version, OSArchitecture
这个命令将返回当前操作系统的名称(Caption)、版本(Version)以及架构(OSArchitecture)等信息。
PowerShell 查看计算机的详细信息,包括操作系统、处理器、内存、磁盘等方面的信息,你可以使用以下命令:
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 查询系统信息,你可以使用以下命令:
Get-ComputerInfo
这个命令将返回计算机的大量信息,包括操作系统、处理器、内存、磁盘、网络配置、安全等方面的信息。
PowerShell 查询计算机的补丁情况,你可以使用以下命令:
Get-HotFix
这个命令将返回安装在计算机上的所有已安装的热补丁(HotFix)信息,包括补丁编号、安装日期等。
PowerShell 查询操作系统的体系架构(Architecture),你可以使用以下命令:
Get-WmiObject -Class Win32_OperatingSystem | Select-Object OSArchitecture
这个命令将返回当前操作系统的体系架构信息。
PowerShell 查询本机的服务信息,你可以使用以下命令:
Get-Service
这个命令将返回计算机上所有的服务列表,包括服务的名称、状态、启动类型等信息。
PowerShell 查询 HOSTS 文件的内容,你可以使用以下命令:
Get-Content C:\Windows\System32\drivers\etc\hosts
这个命令将返回计算机上 HOSTS 文件的内容。
PowerShell 查询进程列表,你可以使用以下命令:
Get-Process
这个命令将返回计算机上所有正在运行的进程列表,包括进程的 ID、名称、优先级、状态等信息。
PowerShell 查询启动项程序的信息,你可以使用以下命令:
Get-WmiObject -Query "SELECT * FROM Win32_StartupCommand"
这个命令将返回计算机上所有的启动项程序信息,包括程序的名称、路径、启动类型等。
PowerShell 查询计划任务,你可以使用以下命令:
Get-ScheduledTask
这个命令将返回计算机上所有的计划任务列表,包括任务的名称、状态、触发器等信息。
PowerShell 查询主机的开机时间,你可以使用以下命令:
Get-CimInstance Win32_OperatingSystem | Select-Object LastBootUpTime
这个命令将返回计算机系统的上次开机时间。
PowerShell 查看主机的共享信息,你可以使用以下命令:
Get-WmiObject Win32_Share
这个命令将返回计算机上所有的共享资源信息,包括共享名称、路径、类型等。
查询本地运行环境,你可以使用 PowerShell 中的以下命令:
Get-ChildItem Env:
这个命令将返回当前计算机上所有的环境变量信息,包括系统环境变量和用户环境变量。
PowerShell 查询防火墙相关配置,你可以使用以下命令:
Get-NetFirewallProfile
这个命令将返回计算机上所有防火墙配置文件的详细信息,包括公用网络、专用网络和域网络的配置。
PowerShell 查看代理配置情况,你可以使用以下命令:
Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
这个命令将返回当前用户在 Windows 系统中的代理配置信息,包括代理服务器地址、端口号、是否启用代理等。
查询远程桌面协议(RDP)使用的端口号,一般情况下默认端口号是3389。你可以使用以下 PowerShell 命令来确认:
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber
执行这个命令后,如果系统使用的是默认端口号3389
查询远程桌面协议(RDP)是否启用,你可以使用以下 PowerShell 命令:
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections
执行这个命令后,你将会得到如下输出:
fDenyTSConnections : 0
如果输出结果中的 fDenyTSConnections
的值为 0
,则表示远程桌面协议(RDP)已启用。如果值为 1
,则表示远程桌面协议被禁用。
请注意,执行此命令需要管理员权限。如果你没有管理员权限,请使用管理员账户或者以管理员身份运行 PowerShell。
查看最近在 Windows 系统中打开的文件,你可以使用以下 PowerShell 命令:
Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs'
执行这个命令后,你将会看到最近打开的文件列表。这些文件可能是最近在资源管理器中打开过的文件。
查询回收站中的文件,你可以使用以下 PowerShell 命令:
$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
查询防火墙:Copy Code
Windows 10:查询杀毒软件:Copy Code
查询防火墙:Copy Code
以上命令将返回有关杀毒软件和防火墙的基本信息,包括名称、状态和配置。你可以在命令提示符或PowerShell中运行这些命令来查看相关信息。 |