Какой хороший способ автоматизации нередактируемых скриптов PowerShell? - PullRequest
0 голосов
/ 21 марта 2012

Я разработал скрипт Powershell, который нужно запускать автоматически каждый день. Это было разработано на моем ПК, который имеет Powershell. Я мог бы настроить расписание на моем ПК для его выполнения, но это не очень хорошая идея (если ПК оставлен выключенным и т. Д.).

Существует несколько доступных Windows-серверов. Но у меня нет доступа, чтобы что-то установить на них, и если ни на одном из них не установлен Powershell, как мне это сделать? Может ли Windows каким-либо образом выполнять сценарии Powershell (.ps1) без установленного Powershell?

Я бы также предпочел, чтобы скрипт был недоступен для редактирования после установки автоматизации.

1 Ответ

1 голос
/ 21 марта 2012

Вероятно, лучше всего было бы использовать переносимый PowerShell на сервере напрямую (http://site.shelltools.net/Applications/Portable_PowerShell). По сути, он дает вам автономную версию PowerShell без необходимости фактической установки 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...