注意需要在bois里启用legacy boot,disable secure boot,但是如果有启用bitlocker,禁用secure boot后,bitlocker会无法从TPM中读取秘钥。HP x360接了docking后,是可以通过网线pxe boot的,但是注意这时候docking会提供一个40开头的MAC地址。在Windows 10里,则会自动禁用掉40开头MAC地址的网卡,启用另一个MAC 80开头的网卡,非常奇怪。

安装时,注意一次性安装掉Certification Authority和Certification Authority Web Enrollement,在配置时注意根证书时效设置长一点。

 

安装完毕后,参考下面的链接,在一台客户端上生成一张SAN证书。

/www.namecheap.com/support/knowledgebase/article.aspx/9854/how-to-generate-a-csr-code-on-a-windowsbased-server-without-iis-manager

 

访问/caservername/certsrv,选择“Request a certificate”,”advanced certificate request”, “Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file. “, 把上一步生成的CSR文件的内容paste进“Saved Request”中,Certificate Template 选“web server”, 点击Submit

然后就可以下载证书了,注意如果浏览器提示无法下载,把CA 网站加入到浏览器的trust site即可。

通常我们看到,很多linux服务器在登录之后,显示一尊大佛的样子,很酷!以下介绍设置的方法:
  1. 普通linux,centos,凝思等, 是直接修改/etc/motd文件
  2. ubuntu是/etc/update-motd.d/

