我是PowerShell和脚本编程的新手,遇到了一个奇怪的情况。尝试删除远程虚拟服务时发生异常
我想创建一个脚本,将删除正在运行的服务并安装新的服务(也复制文件等)。
问题是当我运行命令与命令工作的脚本分开运行时,删除服务的命令。 当我运行我的命令作为脚本的一部分,我得到一个异常:
:异常调用“删除”和“0”的说法(S):“远程 过程调用失败,没有执行(从HRESULT异常: 0x800706BF)”
这是我单独运行:
Connect-VIServer -Server "IP" -Protocol https -User "User" -Password "Password"
$password = "Password" | ConvertTo-SecureString -asPlainText -Force
$username = "User"
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
(gwmi win32_service -ComputerName "IP" -Credential $credential -filter "name='Service Name'").delete()
脚本时失败我运行:
Connect-VIServer -Server IP -Protocol https -User "User" -Password "Password"
$Template = Get-Template -Name "Template Name"
Set-Template $Template -ToVM
$VM = Get-VM -Name "Template Name"
Start-VM $VM
Start-Sleep -s 100
#Creating PScredentials
$password = "Password" | ConvertTo-SecureString -asPlainText -Force
$username = "User"
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
#Creating a New folder on vm
$Create_New_Folder =
{
New-Item -Path "Host Path" -ItemType directory
}
Invoke-Command -ComputerName "PC IP" -Credential $credential -ScriptBlock $Create_New_Folder
#Copy File From Localhost To vm
Get-Item "Host Folder" | Copy-VMGuestFile -Destination "VM LOcal Path" -VM "Template Name" -LocalToGuest -GuestUser "User" -GuestPassword "Password" -Force -Verbose
#Deleting a service on remote vm
(gwmi win32_service -ComputerName "IP" -Credential $credential -filter "name='Service Name'").delete()
#Retart VM so the service will be removed
Restart-VM "Template Name" -Confirm:$false
ComputerName“PC IP”和ComputerName“IP”之间有区别吗? – Nikolaus
这些只是我更改的名称,以便上传到这里...在脚本中它的相同的IP。 – Udi
您是否试图将其与创建新文件夹一样放入脚本块? – Nikolaus