【发布时间】:2018-12-28 18:16:14
【问题描述】:
我编写了以下 PowerShell 脚本来执行远程 Office 卸载。
$computers = @("WGBCZC4253TQY")
foreach ($computer in $computers) {
Copy-Item -Force -Recurse -Verbose -Path \\sgblon340012\O365\Remove-PreviousOfficeInstalls -Destination \\$computer\C$\temp200718\
Invoke-Command -ComputerName $computer -ScriptBlock {
& {
Set-ExecutionPolicy -ExecutionPolicy Bypass -Force -Verbose
cd C:\temp200718\Remove-PreviousOfficeInstalls -Verbose
. .\Remove-PreviousOfficeInstalls.ps1
Remove-PreviousOfficeInstalls
Set-ExecutionPolicy -ExecutionPolicy Bypass -Force -Verbose
}
}
Remove-Item -Force -Recurse \\$computer\C$\temp200718 -Verbose
}
但它会生成以下关于路径不存在的错误,即使您可以清楚地看到它确实存在,因为文件刚刚被复制!
详细:对目标“项目:\\sgblon340012\O365\Remove-PreviousOfficeInstalls 目标:\\WGBCZC4253TQY\C$\temp200718\”执行“复制目录”操作。 详细:对目标“目标:\\WGBCZC4253TQY\C$\temp200718\”执行“创建目录”操作。 详细:对目标“项目:\\sgblon340012\O365\Remove-PreviousOfficeInstalls\OffScrub03.vbs 目标:\\WGBCZC4253TQY\C$\temp200718\OffScrub03.vbs”执行“复制文件”操作。 详细:对目标“项目:\\sgblon340012\O365\Remove-PreviousOfficeInstalls\OffScrub07.vbs 目标:\\WGBCZC4253TQY\C$\temp200718\OffScrub07.vbs”执行“复制文件”操作。 详细:对目标“项目:\\sgblon340012\O365\Remove-PreviousOfficeInstalls\OffScrub10.vbs 目标:\\WGBCZC4253TQY\C$\temp200718\OffScrub10.vbs”执行“复制文件”操作。 详细:对目标“项目:\\sgblon340012\O365\Remove-PreviousOfficeInstalls\OffScrubc2r.vbs 目标:\\WGBCZC4253TQY\C$\temp200718\OffScrubc2r.vbs”执行“复制文件”操作。 详细:对目标“项目:\\sgblon340012\O365\Remove-PreviousOfficeInstalls\OffScrub_O15msi.vbs 目标:\\WGBCZC4253TQY\C$\temp200718\OffScrub_O15msi.vbs”执行“复制文件”操作。详细:对目标“项目:\\sgblon340012\O365\Remove-PreviousOfficeInstalls\OffScrub_O16msi.vbs 目标:\\WGBCZC4253TQY\C$\temp200718\OffScrub_O16msi.vbs”执行“复制文件”操作。 详细:对目标“项目:\\sgblon340012\O365\Remove-PreviousOfficeInstalls\README.md 目标:\\WGBCZC4253TQY\C$\temp200718\README.md”执行“复制文件”操作。 详细:对目标“项目:\\sgblon340012\O365\Remove-PreviousOfficeInstalls\README_Remove-PreviousOfficeInstalls.md 目标:\\WGBCZC4253TQY\C$\temp200718\README_Remove-PreviousOfficeInstalls.md”执行“复制文件”操作。 详细:对目标“项目:\\sgblon340012\O365\Remove-PreviousOfficeInstalls\Remove-PreviousOfficeInstalls.ps1 目标:\\WGBCZC4253TQY\C$\temp200718\Remove-PreviousOfficeInstalls.ps1”执行“复制文件”操作。 详细:对目标“绕过”执行操作“Set-ExecutionPolicy”。找不到路径“C:\temp200718\Remove-PreviousOfficeInstalls”,因为它不存在。 + CategoryInfo : ObjectNotFound: (C:\temp200718\R...sOfficeInstalls:String) [Set-Location], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand + PSComputerName : WGBCZC4253TQY 术语“.\Remove-PreviousOfficeInstalls.ps1”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。 + CategoryInfo : ObjectNotFound: (.\Remove-PreviousOfficeInstalls.ps1:String) [], CommandNotFoundException +fullyQualifiedErrorId:CommandNotFoundException + PSComputerName : WGBCZC4253TQY 术语“Remove-PreviousOfficeInstalls”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。 + CategoryInfo : ObjectNotFound: (Remove-PreviousOfficeInstalls:String) [], CommandNotFoundException +fullyQualifiedErrorId:CommandNotFoundException + PSComputerName:WGBCZC4253TQY VERBOSE:对目标“绕过”执行操作“Set-ExecutionPolicy”。 详细:对目标“\\WGBCZC4253TQY\C$\temp200718”执行“删除目录”操作。 详细:对目标“\\WGBCZC4253TQY\C$\temp200718\OffScrub03.vbs”执行“删除文件”操作。 详细:对目标“\\WGBCZC4253TQY\C$\temp200718\OffScrub07.vbs”执行“删除文件”操作。 详细:对目标“\\WGBCZC4253TQY\C$\temp200718\OffScrub10.vbs”执行“删除文件”操作。详细:对目标“\\WGBCZC4253TQY\C$\temp200718\OffScrubc2r.vbs”执行“删除文件”操作。 详细:对目标“\\WGBCZC4253TQY\C$\temp200718\OffScrub_O15msi.vbs”执行“删除文件”操作。 详细:对目标“\\WGBCZC4253TQY\C$\temp200718\OffScrub_O16msi.vbs”执行“删除文件”操作。 详细:对目标“\\WGBCZC4253TQY\C$\temp200718\README.md”执行“删除文件”操作。详细:对目标“\\WGBCZC4253TQY\C$\temp200718\README_Remove-PreviousOfficeInstalls.md”执行“删除文件”操作。 详细:对目标“\\WGBCZC4253TQY\C$\temp200718\Remove-PreviousOfficeInstalls.ps1”执行“删除文件”操作。【问题讨论】:
-
我对您在这里所做的事情感到困惑,但似乎错误来自文件夹
C:\temp200718\Remove-PreviousOfficeInstalls,因为我看到文件已复制到新目的地。那么ps1脚本remove-previousofficeinstalls可能不在那个路径中,也许你应该放一个完整的路径或者脚本可以定位的东西而不是`.`作为旁注,请不要将执行策略设置为Bypass。跨度> -
引用你的路径。
Remove-PreviousOfficeInstalls现在用作路径的一部分(作为字符串),作为 .ps1 文件的名称,也是您要执行的函数的名称。这里是cd C:\temp200718\Remove-PreviousOfficeInstalls命令失败
标签: powershell