V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jamesarch
V2EX  ›  问与答

如何用 VBS 或者 BAT 脚本创建宽带连接和关闭 UAC

  •  
  •   jamesarch · 2015-04-25 15:30:55 +08:00 · 3639 次点击
    这是一个创建于 3535 天前的主题,其中的信息可能已经有所发展或是发生改变。

    呐 各位大牛牛牛牛,事情是这样子的,因为每天我的工作呢,就是要给新机都要安装相同的软件包,创建宽带连接,关闭UAC,卸载预装杀毒软件,俗话说不想做好售后的程序员不是一个好攻城狮的那么问题来了,如何用脚本处理呢?
    总结一下需求哈:

    1.关闭UAC
    2.安装软件
    3.创建宽带连接
    4.卸载预装杀毒软件

    • 第一条现在都是调用windows\system32里面的UserAccountControlSettings.exe 然后手动关闭=。=,网上没找到UAC的参数,所以每次都要手动关闭

    • 第二条呢,直接安装顺序执行,静默安装
      WPS.exe /S
      xxx.exe /S
      如此类推

    • 第三条到现在还是一步一步手动创建实在找不到手册,MSDN那么大,也没找到相应的手册。

    • 第四条也是手动卸载的 没找到方法。

    额 说说目前没做到的吧,就两个,也是最主要的两个。
    第一个是关闭UAC,因为有个版本问题,Win7版本的是Ghost版本 默认就关闭了,所以不用调用UserAccountControlSettings.exe,而Win8需要手动关闭,所以打算用bat里面的if语句调用ver命令判断版本号,win7是 7600 或者7601 win8是7900,该怎么写额

    第二个就是创建宽带连接,之前在网上找到过一个VBS脚本是用VBS写的,但是图标不对,代码现在也找不到了,记得里面是调用xxx.dll之类创建的,求大牛指点

    至于最后卸载默认杀毒软件这一块,调用程序里的参数应该也可以吧?因为店里90%的机器预装的都是迈克菲,也不知道怎么查看参数,如果太麻烦就算了吧。


    零零散散的写了那么多,也不太会用Markdown排版,求各位大牛指教,3Q~~~

    第 1 条附言  ·  2015-04-26 09:12:32 +08:00
    3Q各位大牛,弱弱再问下,怎么查看某个程序的参数,有没有相应的工具之类的,cmd里面只有一部分程序非GUI的程序输入 /?是有帮助提示的,可是一部分有GUI程序就没有,额额 有没有相应的工具可以查看呢
    25 条回复    2015-04-27 18:47:46 +08:00
    likaci
        1
    likaci  
       2015-04-25 15:34:16 +08:00   ❤️ 1
    配置一样的话,GHOST最快。
    jamesarch
        2
    jamesarch  
    OP
       2015-04-25 15:38:42 +08:00
    @likaci 额 考虑过,但是呢 配置都不一样,但是!!!机器型号都不一样,而且90%都是预装win8,极少一部分是没有系统的
    oott123
        3
    oott123  
       2015-04-25 16:01:17 +08:00   ❤️ 1
    我记得创建宽带连接是有一个连接本文件,具体是什么忘记了……
    卸载应该是找 uninst.exe 之类的文件……

    其实你可以试试按键精灵的……
    zkd8907
        4
    zkd8907  
       2015-04-25 16:02:31 +08:00   ❤️ 1
    我们公司内部是搞了个Windows域,所有安全策略都是通过服务器直接下发。只要把机器入域以后就不需要再处理了。
    jamesarch
        5
    jamesarch  
    OP
       2015-04-25 16:22:46 +08:00
    @oott123
    迈克菲这种杀毒软件很奇葩的………… 没有uninstall之类的 好像是通过DLL调用的,按键精灵也考虑过,不同的电脑分辨率不一样,所以有时候按键精灵也可能不太好用
    @zkd8907
    额 你说的有点太大了,应该涉及服务器这些知识了………… 不过还是3Q
    oott123
        6
    oott123  
       2015-04-25 16:26:43 +08:00
    @jamesarch 按键精灵找图找色,或者抓窗口遍历控件取 Text 再发消息什么的……
    普通窗口做起来应该挺容易的还。

    至于卸载 Mcafee,我找到了这个: http://us.mcafee.com/apps/supporttools/mcpr/mcpr.asp (via: https://service.mcafee.com/FAQDocument.aspx?id=TS101331 ),可以试试看。
    likaci
        7
    likaci  
       2015-04-25 16:27:05 +08:00   ❤️ 1
    如果一开始系统就是lz装的,建议直接备份配置好的镜像。然后还原就行了,现在基本上除了硬盘模式会导致蓝屏,其他驱动装一下就好了。
    ----
    如果是别人装好的系统,或者不想重新装系统。
    1.UAC 注册表可以关
    3.如三楼所说 是在 c:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk 纯文本里
    直接追加文本, 然后用 rasphone.exe -d 连接名 去执行就可以
    ----
    学下AHK不错,写个单文件exe很简单。AAuto听说也不错,具体没试过
    我是学AHK入的坑我会到处说嘛
    oott123
        8
    oott123  
       2015-04-25 16:29:33 +08:00   ❤️ 1
    宽带连接我找到了这个 https://support.microsoft.com/en-us/kb/169115/zh-cn
    虽然文章有点老,但关键的文件 %SystemRoot%\System32\Ras\Phonebook.pbk 应该没变……不过我也不太确定,思路你可以参考下。
    shierji
        9
    shierji  
       2015-04-25 17:06:51 +08:00   ❤️ 1
    你需要网络部署。。。。
    sysprep 然后搭一台Windows服务器。搞Windows部署服务。
    jamesarch
        10
    jamesarch  
    OP
       2015-04-25 17:25:49 +08:00
    @likaci 额 弱弱的问下 AHK是啥 只找到AAuto

    @oott123
    迈克菲的还没试 既然是官网的应该可以
    @likaci
    UAC通过注册表可以即时生效么? 会不会需要管理员权限啥的
    至于宽带连接 可以创建快捷方式么 额 …………
    wbbim
        11
    wbbim  
       2015-04-25 17:39:44 +08:00 via iPhone   ❤️ 1
    到IT天空學習下怎麼封裝windows鏡像
    jamesarch
        12
    jamesarch  
    OP
       2015-04-25 17:43:32 +08:00
    @shierji …………sysprep 好高深的样子
    @wbbim 封装镜像…… 以前折腾过,但是问题就是预装系统 这个是没法改的
    hx1997
        13
    hx1997  
       2015-04-25 17:58:46 +08:00 via Android
    UAC 可以注册表关,但是脚本需要用管理员权限运行。
    crab
        14
    crab  
       2015-04-25 18:07:26 +08:00
    创建拨号链接 RasSetEntryPropertiesA
    shierji
        15
    shierji  
       2015-04-25 18:16:08 +08:00
    先搞定一台电脑然后以这台电脑为蓝本。用sysprep生成一个镜像。。。然后通过Windows部署服务把其他的都重装一次
    Earthman
        16
    Earthman  
       2015-04-25 20:08:36 +08:00 via Android
    @shierji 我也正想这么说呢
    xierch
        17
    xierch  
       2015-04-25 20:15:45 +08:00
    宽带连接那个,其实就是一个文本文件
    有两个,一个是系统的,所有用户共享
    一个是当前用户的
    建好然后复制过去就好了
    g00001
        18
    g00001  
       2015-04-26 00:32:03 +08:00   ❤️ 1
    AAUTO创建宽带连接的代码
    在IDE中输入 inet.ras.setEntry 可以自动完成下面的代码。
    =========================

    import inet.ras
    inet.ras.setEntry(
    type = 5/*_RASET_Broadband*/;
    fOptions = 0x10/*_RASEO_RemoteDefaultGateway*/
    | 0x1000000/*_RASEO_PreviewUserPw*/
    | 0x4000000/*_RASEO_ShowDialingProgress*/
    | 0x100/*_RASEO_ModemLights*/
    | 0x100/*_RASEO2_ReconnectIfDropped*/ ;
    fOptions2 = 0x2000000/*_RASEO2_CacheCredentials*/
    | 4/*_RASEO2_DontNegotiateMultilink*/;
    deviceType = "PPPoE";
    deviceName = "WAN 微型端口 (PPPOE)";
    entryName = "ADSL宽带连接"
    )

    其他的,打开useraccountcontrolsettings.exe
    =========================
    import process
    process.execute("useraccountcontrolsettings.exe")

    安装
    =========================
    import process
    process.execute("/exe目录/WPS.exe", "/S")

    卸载
    =========================
    import win.reg;
    import process;
    var reg = win.reg( "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\需要卸载的软件ID" );
    var uninstallString = reg.queryValue("UninstallString")
    process.execute(uninstallString)
    jamesarch
        19
    jamesarch  
    OP
       2015-04-26 09:50:43 +08:00
    @g00001 3Q 代码都贴出来了 ,不过还是有两点疑问,第一个就是输入完宽带连接的代码之后为什么点运行没有翻译,只是宽带连接代码
    第二个就是卸载软件的ID到哪去找 在哪里获取
    jamesarch
        20
    jamesarch  
    OP
       2015-04-26 09:52:54 +08:00
    @xierch 宽带连接的快捷方式复制我刚才试过,无效 好像对应一个随机ID,还有就是网络连接里面的宽带连接怎么复制…………
    g00001
        21
    g00001  
       2015-04-26 11:57:39 +08:00   ❤️ 1
    @jamesarch “没有翻译”?你是说没有编译?
    如果是生成EXE文件,需要新建一个工程,然后在 main.aau 里写源码,然后按“发布 [F7] ”生成EXE文件就行了。

    关于第二个问题卸载软件的ID: 实际上一般软件安装以后,会把自己的卸载参数写在注册表里,一个是HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\下面,一个可能是 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

    也就是在 [控制面板/安装卸载] 这里面看到的可卸载程序,所以可以在注册表里查到,可以用AAuto代码获取所有可卸载程序:

    import console;
    import win.reg;

    var reg = win.reg("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\")
    for(softId,writetime in reg.eachKey() ){
    var softReg = reg.openReg(softId);
    console.log(softId, ( softReg.queryValue("UninstallString") ) )
    }

    var reg = win.reg("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\")
    for(softId,writetime in reg.eachKey() ){
    var softReg = reg.openReg(softId);
    console.log(softId, ( softReg.queryValue("UninstallString") ) )
    }

    console.pause(true);
    g00001
        22
    g00001  
       2015-04-26 12:23:24 +08:00
    AAuto代码,在注册表中直接关闭UAC( EXE本身需要管理员权限运行)

    import win.reg;
    var regUac = win.reg("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System")
    regUac.setDwValue("ConsentPromptBehaviorAdmin",0)
    regUac.setDwValue("PromptOnSecureDesktop",0)
    regUac.setDwValue("EnableLUA",0)
    regUac.close()
    jamesarch
        23
    jamesarch  
    OP
       2015-04-26 17:59:42 +08:00
    @g00001 额 打错了,是没有反应,刚才建立工程试了下生成exe是可以的,但是没反应
    试了下你那个卸载程序的程序,没想到看到了卸载程序的参数, 再次感谢
    xierch
        24
    xierch  
       2015-04-27 16:50:51 +08:00   ❤️ 1
    @jamesarch 不是快捷方式,是 .pbk 文件,楼上有提到
    jamesarch
        25
    jamesarch  
    OP
       2015-04-27 18:47:46 +08:00
    @xierch
    3Q 了解了 我再研究下吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1360 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:41 · PVG 01:41 · LAX 09:41 · JFK 12:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.