在powershell中使用netsh:为多个命令保存存储位置

时间:2012-08-16 09:06:41

标签: powershell dns location store netsh

我有一个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

1 个答案:

答案 0 :(得分:0)

使用此处字符串@" ... "@,您的脚本的每一行都在不同的行之间。并将命令传递给netsh

@"
winhttp show proxy
winhttp show proxy
"@ | netsh