01/18
19:09
日记

同一个域名在不同站点解析到最近的地址

公司目前在国内有3地4个B类网段,需要将同一个FQDN解析为当地的服务器的IP地址。发现微软DNS服务器提供的round robin和Netmask Ordering服务很好的解决了这个需求。

假设一个SRV记录对应多个IP地址。

  • 在DNS高级选项中,启用了“启用循环”后,DNS服务器就会循环返还各个服务器的IP地址。
  • 如果此时同时启用了“启用网络掩码排序”,那么DNS服务器将向客户端循环返回相同子网中的IP地址。若提供服务的A记录中,没有匹配的子网,此时将循环返回所有的服务器的IP地址。

启用网络掩码排序,默认是按照C网(255.255.255.0)来匹配子网的。但我们可以通过命令

dnscmd /config /localnetprioritynetmask 0x0000ffff

把子网匹配规则改变为以B网(255.255.0.0)

参考资料

  1. Description of the netmask ordering feature and the round robin feature in Windows Server 2003 DNS

同一个域名在不同站点解析到最近的地址

01/17
20:04
日记

Integrity Client静默安装

用户手册需要登录下载,摘抄一些备忘。

1. Configuring the Integrity Client Properties File

  1. Copy %serverinstalldir%/config/install/mksclient.properties from the Integrity server to the client installation target workstation
  2. Edit the workstation copy of the mksclient.properties file

2.Running the Silent Install

Install the Integrity client by doing one of the following:

  • on Windows:
mksclient -f mksclient.properties
  • on Unix variants:
./mksclient -f path/mksclient.properties

Where

  • -l locale specifies the locale, where locale: ja for Japanese, or en for English
  • -f path/mksclient.properties specifies the directory containing the mksclient.properties file, where path is the directory path to that file's location
    If the mksclient.properties is in the same directoru as the mksclient.exe, the -f flag and arguments may be omitted

附件

Configuring the Integrity Client Properties File

Integrity Client静默安装

12/1
23:02
日记

MangerEngine ServiceDesk Plus用starttls认证发送邮件

先说下目前的环境:

  • ServiceDeskPlus版本号是9.3构建号9317;
  • 邮件服务商是office365,发件认证使用starttls。

一般支持TLS的SMTP服务器可以这样配置:

  • 邮件类型:SMTPS
  • 启用传输层安全:Yes
  • 端口:587

但是office365使用的是starttls,这样配置是无法发送邮件的。需要有如下改动
ManageEngine\ServiceDesk\server\default\conf\wrapper.conf中在
wrapper.java.additional.27=-Dconnection.track=true
后添加
wrapper.java.additional.28=-Dmail.smtp.starttls.enable=true
邮件类型选择SMTP,如下图
SMTP配置界面
改好后重启一下服务器,我尝试重启过服务,但是没有生效。

参考资料1
The issue I was having with STARTTLS was caused by me getting a secure transport:

transport = session.getTransport("smtps");

After changing it to "smtp" i was able to use STARTTLS.

参考资料2
Edit the wrapper.conf and search for the line

wrapper.java.additional.18=-Duser.region=US

In the next line append the following text (Next line to the above line)

wrapper.java.additional.19=-Dmail.smtp.starttls.enable=true

Now you can restart the service and check it should work.

MangerEngine ServiceDesk Plus用starttls认证发送邮件

11/30
19:14
日记

获取UNC路径

一些脚本需要管理员权限运行,但是最终用户没有管理员权限,这时需要管理员使用其他用户身份运行。如果脚本是放在一个映射的驱动器里的话,管理员往往因为自身账户没有映射该网络位置而无法运行。所以为了方便起见,在脚本里直接检测自身UNC路径,然后用管理员身份运行该脚本。

set "_FilePath=%~f0"
if not "%~d0"=="\" call :getUNC
fltmc >nul 2>&1 || (
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\GetAdmin.vbs"
    echo UAC.ShellExecute "%_FilePath%", "", "", "runas", 1 >> "%temp%\GetAdmin.vbs"
    "%temp%\GetAdmin.vbs"
    del /f /q "%temp%\GetAdmin.vbs" >nul 2>&1
    exit
)
脚本正文
exit
:getUNC
FOR /F "tokens=3" %%i IN ('NET USE ^| FIND "%~d0"') DO (
   set NetworkPath=%%i)
