精华内容
下载资源
问答
  • Windows 10 封装普通EXE为系统服务

    千次阅读 2018-08-22 00:35:51
    Windows 10 封装普通EXE为系统服务 Windows服务是指Windows操作系统中一种运行在后台计算机程序。它在概念上类似于Unix/Linux守护进程,一个标准的Windows服务必须匹配...SC.exe 为Windows系统自带工具,可对W...

    Windows 10 封装普通EXE为系统服务

    Windows服务是指Windows操作系统中的一种运行在后台的计算机程序。它在概念上类似于Unix/Linux守护进程,一个标准的Windows服务必须匹配服务控制管理器(SCM)(负责管理Windows服务的组件)的接口规则和协议,处理服务控制管理器(SCM)的启动、停止和暂停消息。

    SC

    SC.exe 为Windows系统自带工具,可对Windows系统服务进行创建查询启动停止删除等操作。
    注意: sc.exe 只支持操作服务控制管理器(SCM)接口规范的系统服务. 一般的网络服务进程如shadowsocks, nginx 等无法作为服务直接启动,需要用到接下来提到的服务封装器.

    SrvAny.exe

    SrvAny.exeWindows Resource Kit中一个特殊组件。可以作为服务封装器来处理预期的服务接口(例如处理service_start,然后响应service_started或service_failed)并允许配置任何可执行文件或脚本作为一个服务。

    示例

    这里以shadowsocks为示例:

    Step 1

    首先以SrvAny.exe作为封装器创建一个名为”shadowsocks”系统服务框架, 服务暂时还无法使用, 具体的shadowsocks运行配置稍后通过注册表详细配置.

    sc create "shadowsocks" binPath=C:\Go\bin\srvany.exe type= own start= auto DisplayName= "shadowsocks"

    sc query 查询服务状态为STOPPED.

    sc query shadowsocks
    
    SERVICE_NAME: ss_59488
            TYPE               : 10  WIN32_OWN_PROCESS
            STATE              : 1  STOPPED
            WIN32_EXIT_CODE    : 0  (0x0)
            SERVICE_EXIT_CODE  : 0  (0x0)
            CHECKPOINT         : 0x0
            WAIT_HINT          : 0x0

    Step 2

    运行regedit, 定位到以下KEY:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\shadowsocks

    右击”shadowsocks”项, “新建”->”项”, 创建Parameters子项.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Services\Parameters

    Step 3

    Parameters子项下添加”shadowsocks”运行配置:

    名称 类型 描叙
    AppDirectory REG_SZ 运行目录
    Application REG_SZ 运行exe路径
    AppParameters REG_SZ 运行exe参数

    当服务控制管理器(SCM) 通知SrvAny.exe 封装器启动时, SrvAny.exe将查找注册表以上配置,启动指定Application .

    Step 4

    sc start shadowsocks
    SERVICE_NAME: shadowsocks
            TYPE               : 10  WIN32_OWN_PROCESS
            STATE              : 2  START_PENDING
                                    (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
            WIN32_EXIT_CODE    : 0  (0x0)
            SERVICE_EXIT_CODE  : 0  (0x0)
            CHECKPOINT         : 0x0
            WAIT_HINT          : 0x7d0
            PID                : 31452
            FLAGS
    sc query shadowsocks
    SERVICE_NAME: shadowsocks
            TYPE               : 10  WIN32_OWN_PROCESS
            STATE              : 4  RUNNING
                                    (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
            WIN32_EXIT_CODE    : 0  (0x0)
            SERVICE_EXIT_CODE  : 0  (0x0)
            CHECKPOINT         : 0x0
            WAIT_HINT          : 0x0

    其他封装器

    SrvStart

    https://github.com/rozanski/srvstart

    winsw

    https://github.com/kohsuke/winsw

    NSSM

    推荐使用, 只需运行命令即可通过图形界面完成配置, 具体可访问 the Non-Sucking Service Manager.

    nssm install <servicename>

    Windows Service Manager (SrvMan)

    http://tools.sysprogs.org/srvman/

    Resource

    Windows Resource Kit

    Resource_Kit Wiki

    展开全文
  • Windows】系统封装

    2017-06-10 21:13:30
    1、通过VMware或Hyper-V的虚拟化软件,对虚机进行克隆操作,克隆出来的虚拟机,Windos系统的SID是一样的,可以在cmd里面,通过whoami /user 命令,...sysprep可以打开系统自带的SID更新工具。4、按照下图选择,打勾...

    1、通过VMware或Hyper-V的虚拟化软件,对虚机进行克隆操作,克隆出来的虚拟机,Windos系统的SID是一样的,可以在cmd里面,通过whoami /user 命令,查看当前SID。


    2、同样的SID,在加入AD域情况下,会冲突,导致加入AD域不成功,因此需要对SID进行重新生成。


    3、运行->sysprep可以打开系统自带的SID更新工具。


    4、按照下图选择,打勾,重启。进入系统后进行初始化设置即可使用。

    wKioL1k78GTCX-imAAAbV7crqAg433.png-wh_50



    转载于:https://blog.51cto.com/fanshengliang/1934131

    展开全文
  • vLite是一款非常简单实用第三方封装软件,因其可以有效地给Vista光盘减肥并创建自己个性化iso安装盘,而Windows7安装光盘与Vista采用相同封装方式,故而vLite更多是用于配置和精简windows7,方便、易用,需要...
  • Sysprep工具封装系统

    2011-03-05 18:18:01
    全篇参阅《Windows Server 2008 WDS...使用系统自带的系统准备工具sysprep重新封装系统 1、确保您计算机上拥有正确版本的 Sysprep.exe。 Win2000系列系统准备工具下载以及 利用系统准备工具对Win2000进行克隆 2...

    全篇参阅《Windows Server 2008 WDS(完整逻辑版)》

        ----本篇只涉及有关创建自定义安装映像中利用光盘自带系统准备工具封装系统部分

    使用系统自带的系统准备工具sysprep重新封装系统
    1、确保您计算机上拥有正确版本的 Sysprep.exe。
       Win2000系列系统准备工具下载 以及 利用系统准备工具对Win2000进行克隆

    2、在安装参考计算机系统的原版光盘里的\SUPPORT\TOOLS目录下,找到DEPLOY.CAB文件包,并将面的文件全部提取到参考计算机C盘Sysprep目录(新建)下(包含 Sysprep.exe 和 Setupcl.exe )

    如果要执行无人值守的完全自动安装可以先运行setupmgr.exe进行应答文件配置

    3、双击 Sysprep.exe 使用 Sysprep 图形用户界面
    (注意:〉如果是Vista 的计算机上,可以运行命令 sysprep /oobe /generalize /reboot
            〉如果是XP ,可以运行sysprep -mini -reseal)
     
    随后选择“重新封装”选项。


    确认重新生成SID。

    下一次从克隆磁盘或原始磁盘启动 Windows XP时,会发生下列事件:

    1. Setupcl.exe 会启动,然后生成一个新的 SID。
    2. 最小安装向导会启动以自定义新的计算机。

    转载于:https://blog.51cto.com/pbssw/507382

    展开全文
  • 以前写过一个MVC框架,封装的有点low,经过一段时间的沉淀,打算重新改造下,之前这篇文章封装过...裸装php,用php自带的服务器解释执行php,缺哪个扩展就装哪个,最后通过整个MVC框架的开发,把Lamp所有的常用配置...

    以前写过一个MVC框架,封装的有点low,经过一段时间的沉淀,打算重新改造下,之前这篇文章封装过一个验证码类。

    这次重新改造MVC有几个很大的收获

    >全部代码都是用Ubuntu+Vim编写,以前都是windows上开发,这次彻底迷上Ubuntu Linux

    >裸装php,用php自带的服务器解释执行php,缺哪个扩展就装哪个,最后通过整个MVC框架的开发,把Lamp所有的常用配置与细节搞懂

    >通过扩展安装,学习扩展开发与php底层源码分析

    总之,终于感觉层次又提升了不少。

    分页类代码:

      1 <?php
      2     
      3 class Page {
      4     //每页显示的条目
      5     protected $pageSize;    
      6     //总记录数
      7     protected $totalRecord;
      8     //当前页
      9     protected $p;
     10     //总页数
     11     protected $totalPage;
     12     protected $url;
     13 
     14     public function __construct( $_pageSize, $_totalRecord ){
     15         $this->pageSize = $_pageSize;
     16         $this->totalRecord = $_totalRecord;        
     17         $this->totalPage = ceil( $this->totalRecord / $this->pageSize );
     18         $this->p = $this->getCurPage();
     19         $this->url = $this->getUrl();
     20     }
     21 
     22     public function setUrl( $p ){
     23         if( strstr( $this->url, '?' ) ) {
     24             //url中有参数
     25             $url = $this->url . '&p=' . $p;
     26         }else {
     27             //url中没有参数
     28             $url = $this->url . '?p=' . $p;
     29         }
     30         return $url;
     31     }
     32 
     33     //首页
     34     public function firstPage(){
     35         return $this->setUrl( 1 );
     36     }
     37 
     38     //末页
     39     public function lastPage(){
     40         return $this->setUrl( $this->totalPage );
     41     }
     42 
     43     //上一页
     44     public function prevPage(){
     45         if( $this->p - 1 <= 0 ) {
     46             $prevPage = $this->p;
     47         }else {
     48             $prevPage = $this->p - 1;
     49         }
     50         return $this->setUrl( $prevPage );
     51     }
     52 
     53     //下一页
     54     public function nextPage(){
     55         if( $this->p + 1 > $this->totalPage ) {
     56             $nextPage = $this->p;
     57         }else {
     58             $nextPage = $this->p + 1;
     59         }
     60         return $this->setUrl( $nextPage );
     61     }
     62 
     63     //得到当前的页码
     64     public function getCurPage(){
     65         $curPage = intval( $_GET['p'] );
     66         if ( empty( $curPage ) ) {
     67             $curPage = 1;
     68         }else if ( $curPage > $this->totalPage ) {
     69             $curPage = $this->totalPage;
     70         }else if ( $curPage < 0 ){
     71             $curPage = 1;
     72         }
     73         return $curPage;
     74     }
     75 
     76     //拼接url
     77     public function getUrl(){
     78         $protocol = strtolower( array_shift( explode( '/', $_SERVER['SERVER_PROTOCOL'] ) ) );
     79         $host = $_SERVER['SERVER_NAME'];
     80         $port = $_SERVER['SERVER_PORT'];
     81         $uri = $_SERVER['REQUEST_URI'];
     82         $uriArr = parse_url( $uri );
     83         $path = $uriArr['path'];
     84         if( !empty( $uriArr['query'] ) ) {
     85             //url中的query字符转数组
     86             parse_str( $uriArr['query'], $args );
     87             //清除原来的分页参数p
     88             if( isset( $args['p'] ) ){
     89                 unset( $args['p'] );
     90             }
     91             //参数重新拼接成字符串
     92             $queryString = http_build_query( $args );
     93             //字符串如果不止一个p参数,把那些参数拼接在path的后面
     94             if ( !empty( $queryString ) ){
     95                 $path .= '?' . $queryString;
     96             }
     97         }
     98         return $protocol . '://' . $host . ':' . $port . $path;
     99     }
    100 
    101     public function render(){
    102         return [
    103             'first' => $this->firstPage(),
    104             'last' => $this->lastPage(),
    105             'prev' => $this->prevPage(),
    106             'next' => $this->nextPage()
    107         ];
    108     }
    109 
    110     public function limit(){
    111         $offset = ( $this->p - 1 ) * $this->pageSize;
    112         return $offset . ',' . $this->pageSize;
    113     }
    114 }
    115 
    116 $page = new Page( 5, 11 );
    117 //echo $page->getCurPage();
    118 //echo $page->getUrl();
    119 print_r( $page->render() );
    120 
    121 ?>

     

    展开全文
  • NTLite 是一款专业于Windows平台的系统精简工具,NTLite主要面对系统封装人员使用,比如各大下载站及GHO镜像下载站,Windows系统二次精简封装打包使用,NTLite可以对系统进行极致精简和优化,可以删除掉系统自带的...
  • [2010.10.14][封装工具][天空作品] Easy Sysprep v3 RC3(+ SkySRS3.00) 来源:自由天空技术论坛,原文链接:http://sky123.org/thread-26640-1-1.html Easy Sysprep v3 简介 1、欢迎使用 (1)ES3目前支持WinXP ...
  • 今天做实验用到多台虚拟机,可是不想一台一台的建,就想到VMW的拆分多个虚拟机,可是那样做,系统的SID就会一样,想到用系统自带的sysprep工具,擦除SID信息,完后再重新封装。在2008_R2系统安装已经把工具放到C盘了...
  • 系统在不升级的情况下封装是没问题的,但是,使用了系统自带的windows update升级补丁等后,再进行sysprep的封装就报错,想请问是哪里出了问题,需要怎么操作解决,求帮助,谢谢!以下是整个日志的报错信息:2020-07...
  • rhel8下虚拟机封装

    2020-08-06 16:14:38
    文章目录首先你得有所要创建虚拟机镜像,来创建出一台母机对母机进行安装接着对母机进行仓库、网络配置,以方便后边虚拟机克隆使用对母...在linux中会自带虚拟机管理工具,我这里使用rhel8,系统自带 打开 Vir
  • 系统在不升级的情况下封装是没问题的,但是,使用了系统自带的windows update升级补丁等后,再进行sysprep的封装就报错,想请问是哪里出了问题,需要怎么操作解决,求帮助,谢谢!以下是整个日志的报错信息:2020-07...
  • 微软自带系统封装工具SYSPREP,可以方便快捷地进行企业产品部署,但是在WINDOWS LONGHORN之前,运用SYSPREP有一个限制,就是仅适用于用于封装源计算机和目标计算机必须具有相同硬件抽象层 (HAL),因此,不同网友...
  • 本文实例讲述了python通过ssh-powershell监控...但是现在windows上如果安装了powershell(win7,2008自带),就比以前方便多了,linux上命令基本都能在powershell里执行,比如查看进程还是ps. 自己封装了一个python通
  • 关于系统封装讲解

    2015-09-11 09:23:01
    S&R&S_V9.5.1118 智能系统封装工具 ※ DEPLOY.CAB(在系统安装光盘:\SUPPORT\TOOLS目录下自带) ※ Ghost_v8.0 & v8.2(v8.0以上版本才能够支持NTFS分区) ※ Windows2K/XP/2003系统安装光盘(推荐使用免激活版本...
  • 系统封装 ghost

    2010-04-08 01:19:00
    S_V9.5.1118 智能系统封装工具※ DEPLOY.CAB(在系统安装光盘:\SUPPORT\TOOLS目录下自带)※ Ghost_v8.0 & v8.2(v8.0以上版本才能够支持NTFS分区)※ Windows2K/XP/2003系统安装光盘(推荐使用免激活版本)※...
  • 系统封装教程

    2007-05-03 00:20:23
    S_V9.5.1118 智能系统封装工具※ DEPLOY.CAB(在系统安装光盘:\SUPPORT\TOOLS目录下自带)※ Ghost_v8.0 & v8.2(v8.0以上版本才能够支持NTFS分区)※ Windows2K/XP/2003系统安装光盘(推荐使用免激活版本)※...
  • 六、重新封装打包 系统重新封装可采用系统安装光盘自带的企业部署工具包 DEPLOY.CAB 里的 Sysprep.exe 对系统直接进行重新封装:在C盘根目录建立一个名为 sysprep 的文件夹,注意:必须是 sysprep ;将 Windows 安装...
  • 官网下载超慢的,还是**网盘,这个是用wepe32位工具正常封装Windows 10 PE,完全没有任何病毒,也没有修改,里面壁纸是自带的,包含Max Dos,没有密码。 官方解释: 微PE工具箱生成ISO镜像后也不会产生过多的文件...
  • Wix是一个Free全脚本打包工具,是和MSI每个指令一一对应,所以比较原始,如果你不想很深入研究MSI,那么你就去用Installer Sheild,这个工具够傻瓜,并且把MSI里面细节都封装好了,只需按照向导就可以完成...
  • Sc封装工具简介 Sysprep Chief Executive Officer 意为系统封装首席执行官,简称Sc,由系统总裁网站(http://www.sysceo.com/)开发研制,是一款面对Windows操作系统封装一款辅助工具,界面友好、简单易用、智能...
  • 有的电脑装完系统时自带的看图工具是ACDsee, 有些人用着不习惯,还是喜欢用windows的图片查看器, 想恢复其实很简单,它是封装在 shimgvw.dll 里面的。 可以通过运行输入框中输入“regsvr32 /u shimgvw....
  • MP3音频处理录音工具软件是一个免费跨平台(包括Linux、Windows、Mac OS X)音频编辑器。你可以使用它来录音,播放,输入输出WAB、AIFF、Ogg Vorbis和MP3文件,并支持大部份常用的工具,如剪裁、贴上、混音、升/降...
  • MP3音频处理录音工具软件是一个免费跨平台(包括Linux、Windows、Mac OS X)音频编辑器。你可以使用它来录音,播放,输入输出WAB、AIFF、Ogg Vorbis和MP3文件,并支持大部份常用的工具,如剪裁、贴上、混音、升/降...
  • 当然,也可以使用系统自带的服务管理器操作和使用系统的命令。 修改参数: NSSM安装的服务修改起来非常方便,命令如下: nssm edit 会自动启动操作界面,直接更改即可。 服务删除: 服务删除可以使用...
  • 秋之盒是一个对命令行工具进行图形化封装的微软视窗操作系统应用。 “方便小白,帮助老鸟” 技术关键字:C#/ .NET 5 / WPF / ADB 支持操作系统:Windows 7-Windows 10 运行环境/框架技术: .Net 5 (发布时已自带...
  • xp封包工具

    2012-11-20 19:56:15
    1、WinXP下,默认导入系统自带的磁盘控制器驱动 2、部署增强组件,默认改为“使用部署进度条” 3、整合SkySRS3.06 [2011.7.15] Easy Sysprep v3.1 Final 1、相比RC3版本,未作重大改动 2、修正XP下部分HID设备无法...
  • .NET3.5有什么用?当你安装CAD失败时候你就知道了。新买的笔记本没有这个系统组件。原装系统也没这个组件。有时候封装系统要离线操作,而系统自带的WINDOWS功能需要联网才能安装.NET3.5。

空空如也

空空如也

1 2 3 4 5
收藏数 91
精华内容 36
关键字:

windows自带的封装工具