在CentOS 8的PowerShell中获取远程Windows机器当前登录用户
在CentOS 8的PowerShell中获取远程Windows机器的当前登录用户
别担心,在CentOS 8的PowerShell环境里完全能实现这个需求,而且方法和你之前在Windows上用的思路一致,甚至有更适配跨平台的现代写法,我给你详细说明:
方法1:使用Get-CimInstance(推荐,PowerShell Core原生支持)
PowerShell Core(也就是你安装的这个版本)更推荐用Get-CimInstance替代旧的Get-WmiObject,它是跨平台的CIM(Common Information Model)命令,和WMI本质是一套体系,但兼容性更好。
直接在CentOS的PowerShell里执行这条命令就行:
Get-CimInstance -ComputerName [machine name] -ClassName Win32_ComputerSystem | Select-Object UserName
只要你的CentOS机器能和目标Windows机器建立WinRM连接,就能得到和Windows上一样的结果——当前登录的用户名。
方法2:继续使用Get-WmiObject(兼容模式)
如果你习惯了之前的命令,也可以直接复用,PowerShell Core保留了Get-WmiObject的兼容层,所以这条命令在CentOS上也能正常运行:
Get-WmiObject -ComputerName [machine name] -Class Win32_ComputerSystem | Select-Object UserName
不过要注意,这个命令属于旧版WMI命令,未来的PowerShell版本可能会移除,所以优先推荐上面的CIM方法。
必要的前提和注意事项
- 目标Windows机器要开启WinRM服务:在Windows机器上用管理员权限执行
winrm quickconfig,快速配置允许远程WinRM连接 - 端口访问权限:确保CentOS机器能访问目标Windows的5985(HTTP)或5986(HTTPS)端口(WinRM默认端口)
- 权限要求:执行命令的用户需要拥有远程Windows机器的WMI/CIM访问权限,一般需要管理员级别的账号
- 测试连通性:如果遇到连接问题,可以先执行
Test-WSMan [machine name],检查WinRM连接是否正常
内容的提问来源于stack exchange,提问作者bob
相关产品推荐
相关产品推荐

