Web services 复制项:进程无法访问该文件

Web services 复制项:进程无法访问该文件,web-services,powershell,jenkins,powershell-2.0,powershell-3.0,Web Services,Powershell,Jenkins,Powershell 2.0,Powershell 3.0,我有一份詹金斯的工作,工作内容如下 停止Web服务 删除Web服务 将项目从Jenkins工作区复制到服务器路径 创建Web服务 启动Web服务 下面是我的PowerShell脚本: Get-ChildItem "C:\Location\*" $service = Get-Service -Name value -Computername $env:SERVER -ErrorAction SilentlyContinue sc.exe \\$env:SERVER stop value Write

我有一份詹金斯的工作,工作内容如下

  • 停止Web服务
  • 删除Web服务
  • 将项目从Jenkins工作区复制到服务器路径
  • 创建Web服务
  • 启动Web服务
  • 下面是我的PowerShell脚本:

    Get-ChildItem "C:\Location\*"
    $service = Get-Service -Name value -Computername $env:SERVER -ErrorAction SilentlyContinue
    sc.exe \\$env:SERVER stop value
    Write-Host "value STOPPED"
    sc.exe \\$env:SERVER delete val
    Write-Host "val DELETED"
    Copy-Item "C:\Location\*" "\\$env:SERVER\d$\Location" -Force -Recurse
    sc.exe \\$env:SERVER create val start=auto DisplayName ="val"  binPath= D:\Location.exe
    sc.exe \\$env:SERVER description value"value"
    sc.exe \\$env:SERVER start value
    Write-Host "value STARTED" 
    if ($error) { exit 1 }
    
    错误日志:

    Copy-Item : The process cannot access the file '\\Location' because it is being used by another process. At C:\Users\Administrator\AppData\Local\Temp\hudson2059984936352103941.ps1:18 char:5 + Copy-Item "C:\Location\*" " ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Copy-Item], IOException + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand [SC] CreateService FAILED 1072: The specified service has been marked for deletion. [SC] ChangeServiceConfig2 FAILED 1072: The specified service has been marked for deletion. [SC] StartService FAILED 1058: The service cannot be started, either because it is disabled or because it has no enabled devices associated with it. 复制项目:进程无法访问文件“\\Location”,因为另一进程正在使用该文件。 在C:\Users\Administrator\AppData\Local\Temp\hudson205994936352103941.ps1:18字符:5 +复制项目“C:\Location\*”。。。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:NotSpecified:(:)[Copy Item],IOException +FullyQualifiedErrorId:System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand [SC]CreateService失败1072: 指定的服务已标记为删除。 [SC]ChangeServiceConfig2失败1072: 指定的服务已标记为删除。 [SC]StartService失败1058: 无法启动该服务,原因可能是该服务已被禁用,也可能是该服务没有可用性 已启用与之关联的设备。
    您能帮我解决这个错误吗?我是否需要重新启动部署服务器,以便终止我的进程?如果是这样,我觉得这与此无关,并且无法在prod服务器中执行。

    问题是您有另一个进程正在使用dll。由于正在使用dll,您无法删除它。您需要确保没有进程正在使用dll删除dll之前,请先关闭它。要实现此目的,您需要找出哪个进程正在使用它,为什么要使用它,并确保它将被关闭。如果下次也出现此问题,则需要将关闭该进程添加到脚本中。

    问题是您有另一个进程正在使用dll。因为正在使用,您无法删除它。您需要确保没有进程正在使用dll,然后才能删除它。要实现此目的,您需要找出哪个进程正在使用它,为什么要使用它,并确保它将被关闭。如果下次也出现问题,则需要将关闭该进程添加到脚本中

    只需找到阻塞dll的进程并停止它before@4c74356b41我找不到任何具有该名称的进程。只需找到阻止dll的进程并停止它before@4c74356b41我找不到任何具有该名称的流程。您能告诉我如何实现吗this@Bhave查看流程列表,列出无法执行的流程列表排除dll的使用。尝试逐个停止它们并查看何时可以删除dll。当您能够这样做时,您还将知道是哪个进程导致了问题。此时,请复制dll并重新启动进程以重现问题。根据您的发现调整脚本并确保其正常工作。您能告诉我如何实现吗 this@Bhave查看进程列表,列出无法排除dll使用的进程列表。尝试逐个停止这些进程,然后查看何时可以删除dll。当您能够这样做时,您还将知道是哪个进程导致了问题。此时,请复制回dll并重新启动进程以重现问题。请调整根据您的发现编写脚本,并确保它有效。