我有一个powershell脚本,旨在通过向指定的过滤器列表添加ip地址来修改域的ipsec策略。问题是,在我的powershell脚本中运行netsh store location=domain domain=our.domain.com
时,它不记得以下命令的存储位置。我尝试了一种解决方法,创建了一个文本文件,然后从powershell运行netsh -f "path\to\textfile.txt"
,但它似乎不起作用。您将在下面找到相关的脚本块。域名设置正确,因为它直接在netsh中运行。
$command = "ipsec static
set store location=domain domain=our.domain.com
add filter filterlist=$FILTERLIST
protocol=ANY srcaddr=$ip
srcmask=255.255.255.255
dstaddr=ME
description='IP address blocked'
mirrored=YES"
$($command.Trim()) | out-file $($DIR+"\netsh\temp.txt")
netsh -f $($DIR+"\netsh\temp.txt")
remove-item $($DIR+"\netsh\temp.txt")
我还没有让它工作,但正如我即将这样做,很高兴知道是否有其他更好的工程解决方案。我正在运行PowerShell v.1.0
答案 0 :(得分:0)
使用此处字符串@"
... "@
,您的脚本的每一行都在不同的行之间。并将命令传递给netsh
@"
winhttp show proxy
winhttp show proxy
"@ | netsh