Powershell:相同的输入命令,但根据远程/本地执行的不同输出

时间:2016-05-09 08:15:55

标签: .net windows powershell output local

我必须检查虚拟机上是否安装了驱动程序。
我需要使用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。

0 个答案:

没有答案