পাওয়ারশেল - কোনও দূরবর্তী ভাগের পথের ত্রুটি অবৈধ অক্ষরগুলিতে অনুলিপি-আইটেম


1

ঠিক আছে, আসল সমস্যাটি হ'ল আমি একটি রেজিস্ট্রি এন্ট্রি থেকে পথ পাচ্ছিলাম এবং তারপরে এটি রেগেক্স দিয়ে পরিষ্কার করছিলাম। পথটির খুব শুরুর সামনের দিকে একটি জায়গা ছিল যা আমি লগিংয়ের পথে লক্ষ্য করিনি। আমি এটি ব্যবহার করে এই সমস্যাটি সমাধান করেছি: # আউটওয়ারটি পথ তৈরিতে ব্যবহৃত হয় এবং একটি রেজিস্ট্রি কী থেকে আসে আউট স্ট্রিং $ আউটভার = (v আউটভার -রিপ্লেস '\ s', '')

$localtruststore = "C:\Users\me\OneDrive\work\scripts\PS\TEST\truststore"
$servers = "SERVER1"

## remotepath is actually set by looking at a registry entry, but I am sure it is coming out like this:
$remotepath = "d$\programname\40\server\Openfire\resources\security"


#### THIS LINE CAUSES THE ERROR - I think just because of the $.
Copy-Item $localtruststore -Destination \\$server\$remotepath -Force

Copy-Item : Illegal characters in path.
At C:\Users\me\OneDrive\work\scripts\PS\TEST\chat_copy_trustore_to_remote.ps1:46 char:11
+     Copy-Item <<<<  $localtruststore -Destination \\$server\$remotepath -Force
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.CopyItemCommand

আমি যদি ম্যানুয়ালি ডেস্টিনেশনটি এর মধ্যে রাখি তবে অনুলিপিটি পুরোপুরি কার্যকর হয়, সুতরাং এটি অবশ্যই একটি সহজ বাক্য গঠন বিষয়।

আমি এগুলি করে $ গন্তব্যপথ ভেরিয়েবলটি সম্পূর্ণরূপে তৈরি করার চেষ্টা করেছি:

$destinationpath = "\\$server\$remotepath"    
$destinationpath = ("\\{0}\{1}" -f $server,$remotepath)

এই কাজের দুটি এবং আমি যখন ভেরিয়েবলটি লিখি-হোস্ট করি তখন আমি সঠিক \ সার্ভার \ d $ \ প্রোগ্র্যাম পাই ... আমি এখনও পথে অবৈধ চরিত্র পাই।

আমি নিশ্চিত করেছি যে ত্রুটির সাথে বর্ণিত চরিত্রটি হ'ল সংখ্যায় যেখানে। চিহ্ন রয়েছে। এটি এই যুক্তিতে সেই চর সংখ্যা।

আমি এটিকে কেবল দুটি ভাগে ভাঙ্গিয়া শেষ করি .... নীচে দেখুন ..

এটি ডি এর মূলের জন্য অ্যাডমিন শেয়ারকে অনুলিপি করবে

তারপরে আমি এটির পরে ফাইলটি রিমোট সার্ভারে সরাতে ব্যবহার করি .. ইনভোক-কমান্ড-কম্পিউটার নাম $ সার্ভার {অনুলিপি-আইটেম -পথ ডি: us ট্রস্টস্টোর -রীক্ষণ ডি: \ টেম্প-ফর্স}

এটি আমার জাভা কীস্টোর ফাইলগুলি, জেকেএস ফাইলগুলি, ফাইল এক্সটেনশনগুলি রাখবে না তা জটিল হতে পারে বা নাও পারে ..


(গেট-আইটেমপ্রপটি এইচকেসিইউ: \ সফ্টওয়্যার \ ড্রপবক্স-নাম ইনস্টলপথ)। ইনস্টলপথ.ট্রিম () # আপনি রেজিটি পড়তে গেট-আইটেমপ্রটি ব্যবহার করতে পারেন এবং ট্রিমের সাহায্যে শীর্ষস্থানীয় এবং অনুসরণকারী শ্বেতস্পেসগুলি অপসারণ করতে পারেন ()।
মেগামরফ

উত্তর:


1

ইউএনসি পাথগুলি ডাবল ব্যাকস্ল্যাশ দিয়ে শুরু হয় যাতে আপনার কমান্ডটি দেখতে এমন হওয়া উচিত:

$source = "C:\Users\me\OneDrive\work\scripts\PS\TEST\truststore"
$server = "server1"
$destinationpath = "\\$server\d$\programname\40\server\Openfire\resources\security"

copy-item -path $source -destination $destinationpath -verbose


Or you can do it like this:
$foldershare = "d$\programname\40\server\Openfire\resources\security"
$destinationpath = ("\\{0}\{1}" -f $server,$foldershare)

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

মেগামরফ একইভাবে সম্ভবত with সার্ভার দিয়েছিল?
ফ্র্যাঙ্ক থমাস

আমি আপনার জন্য একটি বিকল্প উপায় যুক্ত করেছি।
মেগামরফ

আমি দ্বিতীয়টি চেষ্টা করেছিলাম। ভেরিয়েবল p গন্তব্যপথটি সঠিকভাবে তৈরি করা হচ্ছে \\ সার্ভারনেম \ ডি $ \ প্রোগ্রামনাম \ ফোল্ডার বাট হিসাবে যখন আমি এটি অনুলিপি-আইটেম $ লোকালস্ট্রাসটোর-নির্ধারণ $ গন্তব্যস্থল-ফরাসীর সাথে ব্যবহার করতে যাই তখনও আমি পথের ত্রুটিতে অবৈধ
চরিত্রগুলি

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