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

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

3
ติดอยู่ใน Powershell sqlserver
ฉันเป็นมือใหม่ที่ชอบความสามารถ ดังนั้นฉันจึงสร้างสคริปต์ที่ใช้Restore-SqlDatabasecommandlet อย่างไรก็ตามหลังจากที่ฉันเรียกใช้แล้วมันทำให้ Powershell อยู่ในสถานะที่ต่างออกไป PS D:\theFolder\> .\myRestoreDatabaseScript.ps1 ... snip does the work ... PS SQLSERVER:\> ฉันจะคืนค่า Powershell กลับไปที่อินเทอร์เฟซ "ปกติ" ได้อย่างไร นอกจากนี้สิ่งที่เป็นPS SQLSERVERคำนำหน้าเรียกว่า? ฉันลองใช้ Google เพื่อทำสิ่งนี้แล้วก็ว่างเปล่า
14 powershell 

2
วิธีการเริ่ม PowerShell จาก cmd โดยเส้นทางที่เฉพาะเจาะจง
ฉันต้องการเริ่มPowerShell (C: \ WINDOWS \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe) จากบรรทัดคำสั่งเริ่มต้นของwindows 7 ( cmd ) และไปที่เส้นทางเฉพาะ ฉันใช้คำสั่ง: start C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe มันจะทำงานและแสดงหน้าต่าง PowerShell แต่ถ้าฉันใช้: start C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe Set-Location c:\ หน้าต่างสีดำจะกระพริบอย่างรวดเร็ว ฉันจะเปิด powershell จาก cmd ตามเส้นทางที่ระบุได้อย่างไร ขอบคุณล่วงหน้า.

4
วิธียกเลิกการเชื่อมต่อไดรฟ์เครือข่ายโดยใช้ PowerShell
ฉันต้องการตัดการเชื่อมต่อไดรฟ์เครือข่าย (Y :) ด้วย powershell อักษรระบุไดรฟ์นั้นถูกกำหนด / แมปไปยังตำแหน่งเครือข่าย มีวิธีง่าย ๆ ในการทำเช่นนั้น? ฉันเชื่อว่า "net use XXX / delete" จะทำเช่นนั้น ปัญหาคือ: C:\Windows>net use New connections will be remembered. Status Local Remote Network ------------------------------------------------------------------------------- OK Y: \\192.168.1.108\d Microsoft Windows Network The command completed successfully. ทำไมเมื่อฉันลอง: C:\Windows>net use \\192.168.1.108\d /del ฉันเข้าใจ: C:\Windows>net use \\192.168.1.108\d …

3
เหตุใด Excel จึงไม่สามารถเปิดไฟล์เมื่อเรียกใช้จากตัวกำหนดเวลางานได้
ฉันเขียนสคริปต์ PowerShell ที่เปิดสมุดงาน Excel และเรียกใช้แมโคร เมื่อฉันเรียกใช้สคริปต์นั้นจากคอนโซล PS หรือแม้กระทั่งจากบรรทัดคำสั่งโดยใช้ powershell.exe script.ps1 ก็ใช้งานได้ เมื่อฉันตั้งค่างานจากตัวกำหนดเวลางาน windows มันจะยกข้อยกเว้นเกี่ยวกับไฟล์ Excel นั้นโดยบอกว่ามันไม่มีอยู่หรือกำลังใช้งานอยู่ ไฟล์มีอยู่อย่างแน่นอนเนื่องจากสคริปต์ทำงานได้ดีจากบรรทัดคำสั่งและฉันมั่นใจว่าไฟล์นี้ไม่ได้ใช้งาน ฉันพยายามย้ายไฟล์ Excel ไปยังพื้นที่ท้องถิ่นและที่ไม่มีสิทธิพิเศษเพื่อหลีกเลี่ยงปัญหาเครือข่าย / สิทธิ์ผู้ดูแลระบบ งานยังคงทำงานด้วยสิทธิพิเศษสูงสุด เส้นทางไม่มีช่องว่างหรืออักขระพิเศษ เมื่อฉันพยายามเข้าถึงไฟล์โดยใช้วัตถุระบบไฟล์ไม่มีข้อผิดพลาดแม้เมื่อเรียกใช้จากตัวกำหนดตารางเวลาดังนั้นฉันเดาว่ามันเป็นExcel.Application.Workbooks.Open("..")วิธีเฉพาะ สิ่งที่ฉันควรพิจารณาตอนนี้?

