修复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

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是若海[mail@anrip.com]使用DOS命令编写的,生成供Nginx使用的数字证书的小工具。

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

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

下载附件: SSLCertKit

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

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

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

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

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

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

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

windows 2003 无法使用扫描仪

在 windows 2003 安装好扫描仪驱动,但在我的电脑里就是看不到扫描执行程序。这是出于安全原因,没有开启扫描仪程序支持,这个时候只需要开启 Windows Image Acquisition (WIA) 服务即可(为扫描仪和照相机提供图像捕获。)

批量下载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<mail@anrip.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<mail@anrip.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 as $xm) {
      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);
  }
}
?>

批处理检测是否已安装VC2008运行库

在做iServer批处理版控制台时写了2种方法,测试环境WindowsXP/2003/Vista/7(x86)。这里给出来,供大家参考:

方法一:
这只是简单的检测,并不保证运行库完整可靠性,至于检测其他版本的运行库,可以修改find后面的字符串来实现。

@echo off
echo. && echo 测试VC++运行库...
dir %windir%\WinSxS | find /i /c "Microsoft.VC90" >nul || (
  echo 测试失败,尚未安装VC++2008
)
pause

方法二:
通过注册表搜索已注册的卸载信息来获取安装状态,相对比较准确,只是对微软更新比较敏感,需要随时更新注册信息。

@echo off
set "HKLMU=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
reg query %HKLMU%{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4} >nul 2>nul && set VC2008=Microsoft Visual C++ 2008 Redistributable X86
reg query %HKLMU%{9A25302D-30C0-39D9-BD6F-21E6EC160475} >nul 2>nul && set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable X86
reg query %HKLMU%{1F1C2DFC-2D24-3E06-BCB8-725134ADF989} >nul 2>nul && set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable ATL Security Update X86
reg query %HKLMU%{350AA351-21FA-3270-8B7A-835434E766AD} >nul 2>nul && set VC2008=Microsoft Visual C++ 2008 Redistributable X64
reg query %HKLMU%{8220EEFE-38CD-377E-8595-13398D740ACE} >nul 2>nul && set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable X64
reg query %HKLMU%{4B6C7001-C7D6-3710-913E-5BC23FCE91E6} >nul 2>nul && set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable ATL Security Update X64
reg query %HKLMU%{2B547B43-DB50-3139-9EBE-37D419E0F5FA} >nul 2>nul && set VC2008=Microsoft Visual C++ 2008 Redistributable IA64
reg query %HKLMU%{5827ECE1-AEB0-328E-B813-6FC68622C1F9} >nul 2>nul && set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable IA64
reg query %HKLMU%{977AD349-C2A8-39DD-9273-285C08987C7B} >nul 2>nul && set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable ATL Security Update IA64
if defined VC2008 (
  echo 已安装 %VC2008%
) else (
  echo 未安装 VC2008
)
pause

批处理检测本地网络是否可用

在做xServer批处理版控制台时写了这个方法,这里给出来,供大家参考:

:check_network
  echo. && echo 测试网络环境...
  ping 127.0.0.1 -n 2 >nul || (
    echo 测试失败,请检查网络连接.
    goto check_network
  )
  goto :EOF

本程序用于检测本地网络是否可用,不可用将循环检测,直到可用跳出循环。