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

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

30
ไม่สามารถติดตั้งแพคเกจ nuget ได้เนื่องจาก“ ไม่สามารถเริ่มต้นโฮสต์ PowerShell ได้”
ทันทีที่ฉันได้รับข้อผิดพลาดนี้เมื่ออัพเกรดแพ็คเกจ Nuget ไม่มีการแก้ไขที่ฉันเจอ ฉันใช้ Visual Studio 2013 ติดตั้ง 'Newtonsoft.Json 6.0.3' เรียบร้อยแล้ว เพิ่ม 'Newtonsoft.Json 6.0.3' ในการแข่งขันประกาศ เพิ่ม 'Newtonsoft.Json 6.0.3' สำเร็จในการแข่งขันประกาศ กำลังดำเนินการไฟล์สคริปต์ 'F: \ My Webs \ BasketballTournaments \ MainBranch \ packages \ Newtonsoft.Json.6.0.3 \ tools \ install.ps1' ไม่สามารถเริ่มต้นโฮสต์ PowerShell หากการตั้งค่านโยบายการดำเนินการ PowerShell ของคุณถูกตั้งค่าเป็น AllSigned ให้เปิดคอนโซลตัวจัดการแพคเกจเพื่อเริ่มต้นโฮสต์ก่อน คอนโซลตัวจัดการแพคเกจ ความพยายามในการดำเนินการ InitializeDefaultDrives การดำเนินการกับผู้ให้บริการ 'FileSystem' ล้มเหลว ถ้าฉันรอการเริ่มต้นให้เสร็จในคอนโซลฉันก็สามารถเพิ่มแพคเกจบางอย่าง


9
ฉันจะจับเอาท์พุทเป็นตัวแปรจากกระบวนการภายนอกใน PowerShell ได้อย่างไร
ฉันต้องการเรียกใช้กระบวนการภายนอกและจับเอาท์พุทคำสั่งไปยังตัวแปรใน PowerShell ฉันกำลังใช้สิ่งนี้อยู่: $params = "/verify $pc /domain:hosp.uhhg.org" start-process "netdom.exe" $params -WindowStyle Hidden -Wait ฉันยืนยันว่าคำสั่งกำลังดำเนินการ แต่ฉันต้องจับเอาท์พุทเป็นตัวแปร ซึ่งหมายความว่าฉันไม่สามารถใช้ -RedirectOutput ได้เนื่องจากเป็นการเปลี่ยนเส้นทางไปยังไฟล์เท่านั้น

8
Powershell เทียบเท่ากับ bash ampersand (&) สำหรับการฟอร์ก / การประมวลผลเบื้องหลัง
ใน bash แอมเปอร์แซนด์ (&) สามารถใช้เพื่อเรียกใช้คำสั่งในพื้นหลังและส่งคืนการควบคุมแบบโต้ตอบให้กับผู้ใช้ก่อนที่คำสั่งจะทำงานเสร็จสิ้น มีวิธีการที่เท่าเทียมกันในการทำเช่นนี้ใน Powershell หรือไม่? ตัวอย่างการใช้งานใน bash: sleep 30 &
157 powershell 

8
PowerShell เทียบเท่ากับ grep -f
ฉันกำลังมองหา PowerShell grep --file=filenameเทียบเท่ากับ ถ้าคุณไม่รู้grepชื่อไฟล์คือไฟล์ข้อความที่แต่ละบรรทัดมีรูปแบบนิพจน์ทั่วไปที่คุณต้องการจับคู่ บางทีฉันอาจขาดอะไรบางอย่างที่ชัดเจน แต่Select-Stringดูเหมือนจะไม่มีตัวเลือกนี้
157 powershell  grep 

7
วิธีสร้างนามแฝง PowerShell แบบถาวร
ฉันต้องการสร้างaliasสิ่งcmdletที่ไม่หมดอายุหลังจากฉันปิดเซสชันปัจจุบันของ Powershell สมมติว่าฉันมีนามแฝงนี้: C:\Users\Aymen> New-Alias Goto Set-Location สิ่งนี้สร้างGotoนามแฝงได้อย่างสมบูรณ์แบบแต่ฉันต้องการใช้แม้ว่าฉันจะปิดเซสชันปัจจุบันไปแล้วฉันจะบรรลุเป้าหมายนั้นได้อย่างไร บันทึก: ระบบวิธีใช้ PowerShell แนะนำว่าฉันสามารถส่งออกนามแฝงที่ฉันสร้างและนำเข้าได้ในครั้งต่อไปที่ฉันเปิดเซสชันใหม่จริง ๆ แล้วนั่นไม่ใช่สิ่งที่ฉันกำลังมองหามีวิธีที่ชัดเจนโดยตรงในการมีนามแฝงต่อไป สร้างผ่านเซสชันต่างๆ
157 powershell 

10
วิธีการจัดรูปแบบ DateTime ใน PowerShell
ฉันสามารถจัดรูปแบบGet-Datecmdlet ไม่มีปัญหาเช่นนี้: $date = Get-Date -format "yyyyMMdd" แต่เมื่อฉันมีวันที่ในตัวแปรฉันจะจัดรูปแบบได้อย่างไร คำสั่งด้านล่าง $dateStr = $date -format "yyyMMdd" ส่งคืนข้อผิดพลาดนี้: "คุณต้องระบุค่านิพจน์ทางด้านขวามือของตัวดำเนินการ '-f'"

