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

Windows PowerShell เป็นเชลล์บรรทัดคำสั่งและภาษาสคริปต์สำหรับ Windows ที่แทนที่เชลล์ CMD.exe และภาษาแบตช์ PowerShell ยังเป็นเอ็นจิ้นระบบอัตโนมัติสำหรับ Windows ที่มีฟังก์ชันการทำงานคล้ายกับ Windows Script Host และ VBScript

1
พิจารณา 32 บิต / 64 บิตจากสคริปต์ PowerShell ในการตั้งค่า Inno
พิจารณาสคริปต์ powershell ต่อไปนี้: [System.IntPtr]::Size [Environment]::Is64BitProcess ถ้าฉันเรียกใช้สิ่งนี้ภายใน powershell โดยตรงบนเครื่อง 64 บิตแสดงว่าฉันถูกต้องแล้ว 8 True แต่เมื่อฉันห่อสิ่งนี้ไว้ในตัวติดตั้งแบบขยายตัวเองโดยใช้ Inno Setup (ที่สร้างขึ้นบนเครื่อง 32 บิต) ฉันมักจะได้รับ: 4 False ฉันจะแน่ใจได้อย่างไรว่า PowerShell ทำงานในโหมด 64 บิตเมื่ออยู่บนคอมพิวเตอร์ 64 บิต (และ 32 บิตสำหรับคอมพิวเตอร์ 32 บิต) ฉันได้ลองเรียกใช้งานไฟล์แบตช์ซึ่งเรียกสคริปต์ PowerShell ด้วยว่าระบบจะเริ่มทำงาน PowerShell ในโหมดเริ่มต้น แต่ก็ใช้งานไม่ได้ ฉันได้ลอง iexpress เพื่อตัดโปรแกรมปัญหาเดียวกัน

1
มีคำสั่ง PowerShell ที่สามารถเปลี่ยนการตั้งค่า gpedit เพื่อ จำกัด ผู้ใช้เดสก์ท็อประยะไกลให้เป็นเซสชันเดียวได้หรือไม่
ฉันต้องติดตั้งเซิร์ฟเวอร์บ่อยครั้งและกำลังพัฒนาสคริปต์การตั้งค่าพื้นฐานเพื่อกำหนดแนวทางปฏิบัติมาตรฐานสูงสุดของกลุ่มของเรา เรามักจะต้องเปิดใช้งานมากกว่าหนึ่งครั้งสำหรับผู้ใช้ระยะไกล ดังนั้นสิ่งที่ฉันสงสัยคือถ้าฉันสามารถปิดการใช้งานสคริปต์นโยบาย "จำกัด ผู้ใช้บริการเดสก์ท็อประยะไกลไปยังเซสชันบริการเดสก์ท็อประยะไกล" ได้ gpedit.msc -> การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> คอมโพเนนต์ Windows -> บริการเดสก์ท็อประยะไกล -> โฮสต์เซสชันเดสก์ท็อประยะไกล -> การเชื่อมต่อ

