Windows Server 2019 将评估升级到完整版

往往越是不重要的东西,越有可能起到关键作用~~~

要将 Windows Server 2019 EVAL 转换为完整版,我们需要使用对应的 GVLK(KMS)密钥

  • 将 Windows Server 2019 评估版 转换为 Windows Server 2019 标准版:
dism /online /set-edition:ServerStandard /productkey: N69G4-B89J2-4G8F4-WWYCC-J464C /accepteula
  • 将 Windows Server 2019 评估版 转换为 Windows Server 2019 数据中心版:
dism /online /set-edition:ServerDatacenter /productkey:WMDGN-G9PQG-XVVXX-R3X43-63DFG /accepteula

Linux 恢复删除的文件

Linux 下的命令可谓繁多,但属rm最让人痛并快乐。今天,我分享下针对rm的后悔良药testdisk

当你在 Linux 系统上删除一个文件时,它不一定(嗯,是不一定~)会永远消失,特别是当你最近才刚刚删除了它的时候。而恢复已删除文件的最佳工具之一testdisk可以帮助你拯救它。

虽然testdisk具有广泛的功能,包括恢复丢失或损坏的分区和使不能启动磁盘可以重新启动,但它也经常被用来恢复被误删的文件。有趣的是,它不仅是一个 Linux 工具,而且还适用于 MacOS、Solaris 和 Windows。文档可在 https://www.cgsecurity.org 中找到。

安装

# debian
apt install testdisk
# centos
yum install testdisk

恢复文件

cd /mnt/recovery
testdisk /dev/sdb2

然后,一路默认选项,直到选择 [ Advanced ] Filesystem Utils

接下来,查看选定的分区,用右箭头选择底部的 [ List ],按回车键。

最后,施展你的细心加耐心,仔细看好软件说明操作。

至此,若海也帮不到你更多了,只能在此祝你心想事成 !

修复PowerShell和服务器管理器

今天手残,把家里服务器的PowerShell给卸载了,结果悲催的发现服务器管理器也跟着消失了。查阅微软文档,得知如下修复方式,特此记录:

@echo off

:: .Net Framework 4.x
Dism /online /enable-feature /all/ featurename:Netfx4

:: PowerShell & PowerShellISE
Dism /online /enable-feature /all /featurename:MicrosoftWindowsPowerShell
Dism /online /enable-feature /all /featurename:MicrosoftWindowsPowerShellISE

Windows下从源码编译Nginx

在制作xServer集成环境Windows版过程中,发现官方编译版组件较少,故自行从源码编译了Nginx,下面为详细步骤。

一、下载如下文件

VS2008     http://download.microsoft.com/download/3/0/2/3025EAE6-2E15-4972-972A-F5B1ED248E85/VS2008ExpressWithSP1CHSX1504735.iso
Perl       http://strawberry-perl.googlecode.com/files/strawberry-perl-5.16.3.1-32bit.msi
Mercurial  http://mercurial.selenic.com/downloads/
MinGW      http://sourceforge.net/projects/mingw/files/latest/download

OpenSSL    http://www.openssl.org/source/openssl-1.0.1e.tar.gz
Pcre       http://nchc.dl.sourceforge.net/project/pcre/pcre/8.32/pcre-8.32.zip
Zlib       http://zlib.net/zlib-1.2.8.tar.gz

subs_filter   https://codeload.github.com/yaoweibin/ngx_http_substitutions_filter_module/zip/master

二、编译nginx

1、安装 VS2008、Perl、Mercurial,分别对应C++编译环境、Perl脚本运行时、Hg源码仓库客户端

2、安装MinGW管理器,添加MSYS模块,其他模块可以不安装,用于生成Makefile文件

a、使用 C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link.exe 替换 C:\MinGW\msys\1.0\bin\link.exe

b、编辑 C:\MinGW\msys\1.0\msys.bat 在@echo off下面加入:call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"

3、将 OpenSSL、Pcre、Zlib 分别解压到目录 c:\nginx\objs\lib{openssl-1.0.1e,pcre-8.32,zlib-1.2.8} 中

