পাওয়ারশেলের সমস্ত ওয়েবসাইট থেকে আইআইএস-এ ভার্চুয়াল ডিরেক্টরিগুলি কীভাবে তালিকাভুক্ত করা যায়


8

আমি একটি সম্পূর্ণ রোডব্লক মেরেছি এবং প্রতিটি ওয়েবসাইটের জন্য ভার্চুয়াল ডিরেক্টরিগুলি কীভাবে প্রিন্ট করা যায় তা বুঝতে পারি না IIS 8। আমি অ্যাপ্লিকেশনগুলি এবং খালি নাল যুক্তি ত্রুটিগুলি পুনরুদ্ধার করে চলেছি এবং ভার্চুয়াল ডিরেক্টরিগুলি তালিকাভুক্ত করার জন্য কোনও উপায় খুঁজে পাচ্ছি না।

ভার্চুয়াল ডিরেক্টরিগুলি সম্পর্কে তালিকাভুক্ত করার জন্য আমার নিম্নলিখিত তথ্যগুলির প্রয়োজন:

  • শারীরিক পথ
  • অ্যাপ পুল সমিতি
  • সাইটের নাম
  • পরিচয়পত্র

নীচে আমি যে কোডটি ব্যবহার করে যাচ্ছি এবং এর সাথে গোলমাল করছি:

    *See revised code below*

Appcmd.exeভার্চুয়াল ডিরেক্টরিগুলি চেষ্টা করে দেখতে এবং তালিকাবদ্ধ করতে আমি কমান্ডটি ব্যবহার করেছি :

C:\Windows\System32\inetsrv\appcmd.exe LIST VDIRS

তবে আমি এখনও আমার প্রয়োজনীয় আউটপুট পাচ্ছি না। যে কোনও কিছু বা যে কোনও সাহায্যের প্রশংসা হবে! ধন্যবাদ!

সম্পাদনা # ------------------------------------------------ ----------------------

কয়েকটি ভারী লাইনে মন্তব্য করে আমার ভার্চুয়াল ডিরেক্টরিগুলি তালিকাবদ্ধ করতে পেল তবে এটি কেবল নাম এবং প্রিন্ট করে:

  • শারীরিক পথ
  • অ্যাপ পুল সমিতি
  • সাইটের নাম
  • পরিচয়পত্র

এখনও আমার অজানা, নীচে সংশোধিত কোডটি রয়েছে:

  Import-Module WebAdministration
    $Websites = Get-ChildItem IIS:\Sites 
    foreach($Site in $Websites)
            {
                $webapps = Get-WebApplication -Site $Site.name 
                $VDir = Get-WebVirtualDirectory -Site $Site.name #-Application $webapps.name
                                foreach($webvdirectory in $VDir)
                                    {
                                        $webvdirectory2 = $webvdirectory.path
                                        Write-Host $webvdirectory2.split("/")[-1]
                                        #Write-Host $webvdirectory
                                        #Write-Host $webvdirectory.name

                                    } 
                            #Write-Host $VDir 

            }

আপনি যদি ভার্চুয়াল ডিরেক্টরিটিকে কোনও অ্যাপ্লিকেশনে রূপান্তর না করেন তবে এটি সাইটের অ্যাপ্লিকেশন পুলে উত্তরাধিকার সূত্রে প্রাপ্ত। আপনি কি ভার্চুয়াল ডিরেক্টরিগুলি সন্ধান করছেন যা অ্যাপ্লিকেশনগুলির পাশাপাশি "সাধারণ" ভার্চুয়াল ডিরেক্টরিতে রূপান্তরিত হয়?
jscott

sc jscott আমি আইআইএস-এ বিদ্যমান সমস্ত ভার্চুয়াল ডিরেক্টরিগুলি এবং শীর্ষে তালিকাভুক্ত নির্দিষ্ট তথ্য মুদ্রণ করতে চাইছি।
ব্যবহারকারী 38725

উত্তর:


12

আপনি লিখেছেন যে কীভাবে পুনরুদ্ধার করবেন তা আপনি বুঝতে পারবেন না:

  • শারীরিক পথ
    • physicalPathনোটোপ্রপারটির মাধ্যমে সরাসরি অ্যাক্সেসযোগ্য
  • অ্যাপ পুল সমিতি
    • কোনও মানে নেই, অ্যাপ্লিকেশনগুলিকে অ্যাপ পুলগুলিতে বরাদ্দ করা হয়েছে, ডিরেক্টরিগুলি সেগুলি নয়
  • সাইটের নাম
    • আপনি এটি ইতিমধ্যে জানেন ( $Site.name)
  • পরিচয়পত্র
    • আমি ধরে নিলাম আপনি উপস্থিত থাকলে কেবল ব্যবহারকারী নামটি চান want

আপনার বিদ্যমান স্ক্রিপ্টে কিছুটা পরিবর্তন করে এগুলি সমস্ত পুনরুদ্ধার করা যেতে পারে:

Import-Module WebAdministration

$Websites = Get-ChildItem IIS:\Sites 

$AllVDirs = @()

foreach($Site in $Websites)
{
    $VDirs = Get-WebVirtualDirectory -Site $Site.name
    foreach($webvdirectory in $VDirs)
    {
            $vdir = New-Object psobject -Property @{
                "Name" = ($webvdirectory.path -split "/")[-1]
                "Site" = $Site.name
                "Path" = $webvdirectory.path
                "PhysicalPath" = $webvdirectory.physicalPath
                "PhysicalPathCredentials" = $webvdirectory.userName
            }

            $AllVDirs += $vdir
    } 
}

$AllVDirs

এখন আপনি $AllVDirsএক্সএমএল, সিএসভিতে রফতানি করতে পারেন বা কেবল পাওয়ারশেল হোস্টে মুদ্রণ করতে পারেন।


2

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

$Websites = Get-ChildItem IIS:\Sites 
    foreach($Site in $Websites)
            {
                $webapps = Get-WebApplication -Site $Site.name 
                $VDir = Get-WebVirtualDirectory -Site $Site.name #-Application $webapps.name
                                foreach($webvdirectory in $VDir)
                                    {
                                        $webvdirectory2 = $webvdirectory.path
                                        Write-Host $webvdirectory2.split("/")[-1] "::: is the Virtual Directory" -ForegroundColor Green
                                        Write-Host $webvdirectory.physicalPath   
                                        Write-Host $webvdirectory.userName                                         
                                        Write-Host $webvdirectory.password
                                        Write-Host $webvdirectory.logonMethod
                                    } 
                            #Write-Host $VDir 

            }

এছাড়াও আরেকটি সমস্যা আছে এবং আপনার যদি উত্তর ছিল না জানতেন তবে কীভাবে আমি ওয়েব অ্যাপ্লিকেশনগুলির জন্য শারীরিক পাথ শংসাপত্রগুলির সম্পত্তিতে কল করব? আমি ব্যবহারকারীর নাম বা পাসওয়ার্ড প্রিন্ট করতে পারি না, তবে আমি একই সম্পত্তি ব্যবহার করে লগনমেথড মুদ্রণ করতে পারি? ওয়েব অ্যাপ্লিকেশনগুলির জন্য নীচে আমার কোডটি রয়েছে, এটি আমার ভার্চুয়াল ডিরেক্টরিগুলির কোডের মতো similar

$Websites = Get-ChildItem IIS:\Sites 
    foreach($Site in $Websites)
            { 
             $webapps = Get-WebApplication -Site $Site.name 
                    foreach($webapp in $webAPPS)
                        {
                        Write-Host $webapp.applicationPool
                        Write-Host $WebApp.virtualDirectoryDefaults.userName
                        Write-Host $webapp.virtualDirectoryDefaults.password
                        Write-Host $webapp.virtualDirectoryDefaults.logonMethod
                        $webapp2 = $webapp.path
                        Write-Host $WebApp2.split("/")[-1] "::: is the Web Application" -ForegroundColor Green

                        } 
            }

আমি আরও ভাবছি যে আমি যদি $ Site.userName এবং $ Site.password পাই তবে ওয়েব অ্যাপের জন্য কি সেগুলি এক হবে না?
ব্যবহারকারী 38725

0

এটি এমন একটি অ্যারে তৈরি করবে যাতে সাইটের নাম, ভার্চুয়াল ডিরেক্টরি নাম এবং ভার্চুয়াল ডিরেক্টরি দৈহিক পথ থাকে।

$SiteVirtualDirectories = @()
$Sites = gci IIS:\Sites
foreach($Site in $Sites)
    {
    $VirtualDirectories = gci "IIS:\Sites\$($Site.Name)" | ?{$_.NodeType -match "virtualDirectory"}
    foreach($VirtualDirectory in $VirtualDirectories)
        {
        $SiteVirtualDirectories += @([pscustomobject]@{Site=$Site.Name;VirtualDirectory=$VirtualDirectory.Name;PhysicalPath=$VirtualDirectory.PhysicalPath})
        }
    }
Write-Host $SiteVirtualDirectories
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.