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

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


1
powershell 2.0 ลองจับวิธีการเข้าถึงข้อยกเว้น
นี่คือtry catchใน PowerShell 2.0 $urls = "http://www.google.com", "http://none.greenjump.nl", "http://www.nu.nl" $wc = New-Object System.Net.WebClient foreach($url in $urls) { try { $url $result=$wc.DownloadString($url) } catch [System.Net.WebException] { [void]$fails.Add("url webfailed $url") } } แต่สิ่งที่ฉันต้องการทำคือสิ่งที่เหมือนใน c # catch( WebException ex) { Log(ex.ToString()); } เป็นไปได้หรือไม่

11
วิธีเรียกใช้สคริปต์ PowerShell โดยไม่ต้องแสดงหน้าต่าง
เป็นไปได้อย่างไรที่จะเรียกใช้สคริปต์PowerShellโดยไม่แสดงหน้าต่างหรือเครื่องหมายอื่นใดให้กับผู้ใช้ กล่าวอีกนัยหนึ่งสคริปต์ควรทำงานอย่างเงียบ ๆ ในพื้นหลังโดยไม่มีสัญญาณใด ๆ กับผู้ใช้ เครดิตเพิ่มเติมสำหรับคำตอบที่ไม่ใช้ส่วนประกอบของบุคคลที่สาม :)

8
ใช้ Invoke-WebRequest ด้วยชื่อผู้ใช้และรหัสผ่านสำหรับการพิสูจน์ตัวตนพื้นฐานบน GitHub API
ด้วย cURL เราสามารถส่งชื่อผู้ใช้ด้วยคำขอเว็บ HTTP ได้ดังนี้: $ curl -u <your_username> https://api.github.com/user -uธงยอมรับชื่อผู้ใช้สำหรับการตรวจสอบแล้วม้วนจะขอรหัสผ่าน ตัวอย่างม้วนสำหรับการตรวจสอบเบื้องต้นกับ GitHub Api เราจะส่งชื่อผู้ใช้และรหัสผ่านพร้อมกับ Invoke-WebRequest ได้อย่างไร? เป้าหมายสูงสุดคือผู้ใช้ PowerShell ที่มีการรับรองความถูกต้องขั้นพื้นฐานใน GitHub API

11
ข้อผิดพลาด Powershell v3 Invoke-WebRequest HTTPS
การใช้ Invoke-WebRequest และ Invoke-RestMethod ของ Powershell v3 ฉันใช้วิธี POST เพื่อโพสต์ไฟล์ json ไปยังเว็บไซต์ https คำสั่งที่ฉันใช้คือ $cert=New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("cert.crt") Invoke-WebRequest -Uri https://IPADDRESS/resource -Credential $cred -certificate $cert -Body $json -ContentType application/json -Method POST อย่างไรก็ตามเมื่อฉันพยายามใช้เมธอด GET เช่น: Invoke-WebRequest -Uri https://IPADDRESS/resource -Credential $cred -certificate $cert -Method GET ข้อผิดพลาดต่อไปนี้จะถูกส่งกลับ Invoke-RestMethod : The underlying connection was closed: An …
126 .net  rest  powershell  https 

8
Powershell สามารถเรียกใช้คำสั่งแบบขนานได้หรือไม่
ฉันมีสคริปต์ powershell เพื่อทำการประมวลผลแบบแบตช์กับรูปภาพจำนวนมากและฉันต้องการทำการประมวลผลแบบขนาน ดูเหมือนว่า Powershell จะมีตัวเลือกการประมวลผลเบื้องหลังเช่น start-job, wait-job ฯลฯ แต่ทรัพยากรที่ดีเพียงอย่างเดียวที่ฉันพบสำหรับการทำงานคู่ขนานคือการเขียนข้อความของสคริปต์และเรียกใช้สิ่งเหล่านั้น ( PowerShell Multithreading ) ตามหลักการแล้วฉันต้องการบางสิ่งที่คล้ายกับ foreach แบบขนานใน. net 4 สิ่งที่ดูเหมือนจะไม่สวยเช่น: foreach-parallel -threads 4 ($file in (Get-ChildItem $dir)) { .. Do Work } บางทีฉันอาจจะดีกว่าแค่ทิ้งตัวลงไปที่ c # ...

