পাওয়ারশেলে কাজ করার জন্য ক্রেডিটএসপি প্রমাণীকরণ পেতে পারে না


10

রিমোটিং ব্যবহার করে পাওয়ারশেল স্ক্রিপ্ট তৈরির চেষ্টা করে আমি যা বিশ্বাস করি তাতে ডাবল-হপ সমস্যা । সেই নিবন্ধে পেরিয়াম্যান সমস্যাটির সংক্ষিপ্ত বিবরণ দেওয়ার পাশাপাশি সমস্যাটি সমাধানের জন্য নির্দিষ্ট পদক্ষেপগুলি দিয়েছেন (আপনি যদি কমান্ডগুলি জানেন তবে প্রায় তুচ্ছ, তবে আমার মতো কম পরিচিত কারও কাছে সেই তথ্য অমূল্য ছিল!)।

আমি Enable-WSManCredSSP Serverকোনও ঘটনা ছাড়াই আমার উইন 7 সার্ভারে দৌড়েছি , তবে Enable-WSManCredSSP Client –DelegateComputer <FQDN of the server>আমার উইন 7 ক্লায়েন্টটিতে চালানোর চেষ্টা করার ফলে এই ত্রুটি হয়েছে:

Enable-WSManCredSSP : The client cannot connect to the destination specified
in the request. Verify that the service on the destination is running and
is accepting requests.
Consult the logs and documentation for the WS-Management service running
on the destination, most commonly IIS or WinRM. If the destination
is the WinRM service, run the following com mand on the destination
to analyze and configure the WinRM service: "winrm quickconfig".

চলমান উইনর্ম কুইককনফিগ নিশ্চিত করেছে যে আমার সার্ভারটি উইনআরএম চলছে:

WinRM already is set up to receive requests on this machine.
WinRM already is set up for remote management on this machine.

এবং get-WSManCredSSP নিশ্চিত করেছে যে আমার সার্ভার কোনও ক্লায়েন্টের শংসাপত্র গ্রহণ করতে প্রস্তুত:

The machine is not configured to allow delegating fresh credentials.
This computer is configured to receive credentials from a remote client computer.

আমি উইনআরএম সম্পর্কে বোসেনের নিবন্ধটিও পেয়েছি যেখানে তিনি সাধারণ উইনআরএম সেটআপের বর্ণনা দিয়েছেন এবং নির্ণয়ের একটি দরকারী ডেটা পয়েন্ট পেতে একটি টিডবিট খুঁজে পেয়েছেন ; ক্লায়েন্টে চালিত এই কমান্ডটি সার্ভারকে দূর থেকে অ্যাক্সেস করতে উইনস সরঞ্জামটি ব্যবহার করে :

winrs -r:http://<FQDN of my server>:5985 -u:<myDomain>\msorens "dir c:\"

এই কমান্ডটি প্রত্যাশিত ফলাফলটি দিয়েছে, সার্ভারের রুট ডিরেক্টরিটির বিষয়বস্তুগুলি কোনও ঘটনা ছাড়াই, নিশ্চিত করেছে যে আমার এফকিউডিএন সঠিক এবং উইনআরএম সক্ষম হয়েছে।

বোয়সেন ইঙ্গিত দেয় 5985 পোর্টটি উইন 7 এর জন্য ডিফল্ট; সার্ভারে চালিত এই কমান্ডটি 5985 এর একটি মান নিশ্চিত করে:

get-item wsman:\localhost\listener\listener*\port

প্রশ্ন: আমি ক্লায়েন্ট পক্ষের সক্ষম-ডাব্লুএসএম্যানক্র্রেডএসপি কমান্ডটি কার্যকর করতে কেন অক্ষম?


2011.06.07 আপডেট

আমি উপরের প্রশ্নের সমাধান পেয়েছি: সক্রিয়-পিএসআরমিটিংকে অনুরোধ করছি , একটি কম্পিউটারকে দূরবর্তী কমান্ডগুলি পাওয়ার জন্য কনফিগার করার জন্য বিজ্ঞাপন দেওয়া হয়েছিল, ক্লায়েন্টটিতে সক্ষম-ডাব্লুএসএম্যানক্র্রেডএসপি সফলভাবে কাজ করার অনুমতি দিয়েছে ! কৌতুহলযুক্ত, তবে এর ম্যান পৃষ্ঠাটি এটি বিভিন্ন ক্রিয়া সংখ্যক করে বলে ইঙ্গিত দেয়, তাই আমি ধরে নিই those অজ্ঞাতসারে যারা আমার প্রয়োজন তা করেছে।

