Скрипт PowerShell для импорта файла .reg на удаленный компьютер - PullRequest
0 голосов
/ 30 мая 2018

Я использую следующий скрипт для импорта файла .reg на удаленные компьютеры.Мне нужно выполнить следующее:

  1. Подключиться к удаленному компьютеру и завершить работающий процесс, если он запущен.
  2. Скопировать файл ключа .reg из папки Network Share вудаленный компьютер.
  3. Импортируйте скопированный ключ .reg в реестр удаленного компьютера. '
  4. Удалите скопированный файл ключа .reg с удаленного компьютера.
  5. Запустите процессэто было убито в начале.

Теперь я относительно новичок в написании сценариев PowerShell, и у меня есть сценарий, частично отобранный из сценариев, которые я нашел в Интернете и в своей книге PowerShell Cookbook.

Когда я запускаю сценарий, происходит следующее: он подключается к удаленному компьютеру и завершает процесс, но затем сценарий зависает и не выполняет шаги 2-5.Это не выбрасывает никаких ошибок либо.Что я пропускаю или делаю неправильно?

Заранее спасибо!

#Variables
$Computers = Get-Content C:\computer.txt
$LocalRegFileName = "regfile.reg"
$HostedRegFile = "\\NETWORK-SHARE\Folder\Folder\regfile.reg"
$ProcessName = "Process"
$FilePath = "C:\Program Files (x86)\Folder\$ProcessName.exe"

foreach ($Computer in $Computers) {
    Invoke-Command -ComputerName $Computer {
        Get-Process -Name $ProcessName | Stop-Process -Force
    }

    $NewFile = "\\$Computer\C'$\TEMP\$LocalRegFileName"
    New-Item -ErrorAction SilentlyContinue -ItemType directory -Path \\$Computer\C$\TEMP
    Copy-Item $HostedRegFile -Destination $NewFile
    Invoke-Command -ComputerName $Computer -ScriptBlock {
        Start-Process -FilePath "C:\Windows\regedit.exe" -ArgumentList "/s C:\TEMP\$LocalRegFileName"
    }

    Invoke-Command -ComputerName $Computer -ScriptBlock {
        Remove-Item "C:\TEMP\$LocalRegFileName"
    }

    Invoke-Command -ComputerName $Computer -ScriptBlock {
        Start-Process -FilePath "$FilePath\$ProcessName.exe"
    }
}    
...