4、检出nginx源码,命令:hg clone –verbose — http://hg.nginx.org/nginx c:\nginx

a.编辑 c:\nginx\src\core\nginx.h 修改服务器名称

b.替换 c:\nginx\src\os\win32\nginx.ico 自定义软件图标

c.将 subs_filter 解压到 c:\nginx\objs\module\http_subs_filter
编辑文件 ngx_http_subs_filter_module.c,将 ngx_regex_compile_t rc; 移动到当前函数顶部,否则编译出错

5、把下面命令写入到c:\nginx\mkngx,然后在msys中执行该文件

    auto/configure --with-cc=cl --builddir=objs --prefix= --sbin-path=nginx.exe --conf-path=conf/nginx.conf \
        --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log \
        --http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp \
        --http-fastcgi-temp-path=temp/fastcgi_temp --http-scgi-temp-path=temp/scgi_temp --http-uwsgi-temp-path=temp/uwsgi_temp \
        --with-cc-opt=-DFD_SETSIZE=1024 --with-select_module --with-ipv6 --with-mail \
        --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module \
        --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module \
        --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module \
        --with-pcre=objs/lib/pcre-8.32 --with-zlib=objs/lib/zlib-1.2.8 --with-openssl=objs/lib/openssl-1.0.1e \
        --with-openssl-opt=enable-tlsext --with-http_ssl_module --with-mail_ssl_module \
        --add-module=objs/module/http_subs_filter

    mkdir objs/{conf,logs}
    nmake -f objs/Makefile

6、执行上述步骤时可能会提示找不到stdin.h文件

编辑 c:\nginx\objs\lib\pcre-8.32\config.h,删除如下内容

    #ifndef HAVE_INTTYPES_H
    #define HAVE_INTTYPES_H 1
    #endif

    #ifndef HAVE_STDINT_H
    #define HAVE_STDINT_H 1
    #endif

windows7用msg命令发送局域网消息

今天想给局域网的朋友发消息,竟然发现命令失败;谷歌之,原来XP时代的“net send”,在windows7中已用“msg”替代。

MSG {username | sessionname | sessionid | @filename | *}
    [/SERVER:servername] [/TIME:seconds] [/V] [/W] [message]

  username            标识指定的用户名。
  sessionname         会话名。
  sessionid           会话 ID。
  @filename           识别该文件,文件含有将所发消息发送到的用户名、会话名和会话标识号的列表。
  *                   给指定服务器上的所有会话发送信息。
  /SERVER:servername  要联系的服务器(默认值是当前值)。
  /TIME:seconds       等待接收器确认消息的时间延迟。
  /V                  显示有关执行的操作的信息。
  /W                  等待用户的响应,跟 /V 一起有用。
  message             要发送的消息。如果没有指定,发出提示,或者从 stdin 读取。

简单用法如下:
msg /server:局域网IP * 信息内容

延伸一个用用法,定时提示:
at 20:57 msg * 信息内容

Windows下生成SSL数字证书

SSLCertKit是若海[wang@rehiy.com]使用DOS命令编写的,生成供Nginx使用的数字证书的小工具。

SSLCertKit调用openssl来生成数字证书,生成的证书可以给Windows或Unix(Linux)下的Nginx使用,以支持HTTPS协议。

此工具使用于以下几种情况:
1、创建自己的RootCA和服务器证书
2、创建自签名的服务器证书
3、使用第三方签名服务器证书

下载附件: SSLCertKit

Windows下php-sendmail配置实现

Windows下使用php sendmail配置方法是否不太可能,但也不是绝路,现在告诉大家如何在WINDOWS平台下解决php sendmail配置问题.

