Powershell:从“ NET共享”或“ Remove-SmbShare”重定向输出

时间:2018-06-28 08:16:14

标签: powershell windows-10

我要删除所有共享并将命令的输出存储在变量中

希望您能帮助我!

如何删除共享?

  Invoke-Expression "Remove-SmbShare -Force -Name $name"

  NET SHARE $name /delete 

谢谢!

编辑:

我知道我可以将输出重定向到文件,但是我确实希望它将其直接重定向到变量。

 NET SHARE i$ /delete *> "C:\workspace\output.txt"

为什么我要通过Powershell删除共享? 通过公司规则强制分享股票,我想在登录后直接删除它们

1 个答案:

答案 0 :(得分:0)

如果您在Powershell部分中询问是否应使用可执行文件或Commandlet,答案很明显:Commandlet。

Remove-SmbShare不会生成成功执行的输出,因此您必须解决该问题。

您可以做的是这样的:

$names = "TestShare","TestShare2"
$success = @()
foreach($name in $names){
    try {
        Remove-SmbShare $name -force -Erroraction Stop
        $success += $true
    } catch {
        $success += $false
    }
}

然后,您将拥有两个带有相应索引的数组。另外,您也可以像这样$success += "$name $true"一样向成功数组添加一个字符串,但是您可以自己弄清楚它。