คำถามติดแท็ก powershell

PowerShell เป็นบรรทัดคำสั่งข้ามแพลตฟอร์มและยูทิลิตี้การเขียนสคริปต์จาก Microsoft ใช้แท็กนี้สำหรับคำถามเกี่ยวกับการเขียนและเรียกใช้สคริปต์ PowerShell เท่านั้น ควรติดแท็กคำถามการเขียนโปรแกรมสำหรับ PowerShell Core เวอร์ชั่นข้ามแพลตฟอร์ม (Windows, macOS และ Linux) [powershell-core] ควรถามคำถามเกี่ยวกับการดูแลระบบใน Super User หรือ Server Fault

11
รับรุ่นของไฟล์ใน PowerShell
คุณจะรับข้อมูลรุ่นจาก.dllหรือ.exeไฟล์ใน PowerShell ได้อย่างไร ผมสนใจเฉพาะในFile Versionแต่ข้อมูลรุ่นอื่น ๆ (นั่นคือCompany, Language, Product Nameฯลฯ ) จะเป็นประโยชน์เช่นกัน

6
เมื่อใดที่ฉันควรใช้ข้อผิดพลาดในการเขียนเทียบกับการโยน การยุติและข้อผิดพลาดที่ไม่สิ้นสุด
ดูที่สคริปต์ Get-WebFile บน PoshCode, http://poshcode.org/3226ฉันสังเกตเห็นการคุมกำเนิดที่แปลกประหลาดนี้: $URL_Format_Error = [string]"..." Write-Error $URL_Format_Error return อะไรคือสาเหตุของสิ่งนี้เมื่อเทียบกับสิ่งต่อไปนี้? $URL_Format_Error = [string]"..." Throw $URL_Format_Error หรือดีกว่า: $URL_Format_Error = New-Object System.FormatException "..." Throw $URL_Format_Error ดังที่ฉันเข้าใจแล้วคุณควรใช้ Write-Error สำหรับข้อผิดพลาดที่ไม่สิ้นสุดและการโยนเพื่อยกเลิกข้อผิดพลาดดังนั้นฉันคิดว่าคุณไม่ควรใช้ Write-Error ตามด้วย Return มีความแตกต่างหรือไม่?

18
ฉันจะส่งออกข้อความโดยไม่ขึ้นบรรทัดใหม่ใน PowerShell ได้อย่างไร
ฉันต้องการสคริปต์ PowerShell ของฉันเพื่อพิมพ์สิ่งนี้: Enabling feature XYZ......Done สคริปต์มีลักษณะดังนี้: Write-Output "Enabling feature XYZ......." Enable-SPFeature... Write-Output "Done" แต่Write-Outputพิมพ์บรรทัดใหม่เสมอในตอนท้ายเพื่อผลลัพธ์ของฉันไม่ได้อยู่ในบรรทัดเดียว มีวิธีทำเช่นนี้หรือไม่?
145 powershell 

6
โหลดเส้นทางใหม่ใน PowerShell
หากฉันมีอินสแตนซ์ของ PowerShell ISE ทำงานอยู่และฉันติดตั้งบางอย่างที่ปรับเปลี่ยน PATH หรือฉันแก้ไขมันในทางใดทางหนึ่งนอก PowerShell จากนั้นฉันต้องรีสตาร์ท PowerShell เพื่อให้เห็นตัวแปร PATH ที่ได้รับการปรับปรุง มีวิธีโหลดเส้นทางใหม่จากภายใน PowerShell โดยไม่ต้องเริ่มต้นใหม่หรือไม่

7
PowerShell: เรียกใช้คำสั่งจากไดเรกทอรีของสคริปต์
ฉันมีสคริปต์ PowerShell ที่ทำสิ่งต่าง ๆ โดยใช้ไดเรกทอรีปัจจุบันของสคริปต์ ดังนั้นเมื่ออยู่ในไดเรกทอรี.\script.ps1ดังกล่าว ตอนนี้ฉันต้องการเรียกสคริปต์นั้นจากไดเรกทอรีอื่นโดยไม่เปลี่ยนไดเรกทอรีอ้างอิงของสคริปต์ ดังนั้นฉันต้องการโทร..\..\dir\script.ps1และยังต้องการให้สคริปต์ทำงานตามที่เรียกจากภายในไดเรกทอรี ฉันจะทำเช่นนั้นได้อย่างไรหรือฉันจะแก้ไขสคริปต์เพื่อให้สามารถเรียกใช้จากไดเรกทอรีใด ๆ
144 powershell 

