我搜索了几个网站,试图弄清楚如何在远程计算机上运行PowerShell脚本。我一直在使用以下命令:Invoke-Command -Session $s -FilePath "C:\Temp\test.ps1"
但是我收到错误,说该文件不存在。但是,我可以通过powershell搜索同一台机器,看到它实际上就在那里。关于我失踪的任何建议?
下面的两个答案都解决了它找不到脚本的问题,但是现在它看起来像是在运行脚本,但在本地机器上没有任何反应:
test.ps1脚本具有以下代码:
cscript C:\Temp\queryTest.vbs
。
queryTest.vbs文件包含以下代码:
`
sysdate = "1/1/2015"
Dim e
Dim wb
Dim sheet
Set e = CreateObject("EXCEL.APPLICATION")
e.Workbooks.Open("C:\temp\testbook.xlsx")
Set wb = e.ActiveWorkbook
Set Sheet = wb.Sheets("Sheet1")
sheet.Cells(1,1).Value = sysdate
set sheet = nothing
wb.Save
wb.close
Set wb=nothing
e.Quit
Set e = Nothing
`
当我远程运行test.ps1时,在excel文件中没有写入任何内容,但是如果我在本地计算机上启动它就可以正常运行。我试过从powershell调用ps1脚本和vbs脚本。
答案 0 :(得分:0)
Invoke-Command的-FilePath
参数正在查看LOCAL文件系统,而不是远程服务器上的文件系统。它旨在通过读取本地脚本文件,序列化其内容,然后在远程主机上反序列化并执行这些命令来远程运行复杂命令。您可以将-FilePath
参数更改为-Scriptblock {& "C:\Temp\Test.ps1"}
,或者,如果将脚本复制到您自己的本地C:\ Temp目录,它将按您的意图运行。
答案 1 :(得分:0)
脚本文件"C:\Temp\test.ps1"
是否假设它位于远程计算机上?
如果是,则尝试提供"\\machineName\C$\temp\test.ps1"
答案 2 :(得分:0)
我发现我遇到的问题是我的一个脚本中的问题。为我现在正在观察的问题打开一个新问题。