আমি তখন ক্রেডিএসএসপি প্রমাণীকরণ ব্যবহার করার চেষ্টা করার পরে আমি অন্য একটি রোডব্লক পৌঁছেছি। আদেশটি এখানে:

Invoke-Command { Write-Host "hello, world" } -computername $serverName `
-credential $testCred  -Authentication Credssp

এবং এখানে প্রতিক্রিয়া:

নিম্নলিখিত ত্রুটি বার্তার সাথে রিমোট সার্ভারের সাথে সংযোগ ব্যর্থ হয়েছে:
WinRM ক্লায়েন্ট অনুরোধটি প্রক্রিয়া করতে পারে না। একটি কম্পিউটার নীতি অনুমতি দেয় না
লক্ষ্য কম্পিউটারে ব্যবহারকারীর শংসাপত্রগুলির প্রতিনিধি। Gpedit.msc ব্যবহার করুন
এবং নিম্নলিখিত নীতিটি দেখুন: কম্পিউটার কনফিগারেশন
-> প্রশাসনিক টেম্পলেটগুলি -> সিস্টেম -> শংসাপত্রের প্রতিনিধি
-> নতুন করে শংসাপত্রগুলি প্রেরণে মঞ্জুরি দিন। এটি সক্ষম কিনা তা যাচাই করুন
লক্ষ্য কম্পিউটারের জন্য উপযুক্ত একটি এসপিএন দিয়ে কনফিগার করা হয়েছে। উদাহরণ স্বরূপ,
"myserver.domain.com" লক্ষ্যযুক্ত কম্পিউটারের নামের জন্য, এসপিএন এর মধ্যে একটি হতে পারে
নিম্নলিখিত: WSMAN /myserver.domain.com বা WSMAN / *। ডোমেইন.কম।
আরও তথ্যের জন্য, সম্পর্কে_আরমিট_আর সমস্যা সমাধানের সহায়তা বিষয়টি দেখুন।

আমি এই উল্লেখযোগ্য সহায়ক ত্রুটি বার্তার পরামর্শ হিসাবে ঠিক সেটিংগুলি যাচাই করেছি এবং এটি ঠিকমতো কনফিগার করা হয়েছে বলে আমার কাছে মনে হয়।

নতুন প্রশ্ন: ক্রেডিএসএসপির সাথে এই রিমোট সংযোগের প্রচেষ্টাটি কী ব্যর্থ হয়?


উত্তর দেওয়ার জন্য দয়া করে নীচের বিষয়টি মাথায় রাখুন: আমি এখানে যে কাজটি করছি তা আমি জানি, এমন কোনও ধারণা আগে থেকে প্রকাশ করতে দাও, বিপরীতে যাইহোক কোনও চেহারা। :-) উইন্ডোজ অ্যাডমিন আমার দক্ষতার ক্ষেত্র নয়!


তবুও এমএসের পরিবর্তনের স্বার্থে জিনিসগুলিকে বদলে দেওয়ার আরও এক পাগল উদাহরণ !! আমি লাইভ মাইগ্রেশন বা এর মতো অন্য কোনও বিষয়ে আগ্রহী নই, আমি কেবলমাত্র আমার কাছে থাকা 3 হাইপার-ভি 2012 সার্ভারগুলিতে লগইন করতে এবং তাদের উপর ভিএম তৈরি / মুছে ফেলা / থামানো / পুনরায় বুট করতে সক্ষম হতে চাই, এটি সম্পূর্ণরূপে কাজ করেছিল আমার ডাব্লুআইএন desktop ডেস্কটপ, এখন আমি জিতে যাচ্ছি ১০ এবং আমাকে প্রথমে সহজ কাজ করার জন্য বাম এবং বাম দিক দিয়ে লাফিয়ে যেতে হবে, উইন্ডোজ 10 বর্তমানে আমাকে রক্তাক্ত উন্মাদনা চালাচ্ছে: - /
শাল্টি

উত্তর:


8

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

আমি কার্যকর করা ক্লায়েন্টে (প্রশাসকের শেলের মধ্যে):

enable-wsmancredssp -role client -delegatecomputer devremvm03 -force

আমি কার্যকর করা সার্ভারে (প্রশাসকের শেল এ):

enable-wsmancredssp -role server -force

উভয়ই ক্রেডিএসএসপি ইঙ্গিত করে স্বাভাবিক আউটপুট ফেরত এখন "সত্য"।

এরপরে জটিলতার ক্রমবর্ধমান স্তরের মধ্য দিয়ে চলতে আমি নিম্নলিখিত অনুশীলনকারী কোডটি ব্যবহার করেছি:

$block = {
  Write-Host ("hello, world: {0}, {1}" -f $env:USERNAME, (hostname))
}
$username = "test_user"
$password = "..."   
$adjPwd = $password | ConvertTo-SecureString -asPlainText -Force
$testCred = (New-Object System.Management.Automation.PSCredential($username,$adjPwd))    

switch ($choice)
{
  "basic"       { Invoke-Command $block }
  "remote"      { Invoke-Command $block -computername $serverName }
  "credentialA" { Invoke-Command $block -computername $serverName -credential $testCred  }
  "credentialB" { Invoke-Command $block -computername $serverName -credential $testCred  -Authentication Credssp}
  "session"     { 
      $testSession = New-PSSession -computername $serverName -credential $testCred -Authentication Credssp
      if ($testSession) { Invoke-Command $block -Session $testSession; Remove-PSSession $testSession }
      }
}

এর সবগুলি আমার রান.পিএস 1 স্ক্রিপ্টে রয়েছে সুতরাং ট্রান্সক্রিপ্টটি নিম্নরূপে চলে গেল (এবং এটি অ- প্রশাসক শেলের মধ্যে চলেছিল):

PS C:\> .\run.ps1 basic
hello, world: msorens, MyLocalMachine
PS C:\> .\run.ps1 remote MyRemoteServer
hello, world: msorens, MyRemoteServer
PS C:\> .\run.ps1 credentialA MyRemoteServer
hello, world: test_user, MyRemoteServer
PS C:\> .\run.ps1 credentialB MyRemoteServer
hello, world: test_user, MyRemoteServer
PS C:\> .\run.ps1 session MyRemoteServer
hello, world: test_user, MyRemoteServer

পূর্বে, কেবলমাত্র বেসিক, রিমোট এবং শংসাপত্রগুলি কাজ করেছিল। এখন সব 5 কাজ। রক্ষে!


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

2

যখন আমাকে এটি করতে হয়েছিল তখন এটি কাজ করার জন্য আমি এটিই করেছি (কিছু জিপিও সেটিংসও থাকতে পারে তবে মনে হয় আপনি সেগুলি কভার করেছেন)।

ক্লায়েন্টটি ডোমেনের যে কোনও মেশিনে সংযোগ রাখতে ক্রেডিটএসপি ব্যবহার করতে সক্ষম করতে:

Enable-WSManCredSSP -Role Client -DelegateComputer "*.my.domain.com" -Force | out-null
#the following is used because -delegatecomputer (above) doesn't appear to actually work properly.
Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowFreshCredentialsDomain -Name WSMan -Value "WSMAN/*.my.domain.com"

তারপরে ক্রেডিএসএসপি প্রমাণীকরণ সক্ষম করতে আমি প্রতিটি টার্গেট মেশিনে (সার্ভার) নীচে চালিত হয়েছি:

Connect-WSMan -ComputerName $computer 
Set-Item "WSMAN:\$computer\service\auth\credssp" -Value $true 

অবশ্যই এটির প্রয়োজন আপনি যথাযথ অনুমতি নিয়ে স্ক্রিপ্টটি চালাচ্ছেন। এটি আমার পক্ষে কাজ করেছে - আমি আশা করি এটি আপনাকে সহায়তা করবে।


পরামর্শের জন্য ধন্যবাদ তবে এটি একই ফলাফলের সাথে এখনও ব্যর্থ হয়েছিল।
মাইকেল সোরেন্স

আমি নিশ্চিত না যে এটি কোনও পার্থক্য করে কিনা, তবে আমার মূল পোস্টটি বিভ্রান্তিকর হতে পারে। আমি ক্লায়েন্ট মেশিন থেকে এই সমস্ত কমান্ড চালিয়েছি । সুতরাং "$ কম্পিউটার" দ্বিতীয় কোড ব্লক উপরে সার্ভার যা আমি সংযোগের চেষ্টা করার হয়েছিল তার নাম ছিল প্রতি
jbsmith

আমি কিছুটা বুঝতে পেরেছিলাম কারণ এটির কোনও ধারণা নেই যে সার্ভারের ক্লায়েন্টদের সম্পর্কে প্রাথমিক জ্ঞান থাকতে হবে। আমি নিশ্চিত হয়ে পুনরায় পুরো ক্রমটি পুনরায় পুনরায় চেষ্টা করেছি, যদিও এটি একই ত্রুটিতে ব্যর্থ হয়। অন্য একটি প্রকরণ: আমি-প্রমাণীকরণের প্যারামিটারটি বাদ দিয়েছি এবং নিশ্চিত করেছি যে আমার বিবৃতিতে সমস্ত কিছু কাজ করে ( Invoke-Command { Write-Host "hello, world" } -computername $serverName -credential $testCred)। সুতরাং ক্রেডিএসএসপি প্রমাণীকরণ কঠোরভাবে সমস্যা।
মাইকেল সোরেন্স

সম্মত - বেসিক WinRM ঠিক আছে; সঠিক সমস্যাটি আমি কী তা করি না তবে আমি সন্দেহ করি যে এটি 'নতুন শংসাপত্রের অনুমতি দিন' নীতি এবং আপনি যে এসপিএন সেট আপ করেছেন তার সাথে সম্পর্কিত। আমি সেই নীতি সেটিংটি ঘনিষ্ঠভাবে দেখেছি এবং আপনার কার্বেরোস ঠিকঠাক কাজ করছে কিনা তা নিশ্চিত করার জন্য সম্ভবত আরও গভীরতর জায়গায় খনন করব। এই লিঙ্কটি বলে মনে হচ্ছে সহায়ক হতে পারে: [লিংক] msdn.microsoft.com/en-us/library/ee309365(v=vs.85).aspx
jbsmith

কেন সংযোগ-ডাব্লুএসমানকে সার্ভারে ব্যবহার করুন, আরও কার্যকর-wsmancredssp -rol সার্ভার ব্যবহার করুন, তাই না?
কিকিনেট

1

আমি পেয়েছি যেখানে আমি একটি হাইপার-ভি 2012 আর 2 সার্ভার থেকে একজন ভিএম মাইগ্রেট করতে পারি, কিন্তু এটিকে আর স্থানান্তর করতে পারিনি। (আমি সাম্বা ৪.২ কে আমার ডোমেন নিয়ন্ত্রক হিসাবে ব্যবহার করার চেষ্টা করছি এবং দেখতে চাইছিলাম যে আমি ক্রেডিএসএসপিতে মাইগ্রেট করতে পারি কিনা, কারণ আমি সাম্বা ৪-এর সাথে সীমাবদ্ধ প্রতিনিধি ব্যবহার করতে পারি না)।

শেষ পর্যন্ত আমি কাজের হাইপার-ভি-তে গিয়েছিলাম এবং এইচকেএলএম-এ রেজিস্ট্রি এন্ট্রি অনুলিপি করেছি: WAR সফটওয়্যার \ পলিসি, মাইক্রোসফ্ট, উইন্ডোজ \ শংসাপত্রসমূহ নিবন্ধন অ-কার্যকারী হাইপার-ভি-তে। এর পরে উভয়ভাবেই সূক্ষ্মভাবে কাজ করেছি।


রেজিস্ট্রি ট্রি কপিটি আমার জন্যও কাজ করেছিল। hklm: OF সফটওয়্যার \ ... \ শংসাপত্রসংশ্লিষ্ট নোডের অস্তিত্ব ছিল না, মানটি hklm এ সংরক্ষণ করা হয়েছিল: OF সফটওয়্যার ow Wow6432 নোড \ ... \ শংসাপত্রসমূহ ও K ...
ডের_মিস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.