从输出创建新脚本

时间:2017-05-02 13:18:34

标签: powershell

希望这对某人来说很容易,但我没有经验。我正在从PC上提取映射的网络驱动器信息。我正在测试路径,以确保它是活动的,并且该人仍然可以访问。测试工作正常。这是我的问题......

如果测试是$ true,我希望它输出一行代码到新的.ps1文件以重新映射驱动器。我想我就在那里,但我无法绕过输出一行代码而不是输出行。谢谢你的帮助!

foreach ($Drive IN $Drives)
{
    $MND = $Network.OpenSubKey("$Drive")
    $Share = $MND.GetValue("RemotePath")
    $Path = Test-Path "$Share\*"
    IF ($Path -eq $true)
    {
        $ErrorActionPreference = "SilentlyContinue"
        Stop-Transcript | out-null
        $ErrorActionPreference = "Continue"
        Start-Transcript -path C:\output.ps1 -append
        "New-PSDrive -Name "$Drive" -PSProvider FileSystem -Root "$Share" -Persist"
        Stop-Transcript
    }
}

1 个答案:

答案 0 :(得分:1)

根据您的评论,您可能不想使用Start-Transcript(因为您获得了许多您不想要的标题内容),而是输出到Out-File -AppendAdd-Content等文件。

您还需要删除可能不必要的内部双引号(或者您可以用单引号替换它们):

"New-PSDrive -Name $Drive -PSProvider FileSystem -Root $Share -Persist" | Add-Content c:\output.ps1

还值得检查您是否有权将文件写入C:\的根目录,默认情况下,对于以后版本的Windows中的非管理员,这会被阻止。