在启动后重启后,通过PS登录到网络共享无法正常工作

时间:2018-07-11 16:23:15

标签: windows powershell logging

准备使用一些我已经写了一段时间但从未解决过的特定问题的脚本。希望找到解决方案。

该项目将在一个周末内将Win10 Build升级到大约900台计算机。需要确保它们及时备份并且升级成功。

文件在文件共享上暂存。脚本存储在同一共享上。将在每台计算机上创建一个带有bat文件的任务,以获取脚本并执行它们。

在脚本中,我将其设置为记录数据并将其进度记录到网络上自己的文件中,文件名为 computer .txt

问题:

升级完成后,重新启动将执行设置为运行“ AtStartup”的任务。我让它立即重新连接到网络共享,以再次开始记录其状态。有时它会很好地工作,而有时则不能。 50/50。该脚本除此以外还可以工作。一切都很好。

为什么要记录日志?

有很多计算机可以一次全部观看,只有少数人可以监视它们并解决问题。日志将让我知道在哪里进行日志记录可能存在问题。我想继续重新启动数据。

这似乎不是网络问题,因为我已验证机器正在通信。

我尝试添加一个睡眠计时器,使Windows有2分钟的时间来完成引导。那没有帮助。

我不确定在哪里可以找到为什么它有时只能工作。

网络共享路径和设置文件变量的映射

$Drive_Root_Path = "\\File Path\"
$Drive_Letter = "X"
Remove-PSDrive $Drive_Letter
$Drive = New-PSDrive -Name $Drive_Letter -PSProvider FileSystem -Root $Drive_Root_Path

$Win10_Upgrade_Log_Folder = $Drive.Root + "Log Folder\"
$Log_File = $Win10_Upgrade_Log_Folder + $env:COMPUTERNAME + ".txt"

示例如何将数据添加到文件

Add-Content -Path $Log_File -Value (Get-Date) -NoNewline
Add-Content -Path $Log_File -Value " Setting Executino Policy back to Restricted."

我知道有更好的解决方案来升级Windows,但是有了可用的选项,我不得不提出一些建议。它的工作原理是减去重新启动后的日志记录部分。

1 个答案:

答案 0 :(得分:1)

我同意@Theo尝试使用UNC路径而不是映射驱动器。我还主张在路径中也尝试使用完全限定的域名。这使您的代码更加简单:

$Win10_Upgrade_Log_Folder = "\\server.contoso.com\Log Folder\"
$Log_File = $Win10_Upgrade_Log_Folder + $env:COMPUTERNAME + ".txt"

添加内容是相同的:

Add-Content -Path $Log_File -Value (Get-Date) -NoNewline
Add-Content -Path $Log_File -Value " Setting Executino Policy back to Restricted."