首页 文章

查找程序是否安装在远程计算机上

提问于
浏览
0

我正在尝试使用Active Directory连接到远程计算机,并查看是否安装了单个程序 . 我尝试过在互联网上找到的几个教程,但没有成功:

我不能让他们正常工作,他们并不是我想要的 .

我想做的一个例子:说我的网络上有3台电脑:

123-abc
123-bcd
123-cde

我想看看是否存在可执行文件 C:\Program Files (x86)\Mozilla Firefox\Firefox.exe . 有人可以解释我如何在PowerShell中解决这个问题吗?

3 回答

  • 1

    最简单的方法是,如果您在目标计算机上启用并可访问域管理员权限和管理共享,则:

    $computers = '123-abc', '123-bcd', '123-cde'
    $path = 'C$\Program Files (x86)\Mozilla Firefox\Firefox.exe'
    
    $computers | % {
      '{0}: {1}' -f $_, (Test-Path -LiteralPath "\\$_\$path")
    }
    
  • 0

    有几种方法可以检查已安装的软件 . 有些比其他更适合 . 但是,如果您确定每台计算机上的文件路径,那么Test-Path CmdLet可能是一种简单的方法 .

    Invoke-Command -ComputerName 123-abc -ScriptBlock {Test-Path 'C:\Program Files (x86)\Mozilla Firefox\Firefox.exe'}
    

    你可以把它扔进一个带有自定义对象的循环中,这样你也可以使用它 .

  • 0

    例如,您的代码可能如下所示 .

    $pass = "password";
    $secpass = ConvertTo-SecureString $pass -AsPlainText -Force;
    $creds = New-Object System.Management.Automation.PSCredential("domain\login", $secpass);
    Invoke-Command -ComputerName 123-abc, 123-bcd, 123-cde -Credential $creds -ScriptBlock {
        Test-Path "C:\Program Files (x86)\Mozilla Firefox\Firefox.exe"
    };
    

    在远程计算机上运行powershell命令有多种方法 .

    • 许多命令支持 string[] 参数 -ComputerName ,您可以将多个计算机名称传递给它们

    • 您可以使用 Enter-PSSession cmdlet在远程计算机上输入类似Telnet的会话

    • 最后,您可以使用 Invoke-Command cmdlet对多个远程主机运行脚本块 .

相关问题