我正在编写一个脚本来远程杀死两个进程,删除一些文件夹,并将服务作为应用程序启动。最终这将被部署为在多台服务器上运行,但我目前正在对一台服务器进行测试。一切都很好,除了最后一步是启动远程服务(由于它作为服务运行的一些兼容性问题,它使用 -cl 参数作为应用程序运行)。应用程序通过脚本启动,但在脚本进入下一步时立即关闭。我是一个完全的菜鸟,所以我一直在挖掘很多,但没有找到解决方案的运气。似乎我最终可能不得不在新的运行空间中启动该过程,但我也没有找到一个好的新手指南来做这件事。
此外,当本地化并在机器上运行时,脚本的执行方式也与它应有的一样。
这就是我所拥有的
$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