什么是自动化不可编辑的PowerShell脚本的好方法?

时间:2012-03-20 23:48:47

标签: powershell automation

我开发了一个需要每天自动运行的Powershell脚本。这是在我的拥有Powershell的PC上开发的。我可以在我的电脑上设置一个时间表来执行它,但这不是一个好主意(如果PC被关闭等)。

我可以使用许多可用的Windows服务器。但我无权安装任何东西,如果没有安装Powershell,我该如何做到这一点? Windows可以在没有安装Powershell的情况下以某种方式执行Powershell(.ps1)脚本吗?

在自动化到位后,我还希望脚本不可编辑。

1 个答案:

答案 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