1
การจัดหาดอทช้ากว่าการอ่านเนื้อหาไฟล์หรือไม่?
ฉันได้เขียนโมดูล PowerShell ซึ่งดึงคำจำกัดความของฟังก์ชั่นจากไฟล์ต้นฉบับต่างๆ (เช่นหนึ่งไฟล์. ps1 ต่อฟังก์ชั่น) สิ่งนี้ทำให้เรา (ในฐานะทีม) สามารถทำงานกับฟังก์ชั่นที่แตกต่างกันในแบบคู่ขนาน โมดูล (ไฟล์. psm1) รับรายการไฟล์. ps1 ที่มีอยู่ ... $Functions = Get-ChildItem -Path $FunctionPath *.ps1 ... จากนั้นวนซ้ำในรายการและดึงในการกำหนดฟังก์ชั่นแต่ละรายการผ่านการจัดหาดอท: foreach($Function in $Functions) { . $Function.Fullname # Can be slow } ปัญหา:เราสังเกตเห็นว่าความเร็วในการทำให้สมบูรณ์อาจแตกต่างกันมากตั้งแต่ 10 ถึง 180 วินาทีสำหรับไฟล์ต้นฉบับประมาณ 50 ไฟล์ขึ้นอยู่กับเครื่องที่เราทดสอบ เราไม่สามารถอธิบายความแปรผันของเวลาที่หลากหลายและเชื่อว่าเราควบคุมตัวแปรเช่นประเภทเครื่อง, OS, บัญชีผู้ใช้, สิทธิ์ผู้ดูแลระบบ, โปรไฟล์ PS, รุ่น PS …

1
ฉันจะได้รับทรัพย์สินของวัตถุใน PowerShell โดยไม่ต้องใช้วงเล็บได้อย่างไร
ฉันมักจะพบว่าฉันต้องล้อมรอบคำสั่งในวงเล็บแล้วใช้ตัวดำเนินการเข้าถึงคุณสมบัติ (dot-syntax) เพื่อรับค่าของคุณสมบัติ มันค่อนข้างน่ารำคาญเพราะฉันต้องกลับไปที่จุดเริ่มต้นของบรรทัดเมื่อฉันอยากพิมพ์ต่อไปเรื่อย ๆ ว่าฉันอยู่ที่ไหน มันน่ารำคาญเป็นพิเศษเมื่อฉันอยู่ในชุดคำสั่ง piped ขนาดใหญ่ ตัวอย่าง หากฉันมีคำสั่งดังต่อไปนี้ Get-PSProvider FileSystem และฉันต้องการได้Drivesทรัพย์สินฉันจะต้องล้อมรอบคำสั่งทั้งหมดในวงเล็บก่อน: (Get-PSProvider FileSystem).Drives มีวิธีที่เร็วกว่าในการรับค่าของคุณสมบัติเดียวหรือไม่
13 powershell 

5
มีวิธีที่จะระงับการแจ้งให้โต้ตอบในสคริปต์ PowerShell หรือไม่
เมื่อเขียนสคริปต์ PowerShell ฉันสังเกตว่าเมื่อ cmdlets บางตัวประสบปัญหาพวกเขาแสดงพรอมต์แบบโต้ตอบ Remove-Item ในไดเรกทอรีที่ไม่ว่างเปล่าเป็นตัวอย่าง นี่เป็นเรื่องร้ายแรงเมื่อพยายามทำให้งานเป็นไปโดยอัตโนมัติฉันต้องการทำสิ่งที่ล้มเหลวและทิ้งข้อยกเว้นหรือส่งคืนรหัสส่งคืนที่ไม่ดีเพื่อให้สคริปต์ทั้งหมดไม่ถูกล็อครอการตอบกลับ มีวิธีใดที่จะบังคับให้ PowerShell ล้มเหลวโดยอัตโนมัติซึ่งต่างจากการค้นหาอินพุตของผู้ใช้ในการทำงานหรือไม่
13 powershell 

2
จำลองปุ่มคีย์บอร์ดผ่าน Command Line
แป้นพิมพ์ของฉันไม่มีNum Lockรหัสและการแก้ไขรีจิสทรีไม่ทำงานด้วยเหตุผลบางประการ ฉันสามารถใช้ Command Prompt หรือ PowerShell บน Windows 10 เพื่อ "กดปุ่ม" ได้หรือไม่? ฉันกำลังมองหาสิ่งที่ต้องการpress pgupกดPage Upคีย์ใน Command Prompt หรือ PowerShell Num Lockแต่สำหรับ

1
วิธีค้นหาและแทนที่สตริงในไฟล์ด้วย cmd หรือ PowerShell
ผมมีไฟล์ .txt ที่ฉันต้องการแทนที่สตริงด้วยaaabbb ฉันได้ลองใช้รหัส PowerShell ต่อไปนี้แล้ว: Get-Content c:\1.txt | ForEach-Object { $_ -replace "aaa", "bbb" } | Set-Content c:\1.txt ฉันได้รับข้อผิดพลาดที่1.txtกำลังถูกใช้โดยกระบวนการอื่น ผมทำอะไรผิดหรือเปล่า?

2
กำหนดค่า Windows Builders Update Night Light ผ่านทาง Registry
คุณสมบัติ Night Light ใหม่ใน Windows 10 (Pro) อัพเดทผู้สร้างสามารถกำหนดค่าผ่านรีจิสทรีได้อย่างไร? ฉันต้องการกำหนดค่าการติดตั้งใหม่ / อัปเดตอัตโนมัติเมื่อใช้เครื่องมือจัดการการตั้งค่าที่ฉันเลือก (Chef) การตรวจสอบระบบผ่านการตรวจสอบกระบวนการ Sysinternals แสดงให้เห็นว่ามีDataคีย์ไบนารีที่ได้รับการอัปเดตลึกHKCU\Software\Microsoft\Windows\CurrentVersion\CloudStore\Cache\DefaultAccount\$$windows.data.bluelightreduction.settings\Currentแต่นั่นเป็น REG_BINARY blob ขนาดใหญ่และไม่มีประโยชน์มาก ช่วยเหลือเกี่ยวกับรีจิสตรี, PowerShell หรือวิธีอัตโนมัติที่เป็นมิตรอื่น ๆ เพื่อกำหนดค่าฟีเจอร์ Night Light จะได้รับการชื่นชมมากที่สุด!

3
PowerShell: การปรับปรุงประวัติ (readline)
บางสิ่งที่ฉันชอบใน Bash และชอบที่จะรู้ว่าต้องทำอย่างไรใน PowerShell: ใน Bash ฉันมีการตั้งค่าการเลื่อนประวัติเพื่อให้เลื่อนเฉพาะคำสั่งที่ขึ้นต้นด้วยคำนำหน้าเดียวกับบรรทัดปัจจุบัน หากฉันต้องการเห็นการกระทำล่าสุดของฉัน (เช่นเพื่อนำส่วนหนึ่งของความคิดเห็นกลับมาใช้ใหม่) ฉันเขียน 'git' แล้ว ↑ . ที่เกี่ยวข้องแน่นอนว่าการค้นหาประวัติด้วย Ctrl + R เพื่อหาสิ่งอื่นฉันเขียน: h | grep foo ใน PowerShell ฉันใช้: h -c 1000 | where {$_.commandline.contains("foo")} (เห็นได้ชัดว่าฉันเป็นมือใหม่ต้องมีวิธีที่สั้นกว่า) สิ่งที่ชอบ: mv file.txt{,.bak} หรือ mv file.txt !#$.bak พื้นที่เวทย์มนตร์ (ที่ขยาย !$ อินไลน์) PowerShell มีทางเลือกอะไรบ้าง?

3
เหตุใด PowerShell ISE จึงไม่แยกตัวแปรสคริปต์เข้ากับขอบเขตสคริปต์
ใน PowerShell การกำหนดขอบเขตควรเก็บวัตถุ (ตัวแปรนามแฝงฟังก์ชัน ฯลฯ ) ในสคริปต์ไม่ให้ส่งผลกระทบต่อสภาพแวดล้อมแบบโกลบอล สิ่งนี้ดูเหมือนว่าจะทำงานได้ดีที่บรรทัดคำสั่ง แต่ไม่ใช่ใน ISE นี่คือการสาธิตในคอนโซล ฉันตรวจสอบเพื่อดู$xว่าไม่ได้กำหนดไว้ในขอบเขตส่วนกลางแสดงเนื้อหาของScopeTest.ps1แล้วเรียกใช้และสุดท้ายฉันตรวจสอบเพื่อดูว่า$xมีการกำหนดอีกครั้งหรือไม่ ตามที่คาดหวัง$xถูกสร้างและใช้งานภายในขอบเขตของสคริปต์เท่านั้นและไม่คงอยู่ในสภาพแวดล้อมโกลบอลหลังจากสคริปต์สิ้นสุดลง ใน ISE สิ่งนี้จะปรากฏขึ้นหากสคริปต์ถูกเรียกโดยใช้หน้าต่างคอนโซล อย่างไรก็ตามถ้าฉันใช้ปุ่ม "เรียกใช้สคริปต์" หรือ F5 จริง ๆ แล้วตัวแปรภายในสคริปต์จะยังคงมีอยู่หลังจากเสร็จสิ้น วิธีนี้อาจทำให้การเขียนและการแก้ไขปัญหาเป็นเรื่องยากหากสคริปต์สมมติว่าจะเริ่มต้นจากสภาพแวดล้อมที่สะอาด (เช่น: ตัวแปรใด ๆ ที่ตั้งไว้ภายในสคริปต์ไม่ควรมีอยู่) เหตุใด ISE จึงทำงานในลักษณะนี้ คำตอบสำหรับคำถามนี้แตะที่หัวข้อเพียงเล็กน้อยกล่าวถึง "การจัดหาดอท" แต่ฉันหวังว่าจะได้คำอธิบายที่ละเอียดยิ่งขึ้นที่นี่ นอกจากนี้หากเอกสารมีอยู่ว่าทำไมสคริปต์ถูกเรียกใช้ใน ISE แตกต่างจากคอนโซลการอ้างอิงก็จะดีเช่นกัน
12 powershell 

3
ค้นหาผู้ใช้โฆษณาที่มีแอตทริบิวต์โฆษณาเฉพาะไม่เป็นโมฆะ
ฉันกำลังค้นหาคำสั่งสคริปต์ / Powershell ที่จะแสดงรายการผู้ใช้ AD ทั้งหมดที่มีค่าไม่ใช่ NULL ในแอตทริบิวต์ teletexterminalidentifier ดังนั้นพวกเขาจึงต้องมีชุดค่า โดยค่าเริ่มต้นคุณลักษณะนี้ไม่ได้ตั้งค่า แต่เรามีแอพที่ปรับเปลี่ยนแอตทริบิวต์นี้ (เพื่อให้มีสตริงเลขฐานสิบหก) ดังนั้นฉันกำลังมองหารายชื่อของผู้ใช้ทั้งหมดที่มีการตั้งค่าคุณลักษณะนี้เป็นบางสิ่ง ขอบคุณ!
12 powershell 

4
ฉันจะตั้งค่าขนาดหน้าต่างเริ่มต้นของ PowerShell ใน Windows 7 ได้อย่างไร
ใน Windows 7 ฉันจะตั้งค่าขนาดหน้าต่าง PowerShell เริ่มต้นได้อย่างไร โดยค่าเริ่มต้นมันสูงเกินไปสำหรับหน้าจอเน็ตบุ๊กที่ฉันใช้งาน ฉันลองเปลี่ยนขนาดตามปกติโดยคลิกที่มุมบนซ้ายแล้วเลือก“ คุณสมบัติ” - แต่มันบอกว่า: Unable to modify the shortcut: . Check to make sure it has not been deleted or renamed.(ใช่มีจุดอยู่ตรงกลางของข้อความแสดงข้อผิดพลาด) ฉันลองคลิกขวาที่ทางลัด PowerShell ในเมนู Start และเปลี่ยนคุณสมบัติที่นั่นอย่างไรก็ตามการเปลี่ยนแปลงดูเหมือนจะไม่ติด

4
PowerShell ช้ามากที่จะเปิด / ตอบสนอง
ฉันมีปัญหาในการใช้ PowerShell 3.0 บน Windows 7 64 บิต ใช้เวลานานมากในการเปิด / เริ่มทำงานเมื่อใช้งาน นอกจากนี้ยังค่อนข้างซบเซาในการตอบสนองต่ออะไรก็ได้ ฉันเชื่อว่านี่อาจเป็นเพราะความจริงที่ว่าโปรไฟล์ของฉันถูกเก็บไว้ในเอกสารของฉันและโฟลเดอร์เอกสารของฉันถูกซิงก์กับเครือข่ายของเรา มีวิธีใดบ้างที่ฉันสามารถย้ายตำแหน่งของโปรไฟล์ของฉันเพื่อที่ฉันจะได้อยู่ภายในเครื่องแทนเครือข่าย

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