0
Powershell: ฉันจะเปลี่ยนสีเส้นขอบของสไตล์ wpf Window.Resource ได้อย่างไร
ฉันกำลังพยายามสร้างปุ่ม wpf ToggleSwitch แต่ดูเหมือนว่าจะไม่สามารถค้นหาสไตล์ด้วยการใช้โค้ดด้านหลัง ความคิดคือการเปลี่ยนสีเส้นขอบและพื้นหลังของตัวควบคุมที่มีอยู่ภายใน window.resource.style คือ "ToggleButton" และ "slider" ฉันลองใช้ FindName แล้ว แต่นั่นไม่ส่งคืนสิ่งใดเพราะไม่ใช่ตัวควบคุม (?) ฉันไม่ได้เป็นผู้เชี่ยวชาญใน wpf หรือ xaml จริงๆ แต่ในบางครั้ง powerhell บางครั้งต้องตอบสนองความต้องการเฉพาะและที่นี่ฉัน ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม [void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework') $syncHash = [hashtable]::Synchronized(@{}) $newRunspace = [runspacefactory]::CreateRunspace() $newRunspace.ApartmentState = "STA" $newRunspace.ThreadOptions = "ReuseThread" $newRunspace.Open() $newRunspace.SessionStateProxy.SetVariable("syncHash",$syncHash) $psCmd = [PowerShell]::Create().AddScript({ [xml]$xaml = @" <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" …

0
วิธีใช้ PowerShell Set-Content
ฉันมีสคริปต์ Perl ที่สร้างผลลัพธ์ utf8 ฉันลองใช้ Set-Content เพื่อเขียนไฟล์ utf8 ตามที่Powershell เขียนทับ Perl binmode แนะนำหรือไม่ . perl -S testbinmode.pl | Set-Content "binmode.txt" -Encoding Byte สร้างข้อผิดพลาด "Set-Content: ไม่สามารถดำเนินการเข้ารหัสไบต์ได้เมื่อใช้การเข้ารหัสไบต์เนื้อหาจะต้องเป็นประเภทไบต์" perl -S testbinmode.pl | Set-Content "binmode.txt" -Encoding UTF8 ไม่สร้างข้อความแสดงข้อผิดพลาด แต่ไม่ได้เขียนไฟล์ utf8 ที่ถูกต้องเช่นกัน ผลลัพธ์ของสคริปต์ perl จะแสดงอย่างถูกต้องในหน้าต่าง Powershell วิธีที่ถูกต้องในการเขียนเอาต์พุตนั้นไปยังไฟล์ที่เข้ารหัส utf8 คืออะไร? ขอบคุณ ปรับปรุง: ฉันได้เห็นการตอบสนองหลาย ๆ นี้และปัญหาที่คล้ายกันที่นี่ที่ลิงค์อ้างถึงข้างต้นและที่https://stackoverflow.com/questions/40098771/changing-powershells-default-output-encoding-to-utf-8 ไม่มีใครทำงานได้เลยทำให้ฉันเชื่อว่าไม่มีใครผ่านการทดสอบ …

1
เทียบเท่า pmm noidle -u บน Windows
ใน OS X ผู้ใช้หนึ่งสามารถป้องกันไม่ให้ Mac เข้าสู่โหมดสลีปได้ชั่วคราวโดยใช้คำสั่ง: pmset noidle -u pmset - จัดการการตั้งค่าการจัดการพลังงาน noidle - ธงย่อมาจากวิธีการป้องกันการนอนหลับ u - จำลองกิจกรรมของผู้ใช้ เอฟเฟกต์ที่เทียบเท่าสามารถทำได้ใน Windows 7 โดยใช้cmdหรือPowershellไม่ใช้ซอฟต์แวร์เพิ่มเติมใด ๆ

1
จะค้นหาแป้นพิมพ์ลัด 'orphaned' ที่ไม่สามารถหลุดได้อย่างไร
ฉันมีสถานการณ์แปลก ๆ ที่นี่ สรุป: สร้างสคริปต์ Powershell สร้างไฟล์ช็อตคัตเพื่อเรียกใช้ (เป้าหมายคือ powershell.exe พร้อมพา ธ ไปยังสคริปต์ของฉันที่ส่งเป็นพารามิเตอร์) ผูกคีย์ลัดเข้ากับช็อตคัตไฟล์นั้น (ใช้กล่องโต้ตอบคุณสมบัติของช็อตคัตไฟล์) ภายหลังเปลี่ยนชื่อสคริปต์ Powershell ต้นแบบ หลังจากนั้นการกดแป้นพิมพ์ลัดทำให้ Windows พยายามเรียกใช้สคริปต์ที่ไม่มีอยู่ (Windows พยายามเรียกใช้ชื่อไฟล์สคริปต์เก่า) ไม่สามารถ rebind แป้นพิมพ์ลัดเป็นทางลัดไฟล์ใหม่ - การกดลำดับทำให้ Windows พยายามเรียกใช้ไฟล์ต้นฉบับอีกครั้ง แต่จะไม่เชื่อมโยงกับทางลัดไฟล์ใหม่ ดังนั้นตอนนี้ฉันมีแป้นพิมพ์ลัดทั่วโลกที่พยายามเรียกใช้สคริปต์ที่ไม่มีอยู่จริงและแป้นพิมพ์ลัดไม่สามารถผูกกับคำสั่งใหม่และไม่สามารถยกเลิกการผูกได้ เห็นได้ชัดว่ามันเป็นกำพร้า สิ่งที่ฉันได้ลอง: เปลี่ยนชื่อไฟล์. ps1 กลับไปเป็นชื่อเดิมและอัปเดตเป้าหมายทางลัดไฟล์เพื่อชี้กลับ กดCTRL+ALT+Sและสคริปต์จะทำงานอย่างถูกต้อง ดังนั้น Windows จึงเป็นที่ที่ชี้ไปCTRL+ALT+Sยังชื่อไฟล์. ps1 ดั้งเดิม ลบทางลัดไฟล์แล้วสร้างใหม่ ฟิลด์แป้นพิมพ์ลัดในกล่องโต้ตอบคุณสมบัติบอกว่าNoneดังนั้นฉันพยายามตั้งค่าโดยการคลิกในฟิลด์และกดCTRL+ALT+Sแต่นั่นทำให้ Windows พยายามเรียกใช้ทางลัดไฟล์ต้นฉบับอีกครั้งซึ่งล้มเหลว มันปฏิเสธที่จะตั้งค่าแป้นพิมพ์ลัดในทางลัดไฟล์ใหม่ตามลำดับ ลองชุดต่าง ๆ ของสิ่งต่าง …

1
Windows PowerShell
เป็นไปได้ไหมที่ PowerShell จะทำภารกิจอัตโนมัติเมื่อเปิดหรือปิดไฟล์? โดยเฉพาะอย่างยิ่ง: หากฉันคลิกขวาที่ไฟล์จะมี "เมนูบริบท" เป็นไปได้ไหมที่จะเรียกใช้หนึ่งในรายการเหล่านั้นในเมนูโดยอัตโนมัติเมื่อเปิดไฟล์และ / หรือปิด?

1
Windows DHCP Server - สคริปต์เพื่อลบสัญญาเช่าที่ซ้ำกันไปยังชื่อโฮสต์เดียวกัน
ฉันกำลังดูการสร้างสคริปต์ที่ล้างการทำสัญญาเช่า DHCP ซ้ำจากเซิร์ฟเวอร์ DHCP ที่ใช้ Windows Server 2008 R2 ของเรา ฉันพบว่าคุณไม่สามารถทำสิ่งนี้ได้ใน PowerShell แต่คุณสามารถใช้ PowerShell เพื่อเรียกคำสั่ง netsh.exe แล้วจัดการข้อมูลได้ คำสั่งเพื่อแสดงรายการสัญญาเช่า DHCP ทั้งหมด: netsh dhcp server 10.100.2.241 scope 10.100.0.0 show clients 1 ผลลัพธ์ที่ได้เป็นระเบียบเล็กน้อย: Changed the current scope context to 10.100.0.0 scope. Type : N - NONE, D - DHCP B - BOOTP, U …

1
ตรวจสอบและควบคุมการเชื่อมต่อ VPN
ฉันมีการเชื่อมต่อ VPN หนึ่งครั้งบนพีซีที่ทำงานของฉันซึ่งฉันต้องเชื่อมต่ออยู่ตลอดเวลา อย่างไรก็ตามบางครั้งมันก็ตัดการเชื่อมต่อและฉันค้นพบสิ่งนี้ในเวลาที่นานเช่นคิดว่าฉันมีข้อบกพร่องในการทำงานหรือบางสิ่งบางอย่าง ฉันต้องการเครื่องมือซอฟต์แวร์บางอย่างที่ฉันสามารถใช้เพื่อตรวจสอบได้อาจเป็นสคริปต์ PowerShell ที่ทำงานบนตัวจับเวลาและหากไม่ได้เชื่อมต่อให้เชื่อมต่ออีกครั้ง มีใครทำอะไรแบบนั้นหรือมีบางอย่างที่ทำเพื่องานเช่นนั้น?

3
Powershell - การถอนการติดตั้งรายการโปรแกรมใช้เวลานานเกินไป
ฉันกำลังมองหาความช่วยเหลือในการทำให้โค้ดมีประสิทธิภาพมากขึ้น ขณะนี้ฉันมีสคริปต์ Powershell ง่าย ๆ (ส่วนหนึ่งของสคริปต์ที่ใหญ่กว่า) ที่ระบุรายการจากไฟล์ข้อความ (คือสตริงที่ใช้เพื่อระบุโปรแกรมที่ติดตั้ง) แล้วลองถอนการติดตั้งแต่ละสตริงเหล่านั้นโดยใช้ msiexec: $javaUninstall = Get-Content .\jre-uninstall-list.txt foreach ($java in $javaUninstall) { write-host "Trying", "$java" $app = Get-WmiObject -Class Win32_Product | Where-Object { $_.IdentifyingNumber -match "$java" } &cmd /c "msiexec /uninstall $($app.IdentifyingNumber) /passive /quiet" } รหัสนี้ถอนการติดตั้ง Java เวอร์ชัน 32 บิตอย่างถูกต้องจาก Java 5 และบนที่มีอยู่ในระบบ …

1
วิธีเพิ่มความเร็วในการแสดงรายการเครื่องพิมพ์ด้วย PowerShell
เมื่อฉันใช้คำสั่ง Powershell ต่อไปนี้เพื่อแสดงรายการเครื่องพิมพ์ทั้งหมดที่แล็ปท็อปของฉันกำหนดค่าใช้เวลาสองสามนาทีเพื่อให้ Windows ส่งคืนผลลัพธ์ ฉันมีเครื่องพิมพ์ 3 เครื่องที่กำหนดค่าหนึ่งคือเครื่องพิมพ์ CutePDF เสมือนหนึ่งคือเครื่องพิมพ์ Canon ในเครือข่ายในบ้านของฉันและสุดท้ายคือเครื่องพิมพ์ Xerox ในเครือข่ายที่ทำงานของฉัน ฉันกำลังใช้รายการต่อไปนี้เพื่อแสดงรายการเครื่องพิมพ์ gwmi -class Win32_Printer -computer . มีวิธีที่เร็วกว่าในการทำเช่นนี้? อะไรคือสาเหตุที่ทำให้เครื่องช้าลงมันเป็นการสอบถามเครือข่ายสำหรับเซิร์ฟเวอร์การพิมพ์หรือไม่?

0
เรียกใช้คำสั่ง - เวลาดำเนินการที่ยาวนาน
ฉันกำลังทำงานกับสคริปต์ PowerShell ที่จะเปิด / ปิดกฎไฟร์วอลล์เฉพาะบนเครื่องระยะไกลในเครือข่ายย่อยท้องถิ่น นี่คือรหัส: $pc="PC1" if (Test-Connection -ComputerName $pc -Count 1 -quiet) { $RuleName = "{F5E13AFE-90F7-4EFA-B547-14B3262D8507}" ICM -ComputerName PC1 -ScriptBlock { Param($FWRule) IF(Get-NetFirewallRule $FWRule | where{$_.Enabled -eq $True}){Disable-NetFirewallRule $FWRule} ELSE{Enable-NetFirewallRule $FWRule} IF(Get-NetFirewallRule $FWRule | where{$_.Enabled -eq $True}){Write-Host "Internet access is blocking now`n" -ForegroundColor Red} ELSE{Write-host "You have an …

1
ดูว่าผู้ใช้เปิด / ใช้งาน Google Chrome ครั้งสุดท้ายเมื่อใด
ฉันสงสัยว่าจะมีวิธีหาเมื่อครั้งที่ผู้ใช้เปิดหรือใช้เบราว์เซอร์ Google Chrome จากระยะไกล (เช่นผ่าน PowerShell หรือรีจิสตรีคีย์) ฉันรู้แล้ว HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall และ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist และรีจิสตรีคีย์อื่น ๆ สามารถให้ข้อมูลที่เป็นประโยชน์เช่นติดตั้งข้อมูลได้ แต่ไม่มีคุณสมบัติที่ใช้ล่าสุด แผงควบคุมมีคอลัมน์ "ใช้ล่าสุดเมื่อ" แต่ข้อมูลนี้จัดเก็บที่ใด

1
windows 10 ไม่สามารถเรียกใช้ cmd powershell
ฉันมีปัญหากับพีซีเมื่อเร็ว ๆ นี้ฉันใช้ Hardentools เพื่อทำให้พีซีของฉันปลอดภัยยิ่งขึ้น น่าเศร้าที่ฉันทำผิดพลาดและบล็อก cmd และ powershell ให้กับตัวเอง มีวิธีย้อนกลับไหมฉันต้องการตอนนี้จริงๆ ฉันจะขอบคุณความช่วยเหลือใด ๆ ระบบปฏิบัติการ: win10 pro btw: ฉันไม่สามารถย้อนกลับได้โดยเพียงแค่ทำเครื่องหมายที่ช่องทำเครื่องหมายและทำอีกครั้งโปรแกรม: https://www.ghacks.net/2017/02/24/hardentools-make-windows-more-secure-by-disabling- คุณลักษณะ /

1
การดำเนินการคำสั่งในหลายโฟลเดอร์ย่อยใน windows powershell
ฉันอยู่ในโฟลเดอร์ที่มี 24 โฟลเดอร์ย่อย โฟลเดอร์ย่อยนั้นมีชื่อว่า Angle1, Angle2, ... , Angle24 ในแต่ละโฟลเดอร์ย่อยเหล่านี้ฉันต้องการดำเนินการคำสั่งนี้: Get-ChildItem PKA.dump -r | Sort-Object $_ | ForEach-Object { Get-Content $_ | Select -Index 19 } > output.txt มีวิธีทำเช่นนี้กับ Windows PowerShell หรือไม่ หมายเหตุฉันไม่ต้องการดำเนินการคำสั่งในโฟลเดอร์ย่อย สิ่งนี้ไม่ได้ทำในสิ่งที่ฉันต้องการ: Get-ChildItem/*/ PKA.dump -Recurse | Sort-Object $_ | ForEach-Object { Get-Content $_ | Select -Index 19 } …

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