2017-06-12 20 views
1

我的問題是,當UPS告訴我的家庭服務器存在停電時,我需要向我的NAS發送關閉命令。我想通過使用(Windows 10 Home)PC服務器的閉鎖通知來完成此操作,該通知可以觸發批處理文件作爲閉鎖事件的一部分,而不是使用額外的硬件。我已經確定打開一個特定的URL會導致NAS優雅地關閉。在無人蔘與的批量控制下打開HTTPS URL

https://192.168.1.10/get_handler?PAGE=System&OUTER_TAB=tab_shutdown&INNER_TAB=NONE&shutdown_option1=1&command=poweroff&OPERATION=set

的問題似乎與試圖繞過導致瀏覽器的對話。首先它要求憑證。

啓動 「」 「C:\ Program Files文件\ Mozilla Firefox的\ firefox.exe」 「https://username:[email protected]/get_handler?PAGE=System&OUTER_TAB=tab_shutdown&INNER_TAB=NONE&shutdown_option1=1&command=poweroff&OPERATION=set

現在我可以通過將其包括在URL中調用,這樣繞過這個它彈出一個對話,要求我確認我想以「用戶名」的身份登錄,再次擊敗我試圖使其無人看管的行爲(我可能在停電時會出現在任何地方)。有沒有解決的辦法?僅供參考,我放棄了試圖與Microsoft Edge合作,因爲它通過在任何地方插入空格來將URL參數分割成幾部分。每次我嘗試時,它都會不停地手動抱怨安全證書。我想我也會在瀏覽器中遇到同樣的確認請求問題。所以我需要一種方法來抑制所有這些對話,並只進行URL調用。請任何想法?

回答

0

這個問題在24小時內發佈後沒有任何答案告訴我,這是一個棘手的問題&讓我不斷嘗試。在我嘗試了所有可以用Window自己的工具集解決問題並且沒有發現任何工作的時候,我意識到我需要額外的東西來解決問題。最後,我放棄並安裝了免費的Autohotkey,並編寫了一個腳本來完成整個工作,包括處理對話框。一旦它全部正常工作,我爲腳本創建了一個可執行文件,以便從關閉批處理(.bat)文件中輕鬆調用它。此解決方案有效。這是任何腳本誰需要解決類似的問題:

> runWait, C:\Program Files\Mozilla Firefox\firefox.exe 
> https://admin:[email protected]/get_handler?PAGE=System&OUTER_TAB=tab_shutdown&INNER_TAB=NONE&shutdown_option1=1&command=poweroff&OPERATION=set 
> 
> #Persistent SetTimer, MsgBoxCheck, 3000 return 
> 
> MsgBoxCheck: If WinExist("ahk_class MozillaDialogClass") { 
> SetControlDelay -1 ControlClick, , Confirm, SetTimer, 
> MsgBoxCheck, off exitApp } else { SetTimer, MsgBoxCheck, off 
> MsgBox, 4, , Debug - No Confirm Window Found. exitApp } return 

請注意,以使非Mozilla程序,你需要改變ahk_class參數這項工作。我建議你使用Windows Spy來確定要關閉的窗口類。您還需要將'確認'更改爲您窗口的標題。

+0

我也看過你的帖子以獲得答案。能夠通過我從bat文件執行的幾行powershell代碼完成它。 LMK如果你想要的話。 – RGuggisberg

+0

謝謝Guggisberg,但是Autohotkey解決方案工作正常,並且它不需要我學習'powershell' - 另一個我不擅長的技術 - 但是謝謝你的提議! – Frankie