0

我有一个 powershell 脚本,旨在通过将 ip 地址添加到指定的过滤器列表来修改域的 ipsec 策略。问题是netsh store location=domain domain=our.domain.com在我的 powershell 脚本中运行时,它不记得以下命令的存储位置。我尝试了一种解决方法,方法是创建一个文本文件,然后从 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

4

1 回答 1

0

使用 here 字符串@"..."@ 脚本的每一行都位于其间的单独行上。并将命令传递给netsh

@"
winhttp show proxy
winhttp show proxy
"@ | netsh
于 2017-01-24T00:31:36.373 回答