希望这对某人来说很容易,但我没有经验。我正在从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
}
}
答案 0 :(得分:1)
根据您的评论,您可能不想使用Start-Transcript
(因为您获得了许多您不想要的标题内容),而是输出到Out-File -Append
或Add-Content
等文件。
您还需要删除可能不必要的内部双引号(或者您可以用单引号替换它们):
"New-PSDrive -Name $Drive -PSProvider FileSystem -Root $Share -Persist" | Add-Content c:\output.ps1
还值得检查您是否有权将文件写入C:\的根目录,默认情况下,对于以后版本的Windows中的非管理员,这会被阻止。