3
จะเรียกใช้แอปพลิเคชันเป็น“ run as administrator” จากพรอมต์คำสั่งได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันมีไฟล์แบตช์ที่เรียกว่าtest.bat. ฉันกำลังเรียกคำแนะนำด้านล่างในtest.batไฟล์: start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1 เมื่อฉันรันผ่านพรอมต์คำสั่ง testscript ของฉันทำงานได้สำเร็จ ฉันต้องการเรียกใช้ในฐานะผู้ดูแลระบบ (ราวกับว่าฉันได้สร้างทางลัดบนเดสก์ท็อปและเรียกใช้ในฐานะผู้ดูแลระบบไม่ควรแจ้งให้ป้อนชื่อผู้ใช้หรือรหัสผ่าน) ฉันได้ลองเพิ่ม/elevateและ/NOUACพารามิเตอร์ในข้างต้นtest.batแล้ว แต่โชคไม่ดี ฉันจะแก้ไขปัญหานี้ได้อย่างไร ฉันรู้วิธีทำด้วยตนเอง แต่ฉันต้องการให้ดำเนินการจากพรอมต์คำสั่ง (โดยMarnix Klooster ): ... โดยไม่ต้องใช้เครื่องมือเพิ่มเติมใด ๆ เช่นที่แนะนำในคำตอบสำหรับคำถาม Super User วิธีเรียกใช้โปรแกรมจากบรรทัดคำสั่งด้วยสิทธิ์ที่สูงขึ้น )

8
สคริปต์ PowerShell เพื่อค้นหาและแทนที่สำหรับไฟล์ทั้งหมดที่มีนามสกุลเฉพาะ
ฉันมีไฟล์คอนฟิกูเรชันหลายไฟล์ใน Windows Server 2008 ซ้อนกันดังนี้: C:\Projects\Project_1\project1.config C:\Projects\Project_2\project2.config ในการกำหนดค่าของฉันฉันต้องทำการแทนที่สตริงเช่นนี้: <add key="Environment" value="Dev"/> จะกลายเป็น: <add key="Environment" value="Demo"/> ฉันคิดเกี่ยวกับการใช้สคริปต์แบทช์ แต่ไม่มีวิธีที่ดีในการทำเช่นนี้และฉันได้ยินมาว่าด้วยสคริปต์ PowerShell คุณสามารถดำเนินการนี้ได้อย่างง่ายดาย ฉันพบตัวอย่างของการค้นหา / แทนที่ แต่ฉันหวังว่าจะมีวิธีที่จะสำรวจโฟลเดอร์ทั้งหมดภายในไดเร็กทอรี C: \ Projects ของฉันและค้นหาไฟล์ใด ๆ ที่ลงท้ายด้วยนามสกุล ".config" เมื่อพบหนึ่งฉันต้องการให้มันแทนที่ค่าสตริงของฉัน แหล่งข้อมูลที่ดีในการค้นหาวิธีการทำสิ่งนี้หรือผู้เชี่ยวชาญด้าน PowerShell ที่สามารถให้ข้อมูลเชิงลึกได้บ้าง?

6
วิธีที่ดีกว่าในการตรวจสอบว่ามีเส้นทางอยู่หรือไม่ใน PowerShell
ฉันไม่ชอบไวยากรณ์ของ: if (Test-Path $path) { ... } และ if (-not (Test-Path $path)) { ... } if (!(Test-Path $path)) { ... } โดยเฉพาะอย่างยิ่งมีวงเล็บมากเกินไปและอ่านไม่ได้มากเมื่อตรวจสอบว่า "ไม่มีอยู่จริง" สำหรับการใช้งานทั่วไป วิธีที่ดีกว่านี้คืออะไร? ปรับปรุง:วิธีการแก้ปัญหาปัจจุบันของฉันคือการใช้นามแฝงสำหรับexistและnot-existตามที่อธิบายไว้ที่นี่ ปัญหาที่เกี่ยวข้องในที่เก็บ PowerShell: https://github.com/PowerShell/PowerShell/issues/1970
124 powershell 