SET "_FilePath=%NetworkPath%%~pnx0"

获取UNC路径

11/15
22:48
日记

解决Excel千分符只显示一个

情景:财务制作表单,有很多很大数字,需要千分符辅助识别。但是,Excel里面始终只显示一个千分符,例如,10000000,正常应该显示为10,000,000,但实际显示为10000,000

解决:问题不在Excel,而在系统设置上。逐步打“开控制面板”-“语言”-“更改日期、时间或日期格式” 在“格式”选项卡上点击右下角的“其他设置”,然后分别在“数字”和“货币”标签页上更改分组格式。然后保存,再打开Excel应该就正常了。

解决Excel千分符只显示一个

11/8
19:49
日记

Kisters_3DViewStation 静默安装

Kisters_3DViewStation是一款优秀的3d图纸查看软件。

Kisters_3DViewStation是用inno setup打包的,支持/silent、/verysilent等参数。测试发现,通过在安装包后添加/silent参数,可以完成安装,且不报错,但是第一次打开会提示没有许可。这时只要把许可证文件放到C:\Users\Public\Documents\Kisters\目录下即可。

mkdir C:\Users\Public\Documents\Kisters\
copy /V /Y \shcm01\SCCM_Software\Kisters_3DViewStationDVS.lic C:\Users\Public\Documents\Kisters\
\shcm01\SCCM_Software\Kisters_3DViewStation\Setup_3DViewStation_2017.0.102.20831.exe /silent /norestart /nocancel /log=\shfs\Public_Folder\IT\Tool\Logs\Kistersdview-%computername%.log

更新
发现安装包code部分有这一句[2670] ASSIGN Base[5], ['{param:LicensePath}'],只需添加/LicensePath这个参数即可。

Setup_3DViewStation_2017.0.102.20831.exe /silent /norestart /nocancel /log=\shfs\Public_Folder\IT\Tool\Logs\Kistersdview-%computername%.log /LicensePath="\shcm01\SCCM_Software\Kisters_3DViewStationDVS.lic"

Kisters_3DViewStation 静默安装

10/24
14:39
日记

授予一般用户编辑C盘根目录下文件的权限

一些软件比较恶心,就是要在C盘根目录放一个文件,然后还要编辑,否则不能运行。如果直接在文件上添加所需权限,还是会报拒绝访问。这时可以通过软连接来解决。

  1. 在其他位置新建一个文件,比如 D:\1.txt
  2. mklink C:\1.txt D:\1.txt

这样就在C盘根目录下建立了名为1.txt文件的软连接,可以直接编辑了。

授予一般用户编辑C盘根目录下文件的权限

09/6
21:52
日记

批量设置HP BIOS选项

公司的电脑由于安全原因,需要锁定BIOS的一些设置。但是如果每台电脑都输入N遍密码,重启N多遍的话,不仅浪费时间,还很容易出现问题。公司的电脑绝大部分是HP品牌,而HP公司很贴心的提供了一个命令行工具,可以在操作系统中更改BIOS设置,大赞。下面,我来分享一下我在安装系统过程中自动完成BIOS配置的操作过程。

机器:HP Z840 工作站 BIOS版本 02.34
操作系统:Windows 10
工具:HP BIOS Configuration Utility (BCU)

  1. 在一台电脑上完成所有BIOS选项的设置,然后登陆操作系统
  2. 在下载的工具的文件夹打开命令提示符,输入BIOSConfigUtility64 /get:settings.txt这样当前的机器的BIOS选项就导出到当前目录下的settings文件中。
  3. 第一行和最后一行不要动,删除无需更改的选项。
    注意,Product Name, System ID, Universal Unique Identifier, System Configuration ID, Processor Type, SKU Number, Warranty Start Date, Processor Speed, Memory Size, ROM Date, ROM BIOS Version, Serial Number, Video BIOS Revision等每个主机都不一样的选项请删除。
  4. 双击HPQPswd64.exe,输入密码,保存为pw.bin

    hppswk

  5. BIOSConfigUtility64 /set:settings.txt /nspwdfile:pw.bin保存到HPM60BoisSettings.cmd文件中。
  6. 在MDT中,新建一个application,把BIOSConfigUtility64,settings.txt ,HPM60BoisSettings.cmd,pw.bin放进去,comandline为 cmd /c HPM60BoisSettings.cmd

    mdtconfig

    然后任务序列新添一项install application,选中这个新建的application。

