У меня есть сценарий 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")