大家非常好奇为什么别人大型公司的论坛注册后会系统自动发送一封注册信息的电子邮件到注册人的信箱里,而同样用的是一种内核的论坛程序,为什么自己架设的却没有这个功能,今天我来为大家解密这个原因。我们拿PHPBB来举例,这个论坛内核早已经写好了论坛邮件发送功能,只需要你本地有个SMTP转发的服务在就可以,由于大公司服务器大多数用的是UNIX或者是LIUNX,因为这些服务器本身具有本地SMTP服务的作用,所以可以直接发注册信息到注册人的邮箱里,而我们个人架设网站大部分都是WINDOWS的平台,由于ASP论坛非常不安全,而ASPX论坛又不好进行开源。

虽然这两种论坛架构非常容易运用些IIS的相关的SMTP服务器来解决问题,但都先天不足,很多网友都非常喜欢用PHP内核的论坛来架设,比如PHPBB、PHPWIND、等这些都是具备论坛发信功能,但由于PHP先天就是LIUNX的宠爱,所以WINDOWS下支持SMTP的东西不是很多.Windows下使用php sendmail配置方法是否不太可能,但也不是绝路,现在告诉大家如何在WINDOWS平台下解决php sendmail配置问题.

1.修改 sendmail.ini 文件,修改以下信息:

smtp_server = mail.rehiy.com
auth_username = user@rehiy.com
auth_password = passwd

2.修改 php.ini 文件,修改以下信息:

[mail function]
;smtp_port = 25
;sendmail_from =
sendmail_path = "E:\sendmail\sendmail.exe -t"
  1. 重新启动php进程,测试mail()功能:
<?php
    now = date("Y-m-d h:i:s");from_name = '寄件人';
    from_email =headers = 'From: from_name <from_email>';
    body = '嗨, \n 這是一封测试信件来自from_name <from_email>.';subject = '[now] 测试邮件发送';
    if (mail(to, subject,body, $headers)) {
        echo "success!";
    } else {
        echo "fail…";
    }
?>

这样,Windows下使用php-sendmail配置就顺利完成了!

Windows7的PAE(物理扩展内存)开启与关闭方法

1、客户机开启超级用户。

2、然后在开始=》运行=》输入cmd,然后输入以下命令即可开启或关闭PAE模式。

::开启PAE模式
bcdedit /set PAE forceenable
::关闭PAE模式
bcdedit /set PAE forcedisable

注意:该命令需要在管理员状态下运行。

3、执行完命令后,可以通过继续输入bcdedit来查看PAE开启状态。

4、此方法同样适用于 Windows Server 2008

批量下载Flash的外部资源文件(如QQ农场)

这段时间在研究“QQ农场”和“美图秀秀”的Flash版工作原理,需要下载一些资源文件,若手动下载那上千个文件,可想而知是多么庞大的工作量。为了偷懒,写了一个小程序(CMD+PHP)实现批量下载。

下面分别给出CMD代码和PHP代码,至于所需的php.exe和wget.exe文件,请自行百度搜索下载。

parse.cmd

@echo off
rem xml-url-downloader
rem create by anrip.wong<wang@rehiy.com>
cd /d %~dp0
echo. && echo 正在清理DAT目录...
if exist .\dat\ rd /s /q .\dat\
echo. && echo 正在分析XML文件...
.\bin\php.exe -n -q -f parse.php
echo. && echo 开始下载URL文件...
call .\dat\wget.bat
echo. && echo 操作完毕,按任意键退出...
pause >nul

parse.php

<?php
//xml-url-downloader
//create by anrip.wong<wang@rehiy.com>
get_xml_url('xml/', 'dat/');
//获取XML内的URL,并生成BAT脚本
function get_xml_url(dir,out) {
  xml = glob(dir.'*.xml');
  bat = "echo. && .\bin\wget.exe -xnv -P {out}";
  is_dir(out) || mkdir(out, 0777, true);
  if(!empty(xml) && is_array(xml)) {
    foreach(xml asxm) {
      preg_match_all('/url="(.*)"/U', file_get_contents(xm),match);
      if(!empty(match[1])) {
        foreach(match[1] as url) {txt .= "{bat} {url} \r\n";
        }
      }
    }
    file_put_contents(out.'wget.bat',txt);
  }
}
?>