我有一个PowerShell脚本,可以在服务器上运行批处理文件。
该批处理文件需要使用网络驱动器才能运行。如果我手动映射网络驱动器(右键单击C :,然后单击映射网络驱动器等),然后运行批处理文件,则该批处理文件运行良好。
我需要使用Powershell自动化整个过程。我写了一个Powershell,它首先映射一个网络驱动器,然后调用该批处理文件。 Powershell脚本可以成功映射网络驱动器。
但是由于某些原因,当从Powershell脚本中调用批处理文件时,它找不到映射的网络驱动器,并且出现访问错误。
下面是代码;我究竟做错了什么?谢谢您的帮助:
$NetworkDriveBegin = '\\network-drive\location' #Assume this value is correct
$pass=ConvertTo-SecureString "password" -AsPlainText -Force
#Assume Password and username are correct
$myCreds = New-Object System.Management.Automation.PsCredential("username",$pass)
Write-Output("Mapping drive : " + $NetworkDriveBegin)
$TestDrv = "X:"
New-PSDrive –Name "X" –Root $NetworkDriveBegin –PSProvider FileSystem -Credential $myCreds –Persist
If (-not (Test-Path -Path $TestDrv)) {
Throw "Could not map drive $TestDrv, Stopping Execution"
Exit
}
#Execute Batch Script
$BatchFile = 'D:\Batch_File.bat' # Assume the name is correct
& $BatchFile
$EndDate = Get-Date -format yyyy_MM_dd_HH_mm_ss
Write-Output("End Time: $EndDate")
Write-Output("Batch File Ended")