最近在使用Powershell 编码的时候发现一个问题,只要邮件中有中文字符的邮件执行脚本以后,我们发现收到邮件都是乱码,状况如下:
对比下Powershell脚本,我们将邮件的·ENCODING 加上去了,但是如果我们采用手写的会出现如下的错误:
产生这个问题的原因是在于我们定义的utf-8直接是一个字符串,他不是系统默认接受的字符,因此我们需要在我的PS脚本中定义出系统能够接受的数据类型,我们需要在参数中定义如下的系统类型:
然后我们再次发送邮件,发现已经正常了:
BAT普通传参方式(非
中文
)
curl 127.0.0.1:5000/login -X
POST
-d "dd=efwdfdfef&ee=3434&dfefe=3333333"
powershell
普通方式
$body = '{"users":["yang.sun"],"msg":"' + "
中文
字符
串" +'"}'
$params =[System.Text.Encoding]::UTF8.GetBytes($body)
curl 127.0.0.1..
Json
格式
解析可以利用递归的方式,主要的两大结构是数组和字典,所以利用这个规律交叉递归解析就可以了。
即字典
中
递归调用字典和数组解析,数组
中
递归调用字典和数组解析,这样无论
Json
数据有多少层,都可以完全解析出来,不需要提前知道整个数据结构的情况。
为了方便解析,这个
脚本
里面我们要求解析的
Json
的
格式
是标准的,需要用行进行数据的区分,例如下面这种数据
格式
:
"name": "
function getCpu($cpuInfo) {
$info_list = '['
get-wmiobject win32_processor | ForEach-Object {
$info_list = "$info_list{`"brand`":`"$($_.Manufacturer)`",`"model`":`"$($_.Name)`",`"threadSize`":`"$THREAD_SIZE`",`
为
PowerShell
脚本
添加数字签名的过程通常涉及以下几个步骤:
1. **获取证书**:首先,你需要有一个数字证书,这通常是通过购买或创建自签名证书。如果你有自己的证书服务器或信任的CA颁发的证书,可以
使用
那个。
2. **安装证书**:将证书安装到本地受信任的根证书 store
中
,这样Windows才能识别并验证它。
3. **签署
脚本
**:
使用
`Sign-Assembly` 或 `Set-AuthenticodeSignature`
PowerShell
cmdlet,将证书关联到
脚本
文件上。例如:
Set-AuthenticodeSignature -FilePath "D:\study\nodejs\node-v22.3.0-win-x64\npm.ps1" -CertificateThumbprint "证书的 Thumbprint"
确保替换 `FilePath` 为你想要签名的
脚本
路径,`CertificateThumbprint` 是你要
使用
的证书的哈希值。
4. **验证签名**:完成后,你可以
使用
`Get-AuthenticodeSignature` 来检查
脚本
是否成功签名,并验证签名的有效性。
5. **提示用户信任**:初次运行时,用户会收到提示询问他们是否信任这个签名,告诉用户这是为了保证
脚本
的安全性。
记得定期更新证书,因为过期的证书也会导致签名无效。