参考文档

BIOS_Configuration_Utility_User_Guide.pdf

批量设置HP BIOS选项

08/23
18:21
日记

Catia 部署脚本

分享一个Catia的部署脚本

@echo off&setlocal enabledelayedexpansion
:: Get Administrator Rights
set "_FilePath=%~f0"
fltmc >nul 2>&1 || (
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\GetAdmin.vbs"
    echo UAC.ShellExecute "!_FilePath!", "", "", "runas", 1 >> "%temp%\GetAdmin.vbs"
    "%temp%\GetAdmin.vbs"
    del /f /q "%temp%\GetAdmin.vbs" >nul 2>&1
    exit
)
::当前登录用户的Profile文件夹位置,如果没人登录,配置文件放到default用户下
set logonuser0=Default
for /f "skip=1 tokens=1" %%i in ('quser') do set logonuser0=%%i
set logonUserAppData=C:\Users\%logonuser0:>=%\AppData\Roaming\DassaultSystemes
::安装Catia
"\SHFS\Public_Folder\IT\Software\Catia\CATIA_P3_V5R21_Win64\WIN64\StartB.exe" -u C:\CatiaV5\R21 -ident R21 -newdir -D C:\CATEnv -addUserPrivilegesForOrbix -v -all -noreboot
msiexec /q /i %fileserver%Software\Catia\CATIA_P3_V5R21_Win64\VBA\vba6.msi
::配置CATReferenceSettingPath和CATUserSettingPath两个环境变量
xcopy \shfs\Public_Folder\IT\Software\Catia\ReferenceSettings C:\ProgramData\DassaultSystemes\ReferenceSettings /I /S /C /Y
"C:\CatiaV5\R21\win_b64\code\bin\chcatenv.exe" -e CATIA_P3.V5R21.B21 -a global -var CATReferenceSettingPath=C:\ProgramData\DassaultSystemes\ReferenceSettings
"C:\CatiaV5\R21\win_b64\code\bin\chcatenv.exe" -e CATIA_P3.V5R21.B21 -a global -var DSY_DISABLE_WININET=TRUE -new
xcopy \shfs\Public_Folder\IT\Software\Catia\CATSettings %logonUserAppData%\CATSettings /I /S /C /Y
"C:\CatiaV5\R21\win_b64\code\bin\chcatenv.exe" -e CATIA_P3.V5R21.B21 -a global -var CATUserSettingPath=CSIDL_APPDATA\DassaultSystemes\CATSettings
::写入许可证服务器信息
if not exist "C:\ProgramData\DassaultSystemes\Licenses\DSLicSrv.txt" mkdir "C:\ProgramData\DassaultSystemes\Licenses\"
echo lic.hida.in:4085 >"C:\ProgramData\DassaultSystemes\Licenses\DSLicSrv.txt"

Catia 部署脚本

06/29
20:03
日记

在DokuWiki中添加Skype for business的会话链接

希望在DokuWiki页面中,直接通过点击超链接发起Skype for business的会话。经查阅文档,知道

  • 发起SfB会话的命令是im:<sip:user1 @host>
  • xmpp:support@example.com?message在DokuWiki中是"interwiki link"
  • "interwiki link" 的配置文件是 "dokuwiki_conf/interwiki.local.conf"。注意,为了防止升级程序后配置文件被覆盖重置,要使用interwiki.local.conf这个文件名。

可以在"dokuwiki_conf/interwiki.local.conf",添加一行

    im im:<sip:{NAME}>

然后页面文件,添加

[name](im>me@hida.in)

显示样式类似 name

点击链接,会自动打开和me@hida.in的对话窗口。

参考文档

  1. Starting Lync from another application
  2. InterWiki Links

在DokuWiki中添加Skype for business的会话链接