2016-11-14 49 views
1

問題答案..我已經編輯了這個問題的工作解決方案。通過PowerShell腳本定製協議處理程序


這是scenerio。 安裝了Jitsi VOIP軟件的Windows 10工作站。 我爲SIP協議處理程序:這個註冊表項..

Windows Registry Editor Version 5.00 
[HKEY_CLASSES_ROOT\sip] 
@="URL: SIP Protocol handler" 
"URL Protocol"="" 
[HKEY_CLASSES_ROOT\sip\DefaultIcon] 
@="C:\\Program Files (x86)\\Jitsi\\sc-logo.ico" 
[HKEY_CLASSES_ROOT\sip\shell] 
[HKEY_CLASSES_ROOT\sip\shell\open] 
[HKEY_CLASSES_ROOT\sip\shell\open\command] 
@="\"C:\\Program Files (x86)\\Jitsi\\Jitsi.exe\" %1" 

這部分工作。輸入sip:1234567890作爲運行命令撥打該號碼。

我想要做的是創建一個名爲CHK的新協議:對本地網絡服務器執行http請求,如果網絡服務器 以0響應,則撥打該號碼。如果響應是1,顯示消息「這個數字不能撥打」

這裏是註冊表項我爲這個新的CHK協議

Windows Registry Editor Version 5.00 
[HKEY_CLASSES_ROOT\chk] 
@="URL: CHK Protocol handler" 
"URL Protocol"="" 
[HKEY_CLASSES_ROOT\chk\DefaultIcon] 
@="C:\\Program Files (x86)\\Jitsi\\sc-logo.ico" 
[HKEY_CLASSES_ROOT\chk\shell] 
[HKEY_CLASSES_ROOT\chk\shell\open] 
[HKEY_CLASSES_ROOT\chk\shell\open\command] 
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" 
-File C:\\DNC\\dnc.ps1 %1" 

即使這幾乎等同於SIP REG由入門,當我嘗試運行chk:1234567890我得到一個錯誤「Apllication找不到」,所以 東西是不正確的開放命令....

編輯:我是對的,這是開放命令..我有在錯誤的地方報價

和dnc.ps1腳本的內容...

$w=$args[0] 

$chprot,$num = $w.split(':',2) 

$url = "http://server/numchk.php?ph=$num" 

$webclient = New-Object System.Net.WebClient 

$webpage = $webclient.DownloadString($url) 

if ($webpage -match "0"){ 

$launch = "C:\Program Files (x86)\Jitsi\Jitsi.exe" 
$prot = 'sip:' 
$arguments = $prot + $num 
start-process $launch $arguments   

} Else { 

$wshell = New-Object -ComObject Wscript.Shell 
$wshell.Popup("CANT DIAL $num ",0,"",0x0) 
} 

如果我運行通過運行命令的PowerShell腳本-noexit - 文件C:\ DNC \ dnc.ps1 CHK:1234567890
我可以看到腳本是做正確的事,撥號號碼,如果反應是零,如果響應爲1

再次出現無法撥號消息。我認爲這個問題是與註冊表項... specifilly命令/部分開放...

[HKEY_CLASSES_ROOT\chk\shell\open\command] 
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -File C:\\DNC\\dnc.ps1\" %1" 

一些伎倆p我想失去一個參數:

回答

1

我認爲你在錯誤的地方有一個報價,所以它不是在尋找「powershell.exe」,它正在尋找一個名爲「powershell.exe -File C」的文件:\ DNC \ dnc.ps1" 。

這是行不通的?

[HKEY_CLASSES_ROOT\chk\shell\open\command] 
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -File C:\\DNC\\dnc.ps1 %1" 
+0

BINGO!就是這樣。謝謝 ! ! ! ! –