我开发了一个需要每天自动运行的Powershell脚本。这是在我的拥有Powershell的PC上开发的。我可以在我的电脑上设置一个时间表来执行它,但这不是一个好主意(如果PC被关闭等)。
我可以使用许多可用的Windows服务器。但我无权安装任何东西,如果没有安装Powershell,我该如何做到这一点? Windows可以在没有安装Powershell的情况下以某种方式执行Powershell(.ps1)脚本吗?
在自动化到位后,我还希望脚本不可编辑。
答案 0 :(得分:1)
可能你最好的选择是直接在服务器上使用移动PowerShell(http://site.shelltools.net/Applications/Portable_PowerShell) 它基本上为您提供了一个独立的PowerShell exe,而无需实际安装PowerShell。
至于使其不可编辑,您主要限制使用NTFS权限。做你想做的事的另一个选择可能就在这里:http://powershell.com/cs/forums/p/5493/8863.aspx虽然我自己从未使用过这些工具。
另一种方法是使用批处理文件和psexec实用程序来调用远程主机上的powershell脚本。您可以在Windows Server上设置计划任务,如下所示:
@echo off
setlocal
:: Change HOST to your workstation's IP/DNS hostname
HOST=127.0.0.1
:: Make this your workstation's MAC
MAC=00-00-00-11-22-33
:: Make this the number of seconds it takes your host to boot
BOOTTIME=60
ping %HOST%
if ERRORLEVEL 0 (
REM Ping successful, host is up
GOTO RUNCMD
) else (
:: Ping not successful, wake up host using mc-wol from matcode.com. Server must be in same subnet
mc-wol.exe %MAC%
choice /T %BOOTTIME% /D y >NUL
GOTO RUNCMD
)
:RUNCMD
psexec \\%HOST% {cmd options to run remote powershell}
endlocal