Archive

Posts Tagged ‘Windows’

Windows Server 2012 GUI与Core的切换

December 19th, 2016 No comments

使用Hyper-V方案对服务器进行虚拟化实验,为了节省时间和提高安全性,安装Windows Server 2012 时直接安装成Microsoft Server 2012 Core。安装完毕后只有一个cmd命令提示符可以用。服务器管理各种不方便,考虑切换为GUI模式后再切换为Core模式。

切换GUI模式需要手动安装Windows Server的GUI组件
Server-Gui-Mgmt-Infra
Server-Gui-Shell
使用
Install-WindowsFeature
Uninstall-WindowsFeature
命令即可完成Windows功能的安装和删除

Read more…

w_char*和char *转换宽窄字符

June 29th, 2016 No comments

w_char*和char*在windows编程过程中进行转换是经常需要的,通常由互联网我们取到都是utf-8编码,到windows应用程序里面却需要用unicode编码。
一开始用stdlib.h 下wcstombs_s和mbstowcs_s的代码实现,发现总是转换失败和出错。
char 转 WCHAR 、wchar_t、LPWSTR ,窄字符转宽字符,C++代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//+------------------------------------------------------------------+
//| char to WCHAR 、wchar_t、LPWSTR etc                              |
//+------------------------------------------------------------------+
static char* WStr2CStr(const wchar_t* WStr)
  {
             // 长度设置
              size_t len = wcslen(WStr) + 1;
              size_t converted = 0;
              // 准备转换的对象
              char *CStr;
              CStr=(char*)malloc(len*sizeof(char));
              // 转换
              wcstombs_s(&converted, CStr, len, WStr, _TRUNCATE);
              // 返回
              return CStr;
  }

Read more…

Categories: 语言编程, 零敲碎打 Tags: , ,

Windows下实现Deamon守护脚本

June 28th, 2016 No comments

最近需要在Windows服务器上保持程序长期允许,因为程序比较老,无法用srvany.exe 改写成windows服务,只能自己手动编写守护脚本实现,网上找了短比较靠谱的守护脚本,在此mark一下。支持监视进程、端口。

守护脚本定义部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
 
::检测时间间隔,单位:秒
set _interval=5
 
::需要守护的进程名称
set _processName=ProcessName
 
::需要守护的进程启动命令
set _processCmd=C:\xxxx.exe
 
::需要守护的进程预估启动完毕所需时间,单位:秒
set _processTimeout=10
 
::需要守护的进程所监听的端口
set _port=8080
 
::进程用户名,一般是Administrator
set _username=Administrator

Read more…

Categories: 零敲碎打 Tags: , ,

[Redis] 解决Redis运行时Cannot save in background问题

August 28th, 2015 No comments

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

Redis运行时经常出现 Cannot save in background. 问题,通常因为两个原因
1.Redis的占用的内存过大,导致BGSAVE时系统无法分配足够的内存给BGSAVE进程而导致错误。
碰到这种情况时,你可以这样操作,限制Redis的最大内存大小到系统内存的一半以内。
设置redis的内存可以在redis.conf 中修改 maxmemory 属性

1
   maxmemory  # 系统实际安装内存的一半以内,实验环境的话建议不要超过1/3

Read more…

强制清空系统本地DNS缓存

July 29th, 2015 No comments

本地DNS缓存被GFW污染时,需要手动强制清理本地的DNS缓存。通常只需要修复一下网络连接即可。使用命令方式处理也很简单,下面是Windows/Mac OS/Linux/Unix环境下使用命令强制清空系统本地DNS缓存的方法。

1.Windows环境下,可以使用以下命令:

1
ipconfig /flushdns

2.Mac OS X 环境下,通常可以使用以下命令:

1
sudo dscacheutil -flushcache

Read more…

进入Windows管理的SYSTEM用户状态获得超级权限

June 14th, 2012 No comments

对于windows用户而言,administrator用户级别的权限几乎不会有任何操作限制,但是打开任务管理器,会存在一个或多个SYSTEM用户的进程,而且大部分SYSTEM用户的进程都无法结束和停止,SYSTEM用户是Windows操作系统的内置系统用户,所在权限组为NT_AUTHOR。 对计算机用户而言,获取SYSTEM用户权限可以完成更多的系统级别的操作和管理,不过使用SYSTEM用户的操作和修改会引发系统问题,使用SYSTEM用户需慎重。

Read more…