【问题标题】:file location different on computers and space issues计算机和空间问题上的文件位置不同
【发布时间】:2013-02-11 23:00:10
【问题描述】:

我有以下代码,目前正在检查计算机的版本信息和服务状态。

我的问题是服务器在不同的地方有定位的 .exe:

  1. C:\program files\snare\snarecore.exe
  2. C:\program files (x86)\snare\snarecore.exe
  3. D:\apps\snare\snarecore.exe

如何让下面的脚本运行正确的版本?我想我可以使用服务正在检查的路径吗?我正在远程完成这一切,并且拥有服务器的权限并且工作正常 - 但我不得不根据可执行文件所在的所有三个位置制作三个(或更多!)脚本!

另外,对于名称中有空格的那些(../program 文件..),我应该在哪里加上引号,以便 powershell 可以读取整行并且不会因为名称中的空格而出错?

代码:

clear
$ErrorActionPreference = "silentlycontinue"

$Logfile = "C:\temp\output_cdrive.log"

Function LogWrite
{
    param([string]$logstring)

    Add-Content $Logfile -Value $logstring
}

$computer = Get-Content -Path c:\temp\servers2.txt

foreach ($computer1 in $computer){

$Service = Get-WmiObject Win32_Service -Filter "Name = 'Snare'" -ComputerName $computer1

    if (test-connection $computer1 -quiet) 
    {
        $version = (Get-Command ""\\$computer1\c$\Program Files (x86)\Snare\SnareCore.exe"").FileVersionInfo.FileVersion

            if($Service.state -eq 'Running')
            {
                LogWrite "$computer1 STARTED $version"
            }
            else
            {
                LogWrite "$computer1 STOPPED $version"
            }
    }
    else 
    {
        LogWrite "$computer1 is down" -foregroundcolor RED
    }
}

谢谢,

【问题讨论】:

    标签: powershell powershell-2.0


    【解决方案1】:

    您可以检查服务的路径名属性以获取 exe 位置:

    PS>(Get-WmiObject Win32_Service -Filter "name='spooler'").pathname
    C:\Windows\System32\spoolsv.exe
    

    【讨论】:

    • 这似乎工作正常 - 但它不会执行路径名中有空格的那些......知道如何让代码与名称中的那些一起执行路径名?
    • 到底是什么问题?只需在路径之间使用引号(“),这应该可以工作
    • James 回答了这个问题 - 我使用了引号,但它不起作用 - 问题是我需要三个不同的引号!
    【解决方案2】:

    显而易见的解决方案是使用路径变量,依次为三个不同路径中的每一个分配该变量,然后使用该变量将您的实际检查编写为函数。

    【讨论】:

    • 听起来是个好主意...但我不知道从哪里开始...无论如何我都会尝试实现它..
    【解决方案3】:

    您可以使用反引号转义双引号:

     "`"\\$computer1\c$\Program Files (x86)\Snare\SnareCore.exe`""
    

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多