Я работаю над сценарием для удаленного уничтожения двух процессов, удаления некоторых папок и запуска службы в качестве приложения. В конечном итоге это будет развернуто для работы на нескольких серверах, но в настоящее время я тестирую его на одном сервере. Все отлично работает, за исключением последнего шага, который заключается в запуске удаленного сервиса (который запускается как приложение с использованием аргумента -cl из-за некоторых проблем совместимости с ним, выполняющимся как сервис). Приложение запускается через сценарий, но сразу же выключается, когда сценарий переходит к следующему шагу. Я абсолютный новичок, так что я довольно много копал, но мне не повезло найти решение. Кажется, что мне может понадобиться запустить процесс в новом пространстве выполнения, но мне не повезло найти хорошее руководство по noob для этого.
Также скрипт работает так же, как и при локализации и запуске на компьютере.
Вот что у меня есть
$a = Get-ChildItem "\\TestMachine\c$\DataFiles"
$pass = cat "C:\cred.txt" | convertto-securestring
$mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist "username",$pass
if ($a.Count -gt 10)
{
Invoke-Command -ComputerName TestMachine -cred $mycred -scriptBlock {stop-process -name TestProcess -force -EA SilentlyContinue}
Invoke-Command -ComputerName TestMachine -cred $mycred -scriptBlock {stop-process -name Winword -force -EA SilentlyContinue}
Get-ChildItem -Path \\TestMachine\c$\WordDocs -Recurse -EA SilentlyContinue | Where-Object {$_.PsIsContainer} | Remove-Item -Recurse -Force -EA SilentlyContinue
Invoke-Command -ComputerName TestMachine -cred $mycred -scriptBlock {Start-Process "C:\Program Files (x86)\Test\TestUploadManager\TestUploadManager.exe" -Verb Runas -ArgumentList -cl}
echo "Success: TestMachine Was successfully reset"
}
else
{
echo "Failed: Reset was not necessary"
}
exit