判断服务是否启动的脚本

@echo off

for /f “skip=3 tokens=4” %%i in (‘sc query WebClient’) do set “zt=%%i” &goto :next

:next

if /i “%zt%”==”RUNNING” (

echo 该服务在运行,将不进行任何操作

) else (

echo 该服务现在处理停止状态,将进行启动

net start WebClient

)

另存为bat文件

转载至https://www.iteye.com/blog/zhangwei2012-1876691

远程桌面连接没有授权服务器提供许可证会话中断

在Windows2012服务器中, 相信使用过远程桌面连接来登陆服务器的,都会遇到过这样的错误提示:“由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员联系”,原因就是在Windows server 2012服务器中,微软默认的 远程登录只提供120天的使用期限,所以远程登录的使用期限一到就自然用不了远程桌面连接了。

方法/步骤
打开运行,在运行中输入注册表命令“regedit”,然后回车通过命令打开注册表对话框,操作如图所示:


在注册表对话框中依次打开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod”,操作如图所示:

在这里要删掉注册表中的“GracePeriod”这一项,由于删掉注册表中的任何一项需要获取管理员的权限,所以在删掉“GracePeriod”之前,应该配置一下删除“GracePeriod”的管理员权限,具体操作如图所示:


获取管理员权限之后,再进行删除操作,如图:


删除“GracePeriod”这一项后,为了使注册表及时生效,此时要重启系统。

重启完成后就可以正常使用远程桌面来登陆服务器了。

转至https://jingyan.baidu.com/article/ceb9fb1070557f8cad2ba0b8.html

VBA调用javascript(一)

函数接口

Function execJSFunc(filePath, funcName)
    Dim code
    Open filePath For Input As #1
    Do While Not EOF(1)
        Line Input #1, tmpCode
        code = code & tmpCode & Chr(13)
    Loop
    Close #1
 
    Set JS = CreateObject("ScriptControl")
    JS.Language = "JScript"
    JS.AddCode code
    Dim result
    result = JS.run(funcName, ThisWorkbook)
    execJSFunc = result
End Function

调用封装

Sub run(funcName)
    Dim path, fileName, pos, result
    path = ThisWorkbook.path
    pos = InStr(4, ThisWorkbook.Name, ".", 1)
    pos = Len(ThisWorkbook.Name) - 4
    fileName = Mid(ThisWorkbook.Name, 1, pos - 1)
    path = path + "" + fileName + ".js"
    result = execJSFunc(path, funcName)
    Debug.Print result
End Sub

调用示例

Sub 按钮1_Click()
    run("hello")
End Sub

test.js源码

function hello(workbook) {
    var sheets = workbook.sheets;
    sheets("Sheet1").range("a3").value = 55555;
    return workbook.sheets.count;
}

在x64 OFFICE中使用ScriptControl控件的方法

Sub Test()  
    Dim oSC As Object  
    Set oSC = CreateObjectx86("MSScriptControl.ScriptControl") ' create ActiveX via x86 mshta host  
    Debug.Print TypeName(oSC) ' ScriptControl  
    With oSC  
        '操作oSC  
    End With  
    CreateObjectx86 , True ' close mshta host window at the end  
End Sub
Function CreateObjectx86(Optional sProgID, Optional bClose = False)  
    Static oWnd As Object  
    Dim bRunning As Boolean  
    #If Win64 Then  
        bRunning = InStr(TypeName(oWnd), "HTMLWindow") > 0  
        If bClose Then  
            If bRunning Then oWnd.Close  
            Exit Function  
        End If  
        If Not bRunning Then  
            Set oWnd = CreateWindow()  
            oWnd.execScript "Function CreateObjectx86(sProgID): Set CreateObjectx86 = CreateObject(sProgID): End Function", "VBScript"  
        End If  
        Set CreateObjectx86 = oWnd.CreateObjectx86(sProgID)  
    #Else  
        Set CreateObjectx86 = CreateObject("MSScriptControl.ScriptControl")  
    #End If  
End Function
Function CreateWindow()  
    Dim sSignature, oShellWnd, oProc  
    On Error Resume Next  
    sSignature = Left(CreateObject("Scriptlet.TypeLib").GUID, 38)  
    CreateObject("WScript.Shell").Run "%systemroot%\syswow64\mshta.exe about:""about:<head><script>moveTo(-32000,-32000);document.title='x86Host'</script><hta:application showintaskbar=no /><object id='shell' classid='clsid:8856F961-340A-11D0-A96B-00C04FD705A2'><param name=RegisterAsBrowser value=1></object><script>shell.putproperty('" & sSignature & "',document.parentWindow);</script></head>""", 0, False  
    Do  
        For Each oShellWnd In CreateObject("Shell.Application").Windows  
            Set CreateWindow = oShellWnd.GetProperty(sSignature)  
            If Err.Number = 0 Then Exit Function  
            Err.Clear  
        Next  
    Loop  
End Function

内网穿透FRP在windows系统里开机自启的几个方法

方法一:
创建一个快捷方式到 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 里面
这个方法最大缺点是电脑要登录后才能连接,所以一般不用这个方法

方法二:
用计划任务实现,方法看这里 http://diannaobos.com/post/405.html
不过我用这个方法启用多个frp会有奇怪的问题,所以我不用这个方法

方法三:
用winsw将frp注册为系统服务
这个方法最稳定,这是我最终用的方法。
下载winsw https://github.com/kohsuke/winsw/releases ,改名为winsw.exe,放到frp相同的目录里,在同一个目录里创建一个utf8编码的文本文件,文件名是 winsw.xml,内容是:

<service>
    <id>frp</id>
    <name>frp这里是服务的名称</name>
    <description>这里是服务的介绍,随便写</description>
    <executable>frpc</executable>
    <arguments>-c frpc.ini</arguments>
    <onfailure action="restart" delay="60 sec"/>
    <onfailure action="restart" delay="120 sec"/>
    <logmode>reset</logmode>
</service>

以管理员权限打开一个命令窗口,cd到frp所在目录,执行:
winsw install
winsw start
大功告成!

如果要卸载服务,执行命令:
winsw stop
winsw uninstall

.Net 4在win7上安装失败的解决办法

解决方法:
  1、在桌面上找到“计算机”,单击右键选择“管理”。
  2、在打开的“计算机管理”窗口中依路径“服务和应用程序——服务”打开,在列表中找到“Windows Update”并单击右键选择“停止”。
  3、按住“Win+R”键打开运行对话框,输入cmd并回车,在打开的界面输入net stop WuAuServ回车(停止windows update服务),如图所示。
  4、按住“Win+R”键打开运行对话框,输入%windir%并回车,在打开的界面找到SoftwareDistribution文件夹并将其重命名为SDold,如图所示。
  5、此时再打开原来的“计算机管理”窗口中依路径“服务和应用程序——服务”打开,在列表中找到“Windows Update”并单击右键选择“启动”,此时再安装Microsoft .NET Framework 4.5\4.0的安装包就能顺利通过了。