4
เหตุใด 'ดำเนินการต่อ' จึงมีพฤติกรรมเหมือน 'ทำลาย' ใน Foreach-Object?
ถ้าฉันทำสิ่งต่อไปนี้ในสคริปต์ PowerShell: $range = 1..100 ForEach ($_ in $range) { if ($_ % 7 -ne 0 ) { continue; } Write-Host "$($_) is a multiple of 7" } ฉันได้ผลลัพธ์ที่คาดหวังของ: 7 is a multiple of 7 14 is a multiple of 7 21 is a multiple of 7 28 is a …

7
ฉันจะบังคับให้ Powershell ส่งคืนอาร์เรย์ได้อย่างไรเมื่อการเรียกส่งคืนวัตถุเพียงชิ้นเดียว
ฉันใช้ Powershell เพื่อตั้งค่าการผูก IIS บนเว็บเซิร์ฟเวอร์และมีปัญหากับรหัสต่อไปนี้: $serverIps = gwmi Win32_NetworkAdapterConfiguration | Where { $_.IPAddress } | Select -Expand IPAddress | Where { $_ -like '*.*.*.*' } | Sort if ($serverIps.length -le 1) { Write-Host "You need at least 2 IP addresses for this to work!" exit } $primaryIp = $serverIps[0] $secondaryIp …
123 powershell 

5
วิธีแสดงรายการคุณสมบัติทั้งหมดของวัตถุ PowerShell
เมื่อฉันมองไปที่ระดับ Win32_ComputerSystemก็แสดงให้เห็นโหลดของคุณสมบัติเช่นStatus, PowerManagementCapabilitiesฯลฯ แต่เมื่ออยู่ใน PowerShell ฉันทำดังต่อไปนี้ฉันเท่านั้นที่ได้รับกลับมาคู่: PS C:\Windows\System32\drivers> Get-WmiObject -Class "Win32_computersystem" Domain : YYY.com Manufacturer : VMware, Inc. Model : VMware Virtual Platform Name : LONINEGFQEF58 PrimaryOwnerName : Authorised User TotalPhysicalMemory : 2147016704 ฉันจะดูคุณสมบัติทั้งหมดได้อย่างไร?
121 powershell 

2
ความคิดเห็นหลายบรรทัดใน PowerShell
เราสามารถแสดงความคิดเห็นหลายบรรทัดพร้อมกันใน PowerShell ได้หรือไม่? ฉันพยายามมองหา แต่ไม่พบคำตอบใด ๆ การแสดงความคิดเห็นแต่ละบรรทัดด้วยตนเองค่อนข้างน่ารำคาญหากสคริปต์ยาวเกินไป

7
การพิมพ์คุณสมบัติของวัตถุใน Powershell
เมื่อทำงานในคอนโซลแบบโต้ตอบถ้าฉันกำหนดวัตถุใหม่และกำหนดค่าคุณสมบัติบางอย่างให้เป็นดังนี้: $obj = New-Object System.String $obj | Add-Member NoteProperty SomeProperty "Test" จากนั้นเมื่อฉันพิมพ์ชื่อตัวแปรของฉันลงในหน้าต่างโต้ตอบ Powershell จะให้ฉันสรุปคุณสมบัติและค่าของวัตถุ: PS C:\demo> $obj SomeProperty ------------ Test โดยพื้นฐานแล้วฉันต้องการทำสิ่งนี้ แต่จากภายในฟังก์ชันในสคริปต์ ฟังก์ชั่นสร้างวัตถุและตั้งค่าคุณสมบัติบางอย่างและฉันต้องการให้พิมพ์สรุปค่าวัตถุไปยังหน้าต่าง Powershell ก่อนที่จะส่งคืน ฉันลองใช้ Write-Host ภายในฟังก์ชัน: Write-Host $obj แต่นี่เป็นเพียงผลลัพธ์ประเภทของวัตถุไม่ใช่ข้อมูลสรุป: System.Object ฉันจะให้ฟังก์ชันของฉันแสดงผลสรุปของค่าคุณสมบัติของวัตถุไปยังหน้าต่าง Powershell ได้อย่างไร
121 powershell 

4
VSCode Change Default Terminal
ฉันใช้ Visual Studio Code บนพีซี Windows 10 ของฉัน ฉันต้องการเปลี่ยนเทอร์มินัลเริ่มต้นจาก Windows PowerShell เป็น Bash บน Ubuntu (บน Windows) ฉันจะทำเช่นนั้นได้อย่างไร?

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