08/15
20:10
日记

PXE-E32:TFTP open timeout

公司一车间用Cisco三层交换机做的DHCP服务器,配了option 66、67。但是客户端无法pxe启动,报PXE-E32:TFTP OPen timeout错误。通过wireshark抓包,发现DHCP Offer有option 66,67 。

添加next-server tftpserver-ip后可以正常启动了。

PXE-E32:TFTP open timeout

02/26
21:58
日记

重置Windows中Linux子系统用户密码

Windows10应用商店提供了Linux子系统,可以直接安装,省得自己弄虚拟机了,很是方便。平时都是直接命令行直接进入,不用输入密码,今天需要提升权限却发现密码忘记了。因为是子系统,所以与正常重置密码操作有些不同。大致原理就是:
1. 切换默认登录用户为root
2. 登录root(不用输入密码),重置用户密码
3. 切换回原来使用的用户

之前的操作方法是:

#在Windows上用管理员权限打开 CMD 或者 PowerShell(win+x,A) 修改默认登录用户为 root :
lxrun /setdefaultuser root
#现在登录打开 WSL 直接就是 root 登录,并不需要密码
#修改用户密码
passwd your_username
#将默认登录用户由 root 修改回普通用户
lxrun /setdefaultuser your_username

我装的是Ubuntu,报错

警告: lxrun.exe 仅用于配置适用于 Linux 的 Windows 子系统的旧分发版。
可以通过访问 Windows 应用商店来安装分发版:

后来发现可以通过下面命令更改登录用户

ubuntu config --default-user  your_username

参考文档

Reset the Password in Linux Bash in Windows

重置Windows中Linux子系统用户密码

02/11
13:17
日记

无法通过别名访问文件共享

之前提到过可以通过DNS的Netmask Ordering服务实现几台服务器通过相同的别名实现就近获取服务器资源。详见此页面

但是后来发现了一个问题,Windows 7 或Windows 10 访问都正常,唯独Windows Server一直报错。如下图所示

用户名或密码错误

原因是Server的Service Principal name认证失败。

解决方法

在这几个服务器上执行下面其中一个命令

NETDOM COMPUTERNAME %computername% /ADD cname

或者

Reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "DisableStrictNameChecking" /t REG_DWORD /d "1" /f

参考文档

SMB file server share access is unsuccessful through DNS CNAME alias

无法通过别名访问文件共享

01/22
22:05
日记

Outlook报错:Cannot verify user information at the time

Outlook部分邮件启用MS RMS加密。部分用户无法打开加密的邮件,报Cannot verify user information at the time错误。

解决方案

  1. 点击添加帐号,重新添加该邮箱帐号 — 无效
  2. 重装Office365 Pro套件 — 无效
  3. 新建一封加密邮件,选择下载模板 — 竟然可以了

可能的原因

怀疑是网络或哪里问题,没有下载证书,发邮件的时候更新了证书。

Outlook报错:Cannot verify user information at the time

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_3DViewStation\3DVS.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\Kisters\3dview-%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\Kisters\3dview-%computername%.log /LicensePath="\\shcm01\SCCM_Software\Kisters_3DViewStation\3DVS.lic"

Kisters_3DViewStation 静默安装