的運行Windows PowerShell我對所有機器的用戶,像這樣定義的幾個函數和變量:從PHP不知道當前配置
Set-Content $Profile.AllUsersCurrentHost (Get-Content path/to/myprofile.ps1)
讓我們叫的我定義的函數Do-Stuff
之一。 這工作得很好。隨時調用Powershell控制檯,並輸入「Do-Stuff」+ ENTER,它就可以工作。
現在我試圖調用此函數從PHP的一些方法,並且我有兩個問題。試想一下:
$res = shell_exec('Powershell Do-Stuff');
print_r($res);
我得到的是這樣的錯誤:
Do-Stuff: The term 'Do-Stuff' is not recognized as the name of a
cmdlet, function, script file, or operable program....
我也試過:
$res = shell_exec('Powershell -File path/to/script.ps1');
print_r($res);
如果文件script.ps1
確實含有Do-Stuff
或任何其他的定義函數,我得到的是相同類型的錯誤消息。
現在這是什麼告訴我的是,調用PHP腳本沒有被識別爲Windows機器的用戶,並沒有施加當前加載$Profile
。
那麼,有什麼解決辦法嗎?我如何獲取當前用戶或所有用戶的加載配置文件以應用於正在運行的PHP腳本?