如何使用PowerShell在本地运行其他计算机上的脚本?
如何使用PowerShell在本地运行其他计算机上的脚本?
嘿,这个需求其实挺常见的,咱们用PowerShell完全能搞定!下面给你几种实用的方法,你可以根据自己的场景选:
直接通过UNC路径运行(最简便)
如果远程计算机上的脚本放在共享文件夹里,而且你有访问这个共享的权限,直接在本地PowerShell里用UNC路径调用就行:& "\\远程计算机名\共享文件夹路径\目标脚本.ps1"举个例子,假设远程电脑叫
OfficePC,脚本在它的Scripts共享文件夹里,那命令就是& "\\OfficePC\Scripts\DeployApp.ps1"。
注意:要确保你的PowerShell执行策略允许运行远程脚本,可以用Get-ExecutionPolicy查看,要是限制太严,可能需要临时设置成RemoteSigned(记得执行完后改回原来的策略哦)。先下载到本地再运行
如果远程脚本比较大,或者你需要离线执行,先把脚本复制到本地再运行会更稳妥:# 先把远程脚本复制到本地临时目录 Copy-Item -Path "\\远程计算机名\共享文件夹\目标脚本.ps1" -Destination "C:\Temp\" # 运行本地的脚本副本 & "C:\Temp\目标脚本.ps1"无共享文件夹时,远程获取脚本内容再执行
如果远程机器没开共享,那咱们可以先通过PowerShell会话获取脚本的内容,再在本地创建脚本块执行:# 建立和远程计算机的会话 $remoteSession = New-PSSession -ComputerName 远程计算机名 # 远程读取脚本内容 $scriptContent = Invoke-Command -Session $remoteSession -ScriptBlock { Get-Content "C:\远程机器本地路径\目标脚本.ps1" } # 在本地执行获取到的脚本内容 Invoke-Command -ScriptBlock ([scriptblock]::Create($scriptContent)) # 用完记得关闭会话 Remove-PSSession $remoteSession要是远程机器需要特定身份验证,可以加上
-Credential参数,输入有权限的账号密码。
不管用哪种方法,核心都是要保证你有访问远程机器对应资源的权限,域环境下通常会自动用当前账号身份,工作组环境可能需要额外指定权限哦。
备注:内容来源于stack exchange,提问作者FerdinandoPH




