我必须检查虚拟机上是否安装了驱动程序。
我需要使用Powershell(msinfo32.exe - >软件组件,系统驱动程序)输出驱动程序列表。
我要检查的(模拟的)用户帐户是" test"。
当我在本地运行我的命令" test"使用远程桌面,它工作正常,我得到所有驱动程序:
PS C:\Users\test> Get-WmiObject win32_systemdriver
所以我可以检查相关的驱动程序是否正在运行:
PS C:\Users\test> Get-WmiObject win32_systemdriver | Where-Object{$_.name -eq "vsepflt"}
DisplayName : VFileFilter
Name : vsepflt
State : Running
Status : OK
Started : True
现在我需要从我的计算机上执行此操作,但它不输出完整列表(仅改为3):
PS C:\Users\lh> Get-WmiObject win32_systemdriver -ComputerName $ip -Credential $credTest
DisplayName : Common Log (CLFS)
Name : CLFS
State : Running
Status : OK
Started : True
DisplayName : NetBT
Name : NetBT
State : Running
Status : OK
Started : True
DisplayName : Remote Access Auto Connection Driver
Name : RasAcd
State : Stopped
Status : OK
Started : False
当然,我无法检查相关的驱动程序,因为它不在列表中,应该是。
注意:如果我在同一个VM上使用管理员帐户作为凭据,则可以使用它,我会获得完整列表。所以我可以找我的司机:
PS C:\Users\lh> Get-WmiObject win32_systemdriver -ComputerName $ip -Credential $credAdmin | Where-Object{$_.name -eq "vsepflt"}
DisplayName : VFileFilter
Name : vsepflt
State : Running
Status : OK
Started : True
我需要它从"测试"输出。帐户
为什么我不能远程获取用户帐户的完整列表,但如果我在本地运行命令,我会得到它?以及如何解决?
感谢
编辑:使用Invoke-command和Enter-PSSession获得相同的结果。
编辑2:如果它有任何区别,我的机器运行PS 4.0,而VM(同时包含Admin和" test"用户)运行3.0。