Bir .ps1 dosyasına çift tıklayarak PowerShell betiğinin çalışmasını sağlamanın bir yolu var mı?


139

Ekibime bir PowerShell betiği dağıtıyorum. Komut dosyası, Vsphere istemcisinden bir IP adresi almak, bir mstsc bağlantısı kurmak ve paylaşılan bir dosyada oturum açmaktır.

Betiği kullandıkları anda, makinenin IP adresini bildiler. Bundan sonra, PowerShell betiğini çalıştırmak yerine her zaman doğrudan mstsc kullanma eğilimindedirler. (Mstsc kullandıkları için VM'yi sık sık kullanıp kullanmadıklarını bilemiyorum.)

Temelde bana PowerShell'i çalıştırmanın basit olmadığını söylüyorlar.

Onların tembelliğinden bıktım.

Bir .ps1 dosyasına çift tıklayarak PowerShell betiğinin çalışmasını sağlamanın bir yolu var mı?


3
Günlükleri sunucuda kullanmaya ne dersiniz? "Kullanıcıya güvenme", verilerinizle ona güvenemeyeceğiniz anlamına gelebilir, ancak daha çok, tembel olmadığı için ona güvenmemeniz anlamına gelir.


Powershell stüdyosu kullanarak bir PS komut dosyası derleme sapien.com/software/powershell_studio
Root Loop

Ben vscode ile çalıştırmak için tercih (böylece konsol görmek ve hata ayıklamak)
JinSnow

Yanıtlar:


132

"Hedef" gibi bir şey içeren bir kısayol oluşturun:

powershell.exe -command "& 'C:\A path with spaces\MyScript.ps1' -MyArguments blah"

3
Jeffery Hicks (Powershell'de yetkili bir kaynaktır) ayarların değiştirilmesinin önerilmediğini önerdiğinden, cevabınızı en iyi cevap ve JPBlanc cevapını yararlı cevap olarak oylayacağım.
Samselvaprabu

6
Bunu şu şekilde kullanın: `-noLogo -ExecutionPolicy sınırsız -dosya <yol>` tarafından cevaplandığı gibi: @ user3071883
Ujjwal Singh

1
@UjjwalSingh: -NoProfileprofil de betiğin beklemediği her türlü şeyi yapabildiğinden faydalıdır.
Joey

5
Gelecekteki okuyucular için: Aşağıdaki yanıtlarda OP'nin istediklerini gerçekleştiren bir kayıt defteri kesmek vardır. Kabul edilen cevap vermez.
Wouter

2
Bunu yapmanın bir yolu var mı ama bir akraba / geçerli yol kullanıyor mu?
mythofechelon

79

Veya tüm PS1 dosyalarının VBS dosyalarında olduğu gibi çalışmasını istiyorsanız, kayıt defterini şu şekilde düzenleyebilirsiniz:

HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\open\command

Varsayılan değeri aşağıdaki gibi olacak şekilde düzenleyin ...

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -noLogo -ExecutionPolicy unrestricted -file "%1"

Ardından, istediğiniz gibi tüm .PS1 dosyalarınızı çift tıklayabilirsiniz. benim düşünceme göre, kutudan çıkabiliyorum.

Ben buna "Powershell De-castration Hack" diyeceğim. LOL tadını çıkarın!


27
Bu cevap listesinde benim için çalışan tek kişi bu. "Tavsiye edilmiyor" cevabını kabul etmeye hazır değilim - PC'ye ne yapacağımı söylüyorum, PC bana söylemiyor.
Matt

7
Bu aslında bir çift bypass. Çift tıklama-to-run karşı kısıtlama kaldırır, ve hatta konsoldan güvenilmeyen komut çalışan önlemek içindir PowerShell en ExecutionPolicy yayılıyor.
Iszi

4
Bunu yapmanın yanlış yolu bu. "PowerShell ile Çalıştır" ı varsayılan olarak ayarlamak yerine "Aç" komutunun yaptıklarını değiştiriyorsunuz. Aşağıdaki itgala.xyz cevabına bakın.
Indy411

4
Bu yöntemi kullanmak istiyorsanız, kayıt defteri anahtarı için doğru varsayılan değer aslında "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -File "%1"%*isteğe bağlı olarak ekleyebileceğiniz yerdir -ExecutionPolicy unrestricted. Komutun sonunda, PowerShell betiğine sıfır veya daha fazla parametrenin iletilmesine izin veren değişikliği not alın. Tırnak işaretleri ve yüzde işaretleri etrafındaki boşluklar tam olarak gösterildiği gibi olmalıdır.
Glenn Slayden

2
Kayıt defterini düzenlemek yerine bir komut satırı çözümü için, bunu ftype Microsoft.PowerShellScript.1=^"^%SystemRoot^%\System32\WindowsPowerShell\v1.0\powershell.exe^" -NoLogo -ExecutionPolicy Unrestricted -File ^"%1^" %*gerçekleştirecek olanları yazabilirsiniz .
Damian T.

21

PowerShell'in güvenlik özelliklerinden birinin, kullanıcıların çift tıklamayla komut dosyası BAŞLATAMADIĞINA dikkat edin. Bu ayarı değiştirirseniz çok dikkatli olun. Alternatif olarak betiğinizi paketlemeniz de olabilir. PrimalScript gibi bazı editörler bunu yapabilir. Kullanıcıların hala PowerShell'i yüklemeleri gerekir, ancak exe'yi çift tıklatabilirler. Ve ekibinizin biraz eğitime ihtiyacı olduğu anlaşılıyor.


3
Bu bir güvenlik özelliğidir, çünkü bilgisayar korsanlarını bir alternatif bulana kadar en az birkaç dakika geciktirir !
MarcH

23
Bu aptalca ve işe yaramaz bir güvenlik özelliğidir. Bir partiyi üzerine çift çırparak çalıştırabilir misin? Evet, bir exe? Evet. VBScript mi? Evet. Bir poweshell senaryosunun neden diğerlerinden daha tehlikeli olarak kabul edileceğini anlayamıyorum
Mauro F.

12
Sizi bilmiyorum, ama yanlışlıkla yanlışlıkla çift tıklamayla yanlış bilgisayarda bir yarasa dosyası çalıştırdım. İdareyi otomatikleştirmeyi amaçlayan bir şeyle, bunu kısıtlamak mükemmel bir anlam ifade eder.
lordcheeto

1
Bir EXE dosyasına çift tıklayabilirsiniz, böylece bunun nasıl yardımcı olduğunu göremiyorum. Ama kesinlikle Powershell ekibi bu temel argümanın farkında. Daha fazlası olmalı.
usr

1
Çalıştırmak için "tehlikeli" komut dosyaları yazarsanız ve temel bir onay işlemi eklemezseniz ... Tehlikeli yaşamayı sevdiğinizi düşünüyorum.
Romain Vincent

18

Bu benim için Windows 10 ve powershell 5.1'de çalıştı:

  • .ps1 dosyasına sağ tıklayın
  • Bununla aç...
  • Başka bir uygulama seçin
  • Powershell.exe dosyasının konumunu adres çubuğuna kopyalayın (varsayılan olarak windows klasörünü göstermez) yani C: \ Windows \ System32 \ WindowsPowerShell \ v1.0
  • powershell.exe seçin
  • ".ps1 dosyalarını açmak için her zaman bu uygulamayı kullan" ı seçin
  • Tamam'ı tıklayın

2
Muhtemelen ana makinede yürütme politikasını makul bir şeye ayarlamanız gerekir, yani RemoteSigned
vizmi

4
Bu birkaç yaşında ve yarım yıl öncesine kadar kimse bunu düşünmedi mi? - Bunu da yaptım ve mükemmel çalışıyor, ancak daha fazla yapılandırma yapmanız gerekiyorsa veya powershell herhangi bir .ps1 komut dosyasını çalıştırmayı reddedecektir (bkz. Set-ExecutionPolicy).
DarkWiiPlayer

Bunun çalışmasını istiyorsanız komut dosyası adının boşluk içermemesi gerekir. Bunun dışında mükemmel çalışıyor gibi görünüyor.
Luke

2
Bu en yüksek oyu alan cevap nasıl değil? Dosya ilişkilendirmeleri aracılığıyla Windows'u istediği şekilde yapabildiğinizde, neden doğrudan kayıt defterini düzenliyoruz veya toplu iş dosyalarını kullanıyoruz?
Dr.Kickass

@ Dr.Kickass Sanırım muhtemelen daha yeni cevaplardan biri
vizmi

17

Bunu birkaç yıl önce yazdım (yönetici haklarıyla çalıştırın):

<#
.SYNOPSIS
    Change the registry key in order that double-clicking on a file with .PS1 extension
    start its execution with PowerShell.
.DESCRIPTION
    This operation bring (partly) .PS1 files to the level of .VBS as far as execution
    through Explorer.exe is concern.
    This operation is not advised by Microsoft.
.NOTES
    File Name   : ModifyExplorer.ps1
    Author      : J.P. Blanc - jean-paul_blanc@silogix-fr.com
    Prerequisite: PowerShell V2 on Vista and later versions.
    Copyright 2010 - Jean Paul Blanc/Silogix
.LINK
    Script posted on:
    http://www.silogix.fr
.EXAMPLE
    PS C:\silogix> Set-PowAsDefault -On
    Call Powershell for .PS1 files.
    Done!
.EXAMPLE
    PS C:\silogix> Set-PowAsDefault
    Tries to go back
    Done!
#>
function Set-PowAsDefault
{
  [CmdletBinding()]
  Param
  (
    [Parameter(mandatory=$false, ValueFromPipeline=$false)]
    [Alias("Active")]
    [switch]
    [bool]$On
  )

  begin
  {
    if ($On.IsPresent)
    {
      Write-Host "Call PowerShell for .PS1 files."
    }
    else
    {
      Write-Host "Try to go back."
    }
  }

  Process
  {
    # Text Menu
    [string]$TexteMenu = "Go inside PowerShell"

    # Text of the program to create
    [string] $TexteCommande = "%systemroot%\system32\WindowsPowerShell\v1.0\powershell.exe -Command ""&'%1'"""

    # Key to create
    [String] $clefAModifier = "HKLM:\SOFTWARE\Classes\Microsoft.PowerShellScript.1\Shell\Open\Command"

    try
    {
      $oldCmdKey = $null
      $oldCmdKey = Get-Item $clefAModifier -ErrorAction SilentlyContinue
      $oldCmdValue = $oldCmdKey.getvalue("")

      if ($oldCmdValue -ne $null)
      {
        if ($On.IsPresent)
        {
          $slxOldValue = $null
          $slxOldValue = Get-ItemProperty $clefAModifier -Name "slxOldValue" -ErrorAction SilentlyContinue
          if ($slxOldValue -eq $null)
          {
            New-ItemProperty $clefAModifier -Name "slxOldValue" -Value $oldCmdValue  -PropertyType "String" | Out-Null
            New-ItemProperty $clefAModifier -Name "(default)" -Value $TexteCommande  -PropertyType "ExpandString" | Out-Null
            Write-Host "Done !"
          }
          else
          {
            Write-Host "Already done!"
          }
        }
        else
        {
          $slxOldValue = $null
          $slxOldValue = Get-ItemProperty $clefAModifier -Name "slxOldValue" -ErrorAction SilentlyContinue
          if ($slxOldValue -ne $null)
          {
            New-ItemProperty $clefAModifier -Name "(default)" -Value $slxOldValue."slxOldValue"  -PropertyType "String" | Out-Null
            Remove-ItemProperty $clefAModifier -Name "slxOldValue"
            Write-Host "Done!"
          }
          else
          {
            Write-Host "No former value!"
          }
        }
      }
    }
    catch
    {
      $_.exception.message
    }
  }
  end {}
}

2
Çalışması için bu konumda değiştirmek zorunda kaldım: Bilgisayar \ HKEY_CLASSES_ROOT \ Applications \ powershell.exe \ Shell \ Open \ Command. Bunun nedenini açıklamak için kayıt defterini yeterince anlamıyorum. Belki Powershell 3.0 çalıştırdığım için? Her neyse, senaryo için teşekkürler.
Wouter

15

Kayıt defterini değiştirmeniz gerekecek. İlk olarak, varsayılan olarak ayarlanmadığı için HKEY_CLASSES_ROOT için bir PSDrive yapılandırın. Bunun komutu:

New-PSDrive HKCR Registry HKEY_CLASSES_ROOT

Artık HKEY_CLASSES_ROOT kayıt defteri anahtarlarında ve değerlerinde normal HKCU ve HKLM PSDrives'lerde yaptığınız gibi gezinebilir ve düzenleyebilirsiniz.

PowerShell komut dosyalarını doğrudan başlatmak üzere çift tıklatmayı yapılandırmak için:

Set-ItemProperty HKCR:\Microsoft.PowerShellScript.1\Shell '(Default)' 0

PowerShell ISE'de PowerShell komut dosyalarını açmak üzere çift tıklatmayı yapılandırmak için:

Set-ItemProperty HKCR:\Microsoft.PowerShellScript.1\Shell '(Default)' 'Edit'

Varsayılan değeri geri yüklemek için (PowerShell komut dosyalarını Not Defteri'nde açmak için çift tıklatın):

Set-ItemProperty HKCR:\Microsoft.PowerShellScript.1\Shell '(Default)' 'Open'

Yükseltilmiş bir PowerShell ISE'sinin son satırını kullanarak varsayılan değeri geri yüklemeyi denedim, ancak görünüşe göre Thermionix gibi bir komutu kullandıysanız, varsayılanın yerini alıyor, bu yüzden Shell.command'ı açıkça sıfırlamanız gerekiyor (ama bulamadım) doğru sözdizimini bu yüzden Denetim Masası> Programlar> Dosya İlişkileri'ne gitmek zorunda kaldım).
dragon788

13

Bir sistem ayarı yapmanın biraz fazla olabileceğini kabul ediyorum, ancak sabit kodlu bir yol gerektiren kısayol ideal değil. Bir bat dosyası aslında sorunu güzelce çözer

RunMyPowershellScript.bat

 start powershell -command "& '.\MyPowershellScript.ps1' -MyArguments blah"

Bu toplu iş dosyası artık çift tıklatılabilir, toplu iş dosyası için kısayollar kolayca oluşturulabilir ve komut dosyası herhangi bir klasöre dağıtılabilir.


Ps dosyasıyla bat dosyasıyla aynı klasörde olmanız gerektiğini unutmayın. 2 dosya bakımı pahasına kopyala yapıştırma yeteneği kazanırsınız.
jiggunjer

11

Bunu kayıt defterinde ayarlamak için basit PowerShell komutları;

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
Set-ItemProperty -Path "HKCR:\Microsoft.PowerShellScript.1\Shell\open\command" -name '(Default)' -Value '"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -noLogo -ExecutionPolicy unrestricted -file "%1"'

5
Biraz daha fazla güvenlik için ExecutionPolicy RemoteSigned için, ağdan / internetten indirilen rastgele bir komut dosyasının (yerel olarak oluşturulmadığını belirten meta verilerle) çift tıklamadan yürütülmeyeceğini, ancak kopya ve kodu bir .ps1 dosyasına yapıştırmak, onunla ilişkili meta verilere sahip olmadığından yürütülür.
dragon788

6
  1. REGEDIT dizinine HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Microsoft.PowerShellScript.1 \ Shell klasörüne gidin.
  2. Sağ bölmede, "(Varsayılan)" öğesini çift tıklayın.
  3. "Açık" (Not Defteri'ni başlatan) mevcut değerini silin ve "0" (sıfır olduğu ve doğrudan Powershell'i başlatan) yazın.

Not Defteri'ni tekrar varsayılan olarak kullanmak istiyorsanız değeri geri alın.


5

Bir powershell betiğini çift tıklatarak yürütmenize izin verecek ps1dosyaların varsayılan dosya ilişkilendirmesini ayarlayabilirsiniz powershell.exe.

Windows 10'da,

  1. Bir ps1dosyaya sağ tıklayın
  2. Tıklayın Open with
  3. Tıklayın Choose another app
  4. Açılır pencerede şunu seçin: More apps
  5. En alta ilerleyin ve seçeneğini belirleyin Look for another app on this PC.
  6. Gözatın ve seçin C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe.
  7. Liste öğesi

Bu dosya ilişkilendirmesini değiştirir ve ps1dosyalar çift tıklatılarak yürütülür. notepad.exeVarsayılan uygulamaya ayarlayarak bunu varsayılan davranışına geri döndürebilirsiniz .

Kaynak


1
Bu iyi çalışıyor ama hemen hemen vizmi'nin cevabını çoğaltır.
Marteng

4

aynı adı taşıyan .ps1 dosyamla alt klasörüme basit bir .cmd dosyası koy, bu nedenle, örneğin, "foobar" adlı bir komut dosyasında "foobar.ps1" ve "foobar.cmd" olur. Bu nedenle .ps1'i çalıştırmak için tek yapmam gereken .cmd dosyasını explorer'dan tıklamak veya .cmd'yi komut isteminden çalıştırmak. Aynı temel adı kullanıyorum çünkü .cmd dosyası otomatik olarak kendi adını kullanarak .ps1'i arayacaktır.

::====================================================================
:: Powershell script launcher
::=====================================================================
:MAIN
    @echo off
    for /f "tokens=*" %%p in ("%~p0") do set SCRIPT_PATH=%%p
    pushd "%SCRIPT_PATH%"

    powershell.exe -sta -c "& {.\%~n0.ps1 %*}"

    popd
    set SCRIPT_PATH=
    pause

Pushd / popd, komut dosyalarının bulunduğu belirli dizine geçmek zorunda kalmadan .cmd dosyasını komut isteminden başlatmanıza olanak tanır. Komut dosyası dizinine değişecektir, daha sonra tamamlandığında orijinal dizine geri dönün.

Komut dosyası tamamlandığında komut penceresinin kaybolmasını istiyorsanız da duraklamayı kaldırabilirsiniz.

.Ps1 komut dosyamda parametreler varsa, .NET Forms kullanarak GUI istemleri olan istemleri isterim, ancak komut dosyalarını yerine geçmek istersem parametreleri kabul edecek kadar esnek hale getiririm. Bu şekilde Explorer'dan çift tıklayabilirim ve parametrelerin ayrıntılarını bilmek zorunda değilim, çünkü liste kutuları veya diğer formlarla bana ihtiyacım olan şeyi soracak.


2
Toplu iş dosyası için teşekkürler. Bildiğiniz gibi, "for" ifadesini şu şekilde değiştirebilirsiniz: "set SCRIPT_PATH =% ~ p0" (tırnak işaretleri olmadan). Aslında, ~ p0 yerine ~ dp0 kullanırdım, böylece sürücüler arasında çalışır. Bunu kendim kullanacağım.
zumalifeguard

2

Bu KoZm0kNoT'nin cevabına dayanmaktadır. Sürücülerde çalışacak şekilde değiştirdim.

@echo off
pushd "%~d0"
pushd "%~dp0"
powershell.exe -sta -c "& {.\%~n0.ps1 %*}"
popd
popd

Kullanıcının cwd'sinin farklı bir sürücüde olması durumunda iki itme / itme gerekir. Dış küme olmadan, komut dosyasıyla sürücüdeki cwd kaybolur.


2

Bu komut dosyaları varsayılan olarak yönetici olarak çalıştırmak için kullandığım şey:

Powershell.exe -Command "& {Start-Process PowerShell.exe -Verb RunAs -ArgumentList '-File """%1"""'}"

Bunu varsayılan değer olarak regedit'e yapıştırmanız gerekir:

HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Open\Command

Veya işte sizin için yapacak bir komut dosyası:

$hive = [Microsoft.Win32.RegistryKey]::OpenBaseKey('ClassesRoot', 'Default')
$key = $hive.CreateSubKey('Microsoft.PowerShellScript.1\Shell\Open\Command')
$key.SetValue($null, 'Powershell.exe -Command "& {Start-Process PowerShell.exe -Verb RunAs -ArgumentList ''-File """%1"""''}"')

2

Gelişmiş Windows yönetimine aşina iseniz, bu ADM paketini kullanabilir (talimatlar bu sayfaya dahil edilmiştir) ve bu şablon ve Yerel GPO aracılığıyla çift tıkladıktan sonra PowerShell komut dosyalarının çalıştırılmasına izin verebilirsiniz. Bundan sonra .ps1 filetype ile ilişkili varsayılan programı powershell.exe(aramayı kullanın, oldukça saklanmış) olarak değiştirebilirsiniz ve PowerShell komut dosyalarını çift tıklamayla çalıştırmaya hazırsınız.

Aksi halde, tüm sistemi bu yönetim araçlarıyla karıştırabileceğiniz için diğer önerilere bağlı kalmanızı tavsiye ederim.

Varsayılan ayarların çok katı olduğunu düşünüyorum. Birisi bilgisayarınıza bazı kötü amaçlı kod koymayı başarırsa, bu kısıtlamayı atlayabilir (.cmd dosyasına veya .exe'ye sarın veya kısayolla hile yapın) ve sonunda elde ettiği her şey sadece yazdığınız komut dosyasını çalıştırmanın kolay yolundan


Yüklendikten sonra bu ayarı "Yerel Grup İlkesi Düzenleyicisi" altında bulabilirsiniz: Yerel Bilgisayar İlkesi -> Bilgisayar Yapılandırması -> Yönetim Şablonları -> Windows Bileşenleri. Orada, etkinleştirebilir ve açılır listeden etkinleştirilen bir politika seçtiğinizden emin olun.
Wouter

1

PS1 komut dosyalarını çalıştırmayı kolaylaştırmak için Windows 'SendTo' işlevini kullanabilirsiniz. Bu yöntemi kullanarak bir PS1 komut dosyasına sağ tıklayıp yürütebilirsiniz. Bu OP sorusuna tam olarak cevap vermiyor ama yakın. Umarım, bu başkaları için yararlıdır. BTW .. Bu, diğer çeşitli görevler için yararlıdır.

  • Powershell.exe dosyasını bulun / arayın
  • Powershell.exe'ye sağ tıklayın ve Dosya Konumunu Aç'ı seçin
  • Powershell.exe'ye sağ tıklayın ve Kısayol Oluştur'u seçin. Masaüstünüz gibi bir yeri geçici olarak kaydedin
  • Varsayılan olarak Yönetici olarak açmak isteyebilirsiniz. Kısayol> Özellikler> Gelişmiş> Yönetici Olarak Aç'ı seçin
  • Sendto klasörünü açın. Başlat> Çalıştır> Kabuk: Sendto
  • Powershell.exe kısayolunu Sendto klasörüne taşıma
  • Artık bir PS1 betiğine sağ tıklayabilmelisiniz.
  • PS1 dosyasına sağ tıklayın, SendTo bağlam seçeneğini seçin> Powershell kısayolunu seçin
  • PS1 komut dosyanız yürütülmelidir.

1
Bu, varsayılan 'Powershell ile çalıştır' bağlam menüsü seçeneğinden nasıl daha iyi?
elBradford

1

Bunu kullandım (sadece bir kez çalıştırmanız gerekir); ayrıca yürütme haklarına sahip olduğunuzdan emin olun:

yükseltilmiş haklara sahip PowerShell'den:

Set-ExecutionPolicy=RemoteSigned

sonra bir yarasa dosyasından:

-----------------------------------------

 ftype Microsoft.PowerShellScript.1="C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -noexit ^&'%%1'

 assoc .ps1=Microsoft.PowerShellScript.1

-----------------------------------------
auto exit: remove -noexit 

ve voila; * .ps1 üzerine çift tıklandığında çalıştırılır.


The term '%1' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
ajeh

Kayıt defteri anahtarında kabul edilen yanıttan gelen komutu kullandıktan sonra, yalnızca kabul edilen yanıtın bu cevapla birleşimi benim için çalıştı. Görünüşe göre koşmak assocgerekiyor.
ajeh

@ajeh (partiye bieng leet için üzgünüm. Bu hatayı alırsanız, yanlış tek tırnaklarınız olduğu için UTF-8 kullandığınızdan emin olun. (notepad ++ kullanın; iki dizeyi bırakın, runme.cmd dosyası olarak kaydedin) )
Paul Fijma

1

Windows 10'da, dosya uzantısı ilişkilendirmesi için Windows Gezgini'nin geçersiz kılmasını da silmek isteyebilirsiniz:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ps1\UserChoice

buna ek olarak HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\open\commanddiğer cevaplarda belirtilen değişikliğe .

Bkz. Https://stackoverflow.com/a/2697804/1360907



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.