4
PowerShell และผู้ประกอบการที่เกี่ยวข้อง
พิจารณาตัวอย่างต่อไปนี้: "12-18" -Contains "-" คุณคิดว่าสิ่งนี้จะประเมินผลtrueแต่ก็ไม่เป็นเช่นนั้น สิ่งนี้จะประเมินfalseแทน ฉันไม่แน่ใจว่าทำไมสิ่งนี้เกิดขึ้น แต่ทำ เพื่อหลีกเลี่ยงปัญหานี้คุณสามารถใช้สิ่งนี้แทน: "12-18".Contains("-") ตอนนี้นิพจน์จะประเมินเป็นจริง เหตุใดข้อมูลโค้ดแรกจึงมีพฤติกรรมเช่นนั้น มีอะไรพิเศษเกี่ยวกับสิ่ง-ที่ไม่ได้เล่นอย่างสวยงาม-Containsหรือ เอกสารไม่ได้พูดถึงอะไรเกี่ยวกับมัน

5
วิธีการนับวัตถุใน PowerShell
ขณะที่ฉันอ่านในคู่มือผู้ใช้ PowerShell หนึ่งในแนวคิดหลักของ PowerShell คือคำสั่งยอมรับและส่งคืนวัตถุแทนข้อความ ตัวอย่างเช่นการรันget-aliasจะส่งคืนSystem.Management.Automation.AliasInfoวัตถุจำนวนหนึ่งให้ฉัน: PS Z: \> รับนามแฝง นิยามชื่อ CommandType ----------- ---- ---------- นามแฝง% ForEach-Object นามแฝง? ที่ไหน - วัตถุ นามแฝง ac Add-Content นามแฝง asnp Add-PSSnapIn Alias ​​cat Get-Content นามแฝง cd Set-Location Alias ​​chdir Set-Location ... ตอนนี้ฉันจะนับวัตถุเหล่านี้ได้อย่างไร

2
วิธีที่ดีที่สุดในการเขียนไปยังคอนโซลใน PowerShell
ฉันมีความสับสนเล็กน้อยเกี่ยวกับวิธีการพิมพ์ (echo) ไปยังคอนโซล ฉันได้เห็นว่ามีหลายวิธีในการเขียนผลลัพธ์ไปยังคอนโซลเช่น: Write-Host "Hello world1" "Hello World2" Out-Host -InputObject "Hello World3" ทั้งสามวิธีจะพิมพ์ไปที่คอนโซล ตรงกลางเป็นอย่างใดอย่างง่ายและ verbose น้อยกว่าและใช้งานง่ายขึ้น ฉันยังพบว่าเมื่อคุณเขียนฟังก์ชั่นเช่น: function GetValues() { "1" "2" } มันยังคงส่งคืนสองสายในไปป์ไลน์: และฉันยังสามารถพิมพ์ค่าได้: foreach ($s in GetValues) { Write-Host "s: " $s } สิ่งที่ฉันได้พบคือการใช้เพียงสตริงที่ยกมาไม่ได้ปรากฏบนโฮสต์ที่กำหนดเองและฉันต้องใช้Write-Hostเพื่อรับค่าเพื่อพิมพ์บนโฮสต์ที่กำหนดเอง อย่างใดฉันก็พบว่าสับสนนี้ คือ"Print something"ควรจะเป็นชื่อแทนWrite-Hostหรือสิ่งที่เป็นความตั้งใจ?
142 powershell 

