2016-11-14 77 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!就是这样。谢谢 ! ! ! ! –