//////////////////////////////////
/ _ooOoo_ /
/ o8888888o /
/ 88″ . “88 /
/ (| ^_^ |) /
/ O\ = /O /
/ ____/`—‘\____ /
/ .’ \\| |/ `. /
/ / \\||| : |||/ \ /
/ / _||||| -:- |||||- \ /
/ | | \\\ – // | | /
/ | \_| ”\—/” | | /
/ \ .-\__ `-` ___/-. / /
/ ___`. .’ /–.–\ `. . ___ /
/ .”” ‘< `.___\_<|>_/___.’ >'””. /
/ | | : `- \`.;`\ _ /`;.`/ – ` : | | /
/ \ \ `-. \_ __\ /__ _/ .-` / / /
/ ========`-.____`-.___\_____/___.-`____.-‘======== /
/ `=—=’ /
/ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /
/ 佛祖保佑 永无BUG 永不修改 /
//////////////////////////////////

在 hyper-v cluster中要启用hyper-v replica,必须添加一个叫hyper-v replica broker的role,注意这个role会使用cluster的计算机账户在同OU下新建这个role的计算机账户,所以cluster计算机账户必须有在自己的OU里创建的权限。

Python open() 函数

Python 内置函数 Python 内置函数

python open() 函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。

更多文件操作可参考:Python 文件I/O。

函数语法

open(name[, mode[, buffering]])

参数说明:

  • name : 一个包含了你要访问的文件名称的字符串值。
  • mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
  • buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

不同模式打开文件的完全列表:

模式描述
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

Python 转义字符

在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:

原始字符串

有时我们并不想让转义字符生效,我们只想显示字符串原来的意思,这就要用r和R来定义原始字符串。如:

print r'\t\r'

实际输出为

“\t\r”

 

转义字符描述
\(在行尾时)续行符
\\反斜杠符号
\’单引号
\”双引号
\a响铃
\b退格(Backspace)
\e转义
\000空
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\oyy八进制数yy代表的字符,例如:\o12代表换行
\xyy十进制数yy代表的字符,例如:\x0a代表换行
\other其它的字符以普通格式输出

 

u/U:表示unicode字符串
不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。
一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。
建议所有编码方式采用utf8

r/R:非转义的原始字符串
与普通字符相比,其他相对特殊的字符,其中可能包含转义字符,即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示Tab等。而如果是以r开头,那么说明后面的字符,都是普通的字符了,即如果是“\n”那么表示一个反斜杠字符,一个字母n,而不是表示换行了。
以r开头的字符,常用于正则表达式,对应着re模块。

b:bytes
python3.x里默认的str是(py2.x里的)unicode, bytes是(py2.x)的str, b”“前缀代表的就是bytes
python2.x里, b前缀没什么具体意义, 只是为了兼容python3.x的这种写法

/docs.microsoft.com/en-us/iis/application-frameworks/install-and-configure-php-applications-on-iis/using-fastcgi-to-host-php-applications-on-iis#configure-iis-to-handle-php-requests-by-using-the-command-line

/docs.microsoft.com/en-us/iis/application-frameworks/install-and-configure-php-on-iis/install-and-configure-php

 

 

首先,必须确保SMB共享是3.0版本以上的,可以访问一下SMB共享,然后运行:

PS C:\WINDOWS\system32> Get-SmbConnection

PS C:\WINDOWS\system32> Get-SmbConnection

ServerName ShareName UserName Credential Dialect NumOpens
———- ——— ——– ———- ——- ——–
hpacserver shared COM.CN\cboyuan 2.1 1
ISIVIP backup COM.CN\cboyuan 3.0 1
ISIVIP LANDESK_PATH COM.CN\cboyuan 3.0 5
ISIVIP work COM.CN\cboyuan 3.0 57
ODWDC2 root COM.CN\cboyuan 3.0.2 1

会列出访问的SMB共享的版本。

然后,需要准备两台Windows Server 2016,注意由于Hyper-V 2016支持 Nested Virtualization,可以在一个VM里再启用Hyper-V,但是在启用Cluster后,节点切换时会有访问SMB存储的问题。

这两台win2k16先启动Hyper-V,然后完成所有配置,包括:

  1. VM配置文件和存储的Path指向SMB共享,Hyper-V会自动把计算机账户加到NTFS上去,不过这里有个BUG,权限继承只有this folder and subfolder, 没有files,这会导致Cluster节点切换问题,需要手动把权限改成Full Control 和this folder/subfolder/files
  2. 所有的网卡IP配置,然后启用虚拟交换机,注意Hyper-V的虚拟交换机trunk是自动的,vlan ID是在虚拟机的网卡上指定的。
  3. 系统补丁打到最新
  4. 启动Windows Cluster 功能,把两个节点加进去。Cluster会自动识别出群集网卡和心跳网卡。
  5. 把Cluster 的计算机账户也加到SMB共享的NTFS权限里去,具体权限和节点一样。

这样基本就完成了,Hyper-V在没有SCVMM的情况下,基本上HA、live migartion等重要功能都在。

注意:

Windows Server在打了某个补丁以后,live migration 时目标节点会自动去修改SMB共享的NTFS权限,解决方法是创建一个全局安全组,把所有节点和群集名称节点放进去,然后给予这个安全组完全控制权限,具体可以参考:

Zygopteris

使用WSUS推送补丁的时候,经常会碰到只希望服务器下载补丁,然后在某一特定的时间点触发补丁安装行为,现在可以用PowerShell脚本实现这个功能了。

首先需要从下面的链接里下载Module:

/gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc

解压到一个共享文件夹里,使用如下的Powershell脚本来触发Windows的补丁安装行为:

$dir=test-path C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PSWindowsUpdate
if ($dir -eq $false){
md C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PSWindowsUpdate
xcopy \\software\PSWindowsUpdate C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PSWindowsUpdate
}

Import-Module PSWindowsUpdate

Get-WUInstall -AcceptAll -AutoReboot

这个脚本主要做以下的事情:

  1. 检查Module是否存在,如果不存在从共享中拷贝
  2. 导入module
  3. 把所有打的补丁都打了并自动重启

你也可以细化需要更新的补丁,比如把KB号写到一个List中,然后使用 -KB 来导入

Create the deployment for Maya 2017

  • To create a deployment you will need the full installer of Maya 2017. Download the full installer of Maya 2017 from our Virtual Agent or through the Autodesk Account via Browser Download
  • When the installation wizard start, select Create Deployment
  • In the Configuration step, specify a name for the deployment image and the path where it will be stored.
Note: Make sure to check the option  Run installations in silent mode
  • Click Next and complete the following steps in the wizard, then the deployment creation process will start
  • Wait for the process to finish and then close the wizard

Start the silent install for Maya 2017

  • Go to your deployment image path (previously specified during deployment wizard), e.g. E:\Deployments\maya2017
  • Go to the folder SMS_SCCM scripts and open the file <deployment_name>_SCCM.txt, e.g. maya2017_SCCM.txt
  • Notice line 5 of the text file – this would be the command line to use for the silent install, see image below
  • Open a command prompt as administrator (clic Start, type CMD, right-click and select Run as administrator)
  • Type the following command​s
  • cd  <deployment_path> and press ENTER
    .\Img\Setup.exe /W /q /I Img\maya2017.ini /language en-us and press ENTER
    • The silent install will start – wait for it to finish and then you will be able to launch Maya 2017 from the Desktop icon