我有一个PowerShell脚本,该脚本通过从AD中提取数据并使用其中包含变量的docx模板并将变量替换为我们从AD中提取的字符串来自动为所有员工生成签名。
我们的广告结构会自动在地址末尾添加一些额外的数据(123 Main Street楼层:01室:01),但是大多数员工没有楼层或房间号,因此我们希望将其从输出中删除正在发送给签名。
使用相同的令牌,我们的广告结构现在将+1添加到所有电话号码的开头(即+1(XXX)XXX-XXXX),我们希望从所有签名中删除+1。
关于如何从AD中提取字符串,删除字符串之前/之后不需要的内容并将其根据需要输出到签名的任何建议?
我尝试了使用split,-split和replace的各种方法,并且无法获得字符串输出,只能获得类似于“ System.Object []”的输出
这就是我们要提供的地址:
$ADStreetAddress = $ADUser.streetaddress -Replace "Floor.*"
If ($ADStreetAddress -ne '') {
$FindText = "StreetAddress"
$ReplaceText = $ADStreetAddress.ToString()
}
Else {
$FindText = "StreetAddress"
$ReplaceText = $DefaultAddress
}
在上面的脚本之后,如果我输入$ ADStreetaddress,它将为我提供所需的输出,但是当我尝试运行脚本来替换文本时,它将用System.Output []而不是实际的字符串替换文本。正在尝试输出。预先感谢大家的帮助。
答案 0 :(得分:0)
要删除+1,我将使用trim()
$TheirPhone.trim("+1 ")
将所有内容保留在Floor之前。尝试使用:
$TheirAddress.substring(0,$TheirAddress.IndexOf('Floor'))