এসকিউএল সার্ভার এজেন্টে পাওয়ারশেল স্ক্রিপ্ট চালানোর সময় ত্রুটি


9

আমার একটি এসকিউএল জব রয়েছে যা এসকিউএল সার্ভার এজেন্টের মাধ্যমে চলছে (এসকিউএল সার্ভার 2012 এন্টারপ্রাইজ চালাচ্ছে)। কাজের সর্বশেষ পদক্ষেপটি একটি নেটওয়ার্ক শেয়ারে অবস্থিত একটি অ্যাপ্লিকেশন চালানো। দুর্ভাগ্যক্রমে আমি অ্যাপ্লিকেশনটিতে থাকা ফোল্ডারের নাম জানি না (ফোল্ডারটি সংস্করণ নম্বর), সুতরাং এটি খুঁজে পাওয়ার জন্য আমি পাওয়ারশেলটি ব্যবহার করছি:

set-location "\\server\companydocuments\MyApp\Application Files\"
$name = Get-ChildItem | sort name -desc | select -f 1 | select name
cd $name.name
& ".\Application.exe"

যদি আমি এসকিউএল সার্ভারে একটি পাওয়ারশেল উইন্ডো খুলি তবে এটি ঠিক আছে। আমি যখন এটি এসকিউএল সার্ভার এজেন্টে চালিত করি তখন আমি নিম্নলিখিত ত্রুটিটি পাই:

A job step received an error at line 1 in a PowerShell script.
The corresponding line is 'set-location "\\server\companydocuments\MyApp\Application Files\'"

আমি ভেবেছিলাম এটি কোনও অনুমতির সমস্যা হতে পারে তাই আমি এসকিউএল সার্ভার এজেন্টকে আমার শংসাপত্রগুলির অধীনে চালানোর চেষ্টা করেছি (এটি একটি পরীক্ষার সার্ভার, উত্পাদন নয়) তবে আমি এখনও একই ত্রুটি পেয়েছি। আমি ইউএনসি পাথের পরিবর্তে ভাগ করা ফোল্ডারে একটি নেটওয়ার্ক ড্রাইভ ম্যাপ করার চেষ্টা করেছি, তবে একই ত্রুটি।

আমি কীভাবে এই ফোল্ডারে সংযোগ করতে পারি তা কি কেউ পরামর্শ দিতে পারেন?

উত্তর:


9

আমি বিশ্বাস করি আপনার সমস্যা SQLPSসরবরাহকারী হতে চলেছে । যেহেতু এসকিউএল সার্ভার এজেন্টের পাওয়ারশেল পদক্ষেপগুলি আপনাকে স্বয়ংক্রিয়ভাবে সেই সরবরাহকারীর প্রসঙ্গে রেখে দেয় কিছু সাধারণ আদেশ যা আপনার সাধারণ কনসোলে একইভাবে কাজ করে না। একটি লেখার আপ করা হয়েছিল এখানে দিয়ে Set-Location। আপনি মূলত আপনি SQLPSযে সরবরাহকারীটি ব্যবহার করতে চান তা বলতে হবে।

আপনার কোডটি নীচের মতো দেখতে পাবেন:

set-location -Path Microsoft.PowerShell.Core\FileSystem::"\\server\companydocuments\MyApp\Application Files\"

আপনি চাইলে বাকী দুটিটি দুটি লাইনেও গুটিয়ে রাখতে পারেন:


cd (Get-ChildItem | Sort-Object name -Descending | Select name -First 1).name
& ".\Application.exe"

@ শ্যামনমেল্টন রিমোট সার্ভারে পাওয়ারশেল কমান্ডগুলি চালনার বিষয়ে কী? dba.stackexchange.com/questions/83068/…
মার্সেলো মিয়োরেলি

আমাদের একই সমস্যা হয়েছে এবং cd c:প্রসঙ্গে / অবস্থানের সমস্যার সমাধানের জন্য স্ক্রিপ্টের শুরুতে একটি কাজ করতে দেখেছি । তারপরে সমস্ত ইউএনসি পাথ প্রত্যাশা অনুযায়ী কাজ করেছিল।
জেমস খুরি

cd c:ব্যবহারের জন্য একটি উপাধি Set-Location C:, সুতরাং এটি একই আদেশ।

2

অন্য বিকল্পটি হ'ল অপারেটিং সিস্টেম কমান্ড ব্যবহার করা এবং পাওয়ারশেল.এক্স.সি: /path/script.ps1 কমান্ড হিসাবে দেওয়া এবং স্ক্রিপ্ট.ps1 এ আপনার স্ক্রিপ্ট সংরক্ষণ করা। এটি সরবরাহকারী ব্যবহারের পরিবর্তে ওএস পাওয়ারশেল ব্যবহার নিশ্চিত করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.