我搜索了几个站点,试图找出如何在远程计算机上运行PowerShell脚本 . 我一直在使用以下命令: Invoke-Command -Session $s -FilePath "C:\Temp\test.ps1"
然而我收到一个错误,说该文件没有't exist. However I can search the same machine trough powershell and see that in fact it is there. Any suggestions on what I' m缺失?
下面的两个答案都解决了它找不到脚本的问题,但现在看起来它运行脚本,但本地机器上没有任何反应:
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脚本 .
3 回答
Invoke-Command的
-FilePath
参数查看LOCAL文件系统,而不是远程服务器上的文件系统 . 它旨在通过读取本地脚本文件,序列化其内容,然后在远程主机上反序列化并执行这些命令来远程运行复杂命令 . 您可以将-FilePath
参数更改为-Scriptblock {& "C:\Temp\Test.ps1"}
,或者,如果将脚本复制到您自己的本地C:\ Temp目录,它将按您的意图运行 .脚本文件
"C:\Temp\test.ps1"
你想它是在远程机器上吗?如果是,那么试着给"\\machineName\C$\temp\test.ps1"
我发现我遇到的问题是我的一个脚本中的一个问题 . 为我现在正在观察的问题打开一个新问题 .