none
Вывод в текстовой файл RRS feed

  • Вопрос

  • Подскажите, пожалуйста, почему не работает out-file в скрипте?

    Import-Module activedirectory
    $computers = Get-ADComputer -filter * -SearchBase "OU=x64,OU=WorkStation,OU=Win7_Computers,OU=xxx,DC=xxx,DC=xxx"


    foreach ($comp in $computers)
    {
    try
    {
    Invoke-Command -ComputerName $comp.Name -ErrorAction stop -ScriptBlock{
    if (test-Path "c:\Program Files\ESET\")
     {$env:COMPUTERNAME + "Антивирус установлен" | Out-File c:\install.txt -append}
    else
       {$env:COMPUTERNAME + " Не установлен антивирус" | Out-File c:\not_install.txt  -append }
    }

    }
    catch
    {
      $comp.Name + "Не удается подключиться" |  Out-File c:\not_connect.txt  -append
    }
    }


    26 сентября 2014 г. 8:59

Ответы

  • А где Вы результат смотрите?

    Out-File c:\install.txt,Out-File c:\not_install.txt - будет храниться на удаленном компьютере. За одно, что пользователь имеет права писать в корень C:.

    Out-File c:\not_connect.txt - будет храниться на компьютере, где выполняется скрипт.

    26 сентября 2014 г. 9:16
    Отвечающий
  • Потому что возникает double hop- Enable PowerShell Double-Hop Remoting

    Не надо мудрить:
    foreach ($comp in $computers)
    {
       try
       {
         $r = Invoke-Command -ComputerName $comp.name -ErrorAction stop -ScriptBlock{test-Path "c:\Program Files\ESET\"}
    	 if($r) {
    		$comp.name + "Антивирус установлен" | Out-File \\192.168.100.246\temp\install.txt -Append
    	}
        else{ 
    		$comp.name + "Не установлен антивирус" | Out-File \\192.168.100.246\temp\not_install.txt -Append
            }
    	}
        catch 
        {
    		$comp.Name + "Не удается подключиться" | Out-File -FilePath "\\avg.ru\share\Temp\Соловьев Сергей\NOD\not_connect.txt" -Append -Force
        }
    }

    26 сентября 2014 г. 10:43
    Отвечающий

Все ответы

  • А где Вы результат смотрите?

    Out-File c:\install.txt,Out-File c:\not_install.txt - будет храниться на удаленном компьютере. За одно, что пользователь имеет права писать в корень C:.

    Out-File c:\not_connect.txt - будет храниться на компьютере, где выполняется скрипт.

    26 сентября 2014 г. 9:16
    Отвечающий
  • Блин, вот я дал =)))

    Спасибо.

    26 сентября 2014 г. 9:29
  • переделал на вот так

    Import-Module activedirectory
    $computers = Get-ADComputer -filter *
    
    
    foreach ($comp in $computers)
    {
       try
       {
        Invoke-Command -ComputerName $comp.name -ErrorAction stop -ScriptBlock{
    if (test-Path "c:\Program Files\ESET\")
               { $env:COMPUTERNAME + "Антивирус установлен" | Out-File \\192.168.100.246\temp\install.txt}
               else
               { $env:COMPUTERNAME + "  Не установлен антивирус" | Out-File \\192.168.100.246\temp\not_install.txt }
                }
    
         }
         catch 
        {
        $comp.Name + "Не удается подключиться" | Out-File -FilePath "\\ччч\share\Temp\Соловьев Сергей\NOD\not_connect.txt" -Append -Force
        }
     }
    В таком случае файл в сети создается только в третьем Out-file, первые два просто молчат и я не понимаю почему они туда не пишут.


    26 сентября 2014 г. 10:27
  • Потому что возникает double hop- Enable PowerShell Double-Hop Remoting

    Не надо мудрить:
    foreach ($comp in $computers)
    {
       try
       {
         $r = Invoke-Command -ComputerName $comp.name -ErrorAction stop -ScriptBlock{test-Path "c:\Program Files\ESET\"}
    	 if($r) {
    		$comp.name + "Антивирус установлен" | Out-File \\192.168.100.246\temp\install.txt -Append
    	}
        else{ 
    		$comp.name + "Не установлен антивирус" | Out-File \\192.168.100.246\temp\not_install.txt -Append
            }
    	}
        catch 
        {
    		$comp.Name + "Не удается подключиться" | Out-File -FilePath "\\avg.ru\share\Temp\Соловьев Сергей\NOD\not_connect.txt" -Append -Force
        }
    }

    26 сентября 2014 г. 10:43
    Отвечающий
  • Все понял, спасибо.
    26 сентября 2014 г. 11:49