11
วิธีโหลดแอสเซมบลีใน PowerShell
รหัส PowerShell ต่อไปนี้ #Get a server object which corresponds to the default instance $srv = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Server ... rest of the script ... ให้ข้อความแสดงข้อผิดพลาดต่อไปนี้: New-Object : Cannot find type [Microsoft.SqlServer.Management.SMO.Server]: make sure the assembly containing this type is loaded. At C:\Users\sortelyn\ ... \tools\sql_express_backup\backup.ps1:6 char:8 + $srv = New-Object -TypeName …

2
การดำเนินการคำสั่งที่เก็บไว้ในตัวแปรจาก PowerShell
ฉันมีคำสั่งที่ฉันได้สร้างและเก็บไว้ในตัวแปรใน PowerShell คำสั่งนี้ใช้งานได้หากฉันเขียนโฮสต์และคัดลอกและวางลงในcmd.exeหน้าต่างมาตรฐาน ฉันจะรันคำสั่งนี้จากภายในสคริปต์ของฉันได้อย่างไร ฉันได้ลองใช้ชุดคำสั่ง Invoke-Command หรือ Invoke-Expression หลายแบบโดยไม่มีโชค นี่คือวิธีที่ฉันสร้างตัวแปร: $cmd1 = $arcprg + $arcdir + "\" + $site1 + "-" + $hst + "-" + $yesterday + ".zip " + $logpath1 + "u_ex" + $yesterday + ".log" นี่คือสิ่งที่ตัวแปรดูเหมือนว่าถูกพิมพ์ลงบนหน้าจอ: 7z.exe a -tzip c:\arc_logs\site-host-at-web1-100827.zip c:\inetpub\logs\logfiles\w3svc1\u_ex100827.log
152 powershell 


19
มีวิธีทำให้สคริปต์ PowerShell ทำงานโดยดับเบิลคลิกที่ไฟล์. ps1 หรือไม่
ฉันกำลังแจกจ่ายสคริปต์ PowerShell ให้กับทีมของฉัน สคริปต์คือการดึงที่อยู่ IP จากไคลเอ็นต์ Vsphere ทำการเชื่อมต่อ mstsc และบันทึกในไฟล์ที่แชร์ ช่วงเวลาที่พวกเขาใช้สคริปต์พวกเขาได้รู้จักที่อยู่ IP ของเครื่อง หลังจากนั้นพวกเขามักจะใช้ mstsc โดยตรงแทนที่จะเรียกใช้สคริปต์ PowerShell (เนื่องจากพวกเขาใช้ mstsc ฉันไม่สามารถรู้ได้ว่าพวกเขาใช้ VM บ่อยหรือไม่) ส่วนใหญ่พวกเขากำลังบอกฉันว่าการใช้ PowerShell นั้นไม่ตรงไปตรงมา ฉันป่วยด้วยความขี้เกียจของพวกเขา มีวิธีทำให้สคริปต์ PowerShell ทำงานโดยดับเบิลคลิกที่ไฟล์. ps1 หรือไม่

11
เรียกสคริปต์ PowerShell PS1 จากสคริปต์ PS1 อื่นภายใน Powershell ISE
ฉันต้องการเรียกใช้สคริปต์ myScript1.ps1 ภายในสคริปต์ myScript2.ps1 ที่สองภายใน Powershell ISE รหัสต่อไปนี้ภายใน MyScript2.ps1 ทำงานได้ดีจาก Powershell Administration แต่ใช้ไม่ได้ใน PowerShell ISE: #Call myScript1 from myScript2 invoke-expression -Command .\myScript1.ps1 ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันรัน MyScript2.ps1 จาก PowerShell ISE: ไม่รู้จักคำว่า '. \ myScript1.ps1' เป็นชื่อของ cmdlet ฟังก์ชันไฟล์สคริปต์หรือโปรแกรมที่ทำงานได้ ตรวจสอบการสะกดของชื่อหรือถ้ามีพา ธ ตรวจสอบว่าพา ธ ถูกต้องแล้วลองอีกครั้ง
150 powershell 

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

9
การใช้ข้อมูลรับรอง PowerShell โดยไม่ต้องใส่รหัสผ่าน
ฉันต้องการรีสตาร์ทคอมพิวเตอร์ระยะไกลที่เป็นของโดเมน ฉันมีบัญชีผู้ดูแลระบบ แต่ฉันไม่ทราบวิธีการใช้งานจาก powershell ฉันรู้ว่ามีRestart-Computercmdlet และฉันสามารถส่งหนังสือรับรอง แต่ถ้าโดเมนmydomainของฉันเป็นชื่อผู้ใช้myuserของฉันและรหัสผ่านของฉันคือmypasswordสิ่งที่ไวยากรณ์ที่เหมาะสมที่จะใช้หรือไม่ ฉันต้องการกำหนดเวลาการรีบูตดังนั้นฉันจึงไม่ต้องพิมพ์รหัสผ่าน

14
รับเส้นทางแบบเต็มของไฟล์ใน PowerShell
ฉันต้องการรับไฟล์ทั้งหมดรวมถึงไฟล์ที่มีอยู่ในโฟลเดอร์ย่อยที่เป็นประเภทเฉพาะ ฉันกำลังทำสิ่งนี้โดยใช้Get-ChildItem : Get-ChildItem "C:\windows\System32" -Recurse | where {$_.extension -eq ".txt"} อย่างไรก็ตามมันแค่คืนชื่อไฟล์ให้ฉันเท่านั้นไม่ใช่เส้นทางทั้งหมด

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