শাটডাউনে পাওয়ারশেল লিপিটি কাজ করে না (জয় 8)


0

আমি পাওয়ারশেলে একটি ব্যাকআপ স্ক্রিপ্ট লিখেছি। আমি এটি অবরোধ মুক্ত-ফাইলের সাথে অনুমোদিত করেছি, সুতরাং এটি কোনও ইন্টারেক্ট না করে চালানো যেতে পারে।

আমি গিপিডিট ব্যবহার করে এটি শাটডাউন চালিত পাওয়ার পাওয়ার স্ক্রিপ্টগুলিতে যুক্ত করেছিলাম।

স্ক্রিপ্টটি ভালভাবে কার্যকরভাবে চালিত হওয়ার সাথে সাথে সরাসরি চালিত হয় এটি কেবল শাটডাউন চালাতে ব্যর্থ হয়।

এই প্রশ্নের দ্বিতীয় উত্তরে বর্ণিত হিসাবে আমি দ্রুত বুট এবং হাইবারনেশন অক্ষম করেছি তবে কিছুই পরিবর্তন হয়নি।

আমি কীভাবে তা জানতে পারি

  • আমার স্ক্রিপ্ট ব্যর্থ হয় কিনা
  • বা স্ক্রিপ্ট একেবারেই বলা হয় না
  • এবং ডাব্লুটিএফ বন্ধের সময় ঘটে

সংযোজন: আরও তথ্য

  • স্ক্রিপ্টটি একটি এনএএস-তে একটি নেটওয়ার্ক সংযোগ খুলে একটি নেটওয়ার্ক ড্রাইভ সংজ্ঞায়িত করে
  • এরপরে ফোল্ডারের নাম হিসাবে সময় এবং সময় ব্যবহার করে সেই নেটওয়ার্ক ড্রাইভে একটি নতুন তৈরি ফোল্ডারে স্থানীয় ডেটা অনুলিপি করে
  • অনুলিপি প্রক্রিয়া শেষ হওয়ার পরে, নেটওয়ার্ক ড্রাইভটি সংযোগ বিচ্ছিন্ন হয়ে গেছে।
  • আমি "এট শটডাউন" কে "কিছু কাজ শেষ" এর একটি ভাল অ্যানালগন হিসাবে বিবেচনা করেছি। আমি মনে করি ইচ্ছাকৃতভাবে কম্পিউটারটি বন্ধ করার সময় কিছুটা অগ্রগতি সম্ভবত ঘটেছিল।
  • শাটডাউন করার সময় এটি করা সবচেয়ে ভাল পছন্দ কিনা তা আমি জানি না, তবে এটি আমার জানা সেরা পছন্দ। সম্ভবত এটি স্বয়ংক্রিয়ভাবে কোনও ফাইলের প্রতিটি পরিবর্তনে করা যেতে পারে?
  • আমি স্ক্রিপ্টটি ইনস্টল করতে gpedit.msc ব্যবহার করেছি এবং আমি Computerkonfigration-> উইন্ডোজ-সেটিংস-> স্ক্রিপ্ট-> শাটডাউন এ গিয়েছি। সেখানে আমি নিবেদিত "পাওয়ারশেল-স্ক্রিপ্টস" -টিবে স্ক্রিপ্ট যুক্ত করেছি। ক্রম সেটিংস পরিবর্তন করে যাতে পাওয়ারশেল-স্ক্রিপ্টগুলি প্রথমে কার্যকর করা হয় exec
  • স্ক্রিপ্টটির একটি স্থানীয় পাথ রয়েছে: সি: \ ব্যাকআপসওয়ার্টওয়্যার \ স্মার্ট_ব্যাকআপ_ক্রিয়েট_ফোল্ডার_বাই_ তারিখ_এমকে.পিএস 1
  • যে ডেটা অনুলিপি করা হবে তা হ'ল ডেস্কটপে এবং একটি নির্দিষ্ট ব্যবহারকারীর অ্যাকাউন্টের নথি ফোল্ডারে।

আরও বিশদ বিবরণ আমি ফ্লোলিওলিলোর পরামর্শ অনুসরণ করে আমার স্ক্রিপ্টের শুরুতে একটি লাইন যুক্ত করেছি, যা মূলত কিছু প্রিন্টফ-ডিবাগ করে (বা এটি রাইট-আউটপুট-ডিবাগ?)। আমি যেখানে পাঠ্য আউটপুট ফাইলটি পেয়েছি

C:\Windows\System32\GroupPolicy\Machine\Scripts\Shutdown

সুতরাং স্ক্রিপ্টটি দৃশ্যত কল করা হয়েছে তবে ডিবাগের তথ্য প্রকাশ করা ছাড়া আর কিছুই করে না। আমি কি কোনও পাঠ্য ফাইলে ত্রুটি এবং সতর্কতা পুনর্নির্দেশ করতে পারি?

আহা, এবং আমি কীভাবে এনএএস মাউন্ট করব?

New-PSDrive -Name "backup" -PSProvider Filesystem -Root "\\169.254.100.100\share"

তৃতীয় সংযোজন

এখানে বর্তমান কোড আসে।

#+-------------------------------------------------------------------+  
#| = : = : = : = : = : = : = : = : = : = : = : = : = : = : = : = : = |  
#|{>/-------------------------------------------------------------\<}|           
#|: | Authors:  Aman Dhally; ariser                               | :|           
#| :| Email:   amandhally@gmail.com
#|: | Purpose: Smart Backup and create folder by Date       
#| :|          
#|: |               Date: 29 November 2011 - 2017
#|: |                            
#| :|   /^(o.o)^\    Version: n.a.                                |: | 
#|{>\-------------------------------------------------------------/<}|
#| = : = : = : = : = : = : = : = : = : = : = : = : = : = : = : = : = |
#+-------------------------------------------------------------------+


#System Variable for backup Procedure

# $date = Get-Date -Format d.MMMM.yyyy
$date = Get-Date -Format yyyy.MM.dd.HH.mm.ss

Write-Output "This script was called at %(Get-Date)" | Out-File .\test.txt
 New-PSDrive -Name "backup" -PSProvider Filesystem -Root "\\169.254.100.100\Krautlight_aktiv"

 # $source = "D:\Tally\Data\"
$destination = "backup:\$date"
 # $path = test-Path $destination

$homeprefix= "C:\Users\MyUser\"

$directories = @{ }
$directories.add($homeprefix+"Documents\eagle", "EDA\eagle")
$directories.add($homeprefix+"Documents\KL\Eaglelibraries", "EDA\eigeneLibraries")
$directories.add($homeprefix+"Desktop\Flansch", "CAD\Flansch")
$directories.add($homeprefix+"Desktop\BoCubeDateien", "CAD\Bopla")
try{
  mkdir $destination
  ; write-outpot "mkdir passsed"  | out-file .\test.txt -append;
  }
catch
    { write-output "mkdir  failed" | out-file .\test.txt -append }
ForEach($source in $directories.KEYS.GetEnumerator()) 
{
        cd backup:\          
        $destpath=$destination+'\'+$directories.Get_Item($source)
       Copy-Item  -Path $source -Destination $destpath -Recurse 
        cd c:\
}
 Remove-PSDrive "Backup"  

আমার বর্তমান তদন্তগুলি test.txt ফাইলটিতে ডিবাগ বার্তাগুলির একটি কার্যকারী আউটপুট দেখায়। এবং mkdir ব্যর্থ।


স্ক্রিপ্টটি মূলত কী করে? বিশেষ করে কেন "শাটডাউন" সেরা পছন্দ হবে? আপনি এই সেটআপটি দিয়ে কী জিপি কনফিগারেশন ব্যবহার করছেন? স্ক্রিপ্টটি ঠিক কোন পথ / ফাইল ভাগের মতো অবস্থিত?
পিম্প জুস IT

এটি আদৌ আহ্বান করা হয়েছে কিনা তা খুঁজে বের করার জন্য: কেন কেবল এটি দিয়ে শুরু করবেন না Write-Output "This script was called at $(Get-Date)" | Out-File .\test.txt?
ফ্লোলিও

@ ফ্লোলিলিওলিলো ঠিক আছে, আমি এটি চেষ্টা করে যাচ্ছি।
অ্যারাইজার

@ ফ্ল্লোলিলিলো: একটি আকর্ষণীয় ফলাফল ছিল। একটি মন্তব্যের জন্য খুব বেশি। আমি আমার প্রশ্নের সাথে এটি যুক্ত করব।
অ্যারিজার

1
try- catch(( out-fileকম্যান্ডের সাথে একত্রিত )) আকারে কিছু শব্দাবলীর সমস্যা সনাক্ত করতে সাহায্য করবে না? এর মতো কিছুtry{gci .\; write-output "gci passed!" | out-file test.txt -append;}catch{write-output "gci failed!" | out-file test.txt -append}
ফ্লোলিও
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.