我在遠程服務器上有一個命令行exe,我需要遠程執行(在遠程服務器上運行)。這個exe連接到數據庫,並寫入一個日誌文件。使用Start-Process的PowerShell Invoke-Command未創建日誌文件
我已經通過執行這些PowerShell中啓用WinRM的命令:
netsh http add iplisten localip {add local ip here}
netsh http add iplisten 127.0.0.1
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force
Enable-PSRemoting -Force
這工作,我能夠通過執行
測試Test-WSMan {computername}
我現在想通過Invoke-Command
執行命令行EXE並期待着與該腳本創建日誌文件條目。
Invoke-Command –ComputerName MyServer –ScriptBlock {
Start-Process "C:\TheRemotePath\ToTheExe.exe"
}
PowerShell不顯示任何錯誤。但是,沒有生成日誌文件。我對exe的目錄以及日誌文件目錄擁有完整的權限。我能夠通過Windows資源管理器成功運行exe(導航到遠程exe文件並雙擊運行)。
任何想法爲什麼這似乎不工作,或者我可以使用什麼工具來嘗試和診斷?
您希望創建什麼日誌,以及在哪裏?你確定日誌文件不是在不同的地方創建的嗎?在運行可執行文件之前,您是否嘗試過'Set-Location「C:\ some \ folder」'?你是否嘗試了調用操作符而不是'Start-Process'? –
該exe有一個配置(使用log4Net登錄)來記錄。它當前登錄在exe文件所在的目錄中。我沒有嘗試過。我會很快嘗試。我認爲這個exe運行在它所在的目錄(在服務器上)。這不是這種情況嗎? (我能夠將一個文件回顯到目錄,所以我知道這不是權限問題。PS C:\ Windows \ system32> Invoke-Command - 計算機名稱myServer -ScriptBlock {回聲測試> C:\ Playground \ log \ test.tx}) – rlev
'$ PSScriptRoot'和'$ PWD.Path'不一定是相同的,不是。 –