30
จะรับกลุ่มทั้งหมดที่ผู้ใช้เป็นสมาชิกได้อย่างไร?
Get-ADGroupMembercmdlet ของ PowerShell ส่งคืนสมาชิกของกลุ่มเฉพาะ มี cmdlet หรือคุณสมบัติเพื่อรับกลุ่มทั้งหมดที่ผู้ใช้เฉพาะเป็นสมาชิกหรือไม่? ฉันคงผิดพลาดของฉัน: ควรจะเป็นGet-MemberGet-ADGroupMember

5
วิธีที่ดีกว่า (สะอาดกว่า) ในการละเว้นเอาต์พุตใน PowerShell คืออะไร? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบพร้อมข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการเมื่อปีที่แล้ว ปรับปรุงคำถามนี้ สมมติว่าคุณมี method หรือ cmdlet ที่คืนค่าบางอย่าง แต่คุณไม่ต้องการใช้และไม่ต้องการส่งออก ฉันพบสองวิธีนี้: Add-Item > $null [void]Add-Item Add-Item | Out-Null คุณใช้อะไร? แนวทางใดที่ดีกว่า / สะอาดกว่า ทำไม?
139 powershell  null  void 

12
ฉันจะถอนการติดตั้งแอปพลิเคชันโดยใช้ PowerShell ได้อย่างไร
มีวิธีง่ายๆในการเชื่อมต่อกับฟังก์ชัน' เพิ่มหรือลบโปรแกรม ' มาตรฐานโดยใช้ PowerShell เพื่อถอนการติดตั้งแอปพลิเคชันที่มีอยู่หรือไม่? หรือเพื่อตรวจสอบว่ามีการติดตั้งแอปพลิเคชันหรือไม่?

4
เลือกค่าของคุณสมบัติหนึ่งบนวัตถุทั้งหมดของอาร์เรย์ใน PowerShell
สมมติว่าเรามีอาร์เรย์ของวัตถุ $ object สมมติว่าวัตถุเหล่านี้มีคุณสมบัติ "ชื่อ" นี่คือสิ่งที่ฉันต้องการทำ $results = @() $objects | %{ $results += $_.Name } วิธีนี้ได้ผล แต่จะทำได้ดีกว่านี้หรือไม่? หากฉันทำสิ่งที่ชอบ: $results = objects | select Name $resultsคืออาร์เรย์ของวัตถุที่มีคุณสมบัติ Name ฉันต้องการให้ $ results มีอาร์เรย์ของ Names มีวิธีที่ดีกว่า?

24
วิธีค้นหารุ่น Windows จากบรรทัดคำสั่ง PowerShell
ฉันจะค้นหาเวอร์ชั่น Windows ที่ใช้อยู่ได้อย่างไร ฉันใช้ PowerShell 2.0 และลอง: PS C:\> ver The term 'ver' 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 tha t the path is correct and try again. …

8
การอ้างอิง system.management.automation.dll ใน Visual Studio
ฉันกำลังเริ่มดูโมเดล PowerShell และการพัฒนาสแน็ปอิน สิ่งแรกที่ฉันสังเกตเห็นคือการอ้างอิง System.management.automation.dll อย่างไรก็ตามใน Visual Studio แท็บ. NET ไม่มีแอสเซมบลีนั้นและไม่มีใครสามารถเรียกดูได้ C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll เพื่อทำการอ้างอิงตามไฟล์ ฉันถูกบังคับให้คัดลอกไฟล์ออกด้วยตนเองเพื่อให้อ้างอิงได้ง่ายหรือไม่?

6
วิธีรับค่าคุณสมบัติของวัตถุตามชื่อคุณสมบัติ?
ใน PowerShell คุณจะได้รับค่าคุณสมบัติของวัตถุโดยการระบุชื่อ (สตริง) ได้อย่างไร ฉันต้องการสิ่งต่อไปนี้: $obj = get-something # View the object's members: $obj | gm # I could retrieve a property by doing so: write-host $obj.SomeProp # But for many purposes, I would really want to: write-host $obj | Get-PropertyByName "SomeProp" มีบางอย่างที่คล้ายกับ "Get-PropertyByName" ใน PowerShell หรือไม่
132 powershell 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.