Saya memiliki pekerjaan SQL yang berjalan melalui SQL Server Agent (Menjalankan SQL Server 2012 Enterprise). Langkah terakhir dari pekerjaan ini adalah menjalankan aplikasi yang terletak di jaringan berbagi. Sayangnya saya tidak tahu nama folder tempat aplikasi tersebut berada (folder tersebut adalah nomor versi), jadi saya menggunakan PowerShell untuk menemukannya:
set-location "\\server\companydocuments\MyApp\Application Files\"
$name = Get-ChildItem | sort name -desc | select -f 1 | select name
cd $name.name
& ".\Application.exe"
Jika saya membuka jendela PowerShell pada SQL Server maka itu berfungsi dengan baik. Ketika saya menjalankan ini di SQL Server Agent saya mendapatkan kesalahan berikut:
A job step received an error at line 1 in a PowerShell script.
The corresponding line is 'set-location "\\server\companydocuments\MyApp\Application Files\'"
Saya pikir itu mungkin masalah izin jadi saya sudah mencoba SQL Server Agent berjalan di bawah kredensial saya (ini adalah server pengujian, bukan produksi) tapi saya masih mendapatkan kesalahan yang sama. Saya juga mencoba memetakan drive jaringan ke folder bersama bukan jalur UNC, tetapi kesalahan yang sama.
Adakah yang bisa menyarankan bagaimana saya bisa terhubung ke folder ini?
cd c:
di awal skrip mengurutkan masalah konteks / lokasi. Kemudian semua jalur UNC bekerja seperti yang diharapkan.cd c:
adalah alias untuk digunakanSet-Location C:
, jadi ini adalah perintah yang sama.Alternatif lain adalah dengan menggunakan perintah sistem operasi dan memberikan powershell.exe c: /path/script.ps1 sebagai perintah dan simpan skrip Anda di script.ps1. Ini akan memastikan menggunakan OS PowerShell daripada menggunakan penyedia.
sumber