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

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

10
วิธีส่งค่าบูลีนไปยังสคริปต์ PowerShell จากพรอมต์คำสั่ง
ฉันต้องเรียกใช้สคริปต์ PowerShell จากไฟล์แบตช์ หนึ่งในอาร์กิวเมนต์ของสคริปต์คือค่าบูลีน: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -File .\RunScript.ps1 -Turn 1 -Unify $false คำสั่งล้มเหลวโดยมีข้อผิดพลาดต่อไปนี้: Cannot process argument transformation on parameter 'Unify'. Cannot convert value "System.String" to type "System.Boolean", parameters of this type only accept booleans or numbers, use $true, $false, 1 or 0 instead. At line:0 char:1 + <<<< <br/> + …

8
เหตุใดสคริปต์ PowerShell ของฉันจึงไม่ทำงาน
ฉันเขียนแบตช์ไฟล์ธรรมดาเป็นสคริปต์ PowerShell และฉันได้รับข้อผิดพลาดเมื่อเรียกใช้ อยู่ในไดเรกทอรีสคริปต์ในเส้นทางของฉัน นี่คือข้อผิดพลาดที่ฉันได้รับ: ไม่สามารถโหลดได้เนื่องจากการเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้ โปรดดู "ขอความช่วยเหลือเกี่ยวกับการลงนาม" ฉันดูความช่วยเหลือแล้ว แต่ก็มีประโยชน์น้อยกว่า
104 powershell 

12
การลบพา ธ และนามสกุลออกจากชื่อไฟล์ใน powershell
ฉันมีชุดของสตริงซึ่งเป็นเส้นทางแบบเต็มไปยังไฟล์ ฉันต้องการบันทึกเฉพาะชื่อไฟล์โดยไม่มีนามสกุลไฟล์และพา ธ นำหน้า จากสิ่งนี้: c:\temp\myfile.txt ถึง myfile ฉันไม่ได้ทำซ้ำผ่านไดเร็กทอรีซึ่งในกรณีbasenameนี้สามารถใช้คุณสมบัติของ powershell ได้ แต่ฉันกำลังจัดการกับสตริงเพียงอย่างเดียว

7
เรียกใช้สคริปต์ PowerShell จาก C # ด้วย Commandline Arguments
ฉันต้องการเรียกใช้สคริปต์ PowerShell จากภายใน C # สคริปต์ต้องการอาร์กิวเมนต์บรรทัดคำสั่ง นี่คือสิ่งที่ฉันได้ทำไปแล้ว: RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create(); Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration); runspace.Open(); RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace); Pipeline pipeline = runspace.CreatePipeline(); pipeline.Commands.Add(scriptFile); // Execute PowerShell script results = pipeline.Invoke(); scriptFile มีบางอย่างเช่น "C: \ Program Files \ MyProgram \ Whatever.ps1" สคริปต์ใช้อาร์กิวเมนต์บรรทัดคำสั่งเช่น "-key Value" ในขณะที่ Value อาจเป็นบางอย่างเช่นเส้นทางที่อาจมีช่องว่าง ฉันไม่ได้ทำงานนี้ …

4
การส่งผ่านหลายค่าไปยังพารามิเตอร์สคริปต์ PowerShell เดียว
ฉันมีสคริปต์ที่ฉันส่งชื่อเซิร์ฟเวอร์ใน $ args ด้วยวิธีนี้ฉันสามารถทำสิ่งต่างๆกับเซิร์ฟเวอร์ (เหล่านี้) โดยใช้foreach: .\script.ps1 host1 host2 host3 foreach ($i in $args) { Do-Stuff $i } ฉันต้องการเพิ่มพารามิเตอร์ทางเลือกที่มีชื่อเรียกว่า vlan ฉันพยายามแล้ว: Param( [string]$vlan ) foreach ($i in $args) { Write-Host $i } Write-Host $vlan มันทำงานได้ถ้าคุณผ่าน-vlanพารามิเตอร์ $vlanแต่ถ้าคุณทำไม่ได้แล้วอัตโนมัติสคริปต์ที่กำหนดชื่อเซิร์ฟเวอร์สุดท้ายที่จะ ดังนั้นคุณจะส่งพารามิเตอร์เดี่ยวหรือหลายตัวพร้อมพารามิเตอร์ที่มีชื่อเป็นตัวเลือกไปยังสคริปต์ PowerShell ได้อย่างไร ตามหลักการแล้วนี่คือตัวอย่างที่ถูกต้อง: .\script.ps1 host1 .\script.ps1 host1 host2 host3 .\script.ps1 host1 host2 -vlan …

4
คุณสามารถใช้คุณสมบัติของวัตถุในสตริงที่ยกมาสองครั้งได้อย่างไร?
ฉันมีรหัสต่อไปนี้: $DatabaseSettings = @(); $NewDatabaseSetting = "" | select DatabaseName, DataFile, LogFile, LiveBackupPath; $NewDatabaseSetting.DatabaseName = "LiveEmployees_PD"; $NewDatabaseSetting.DataFile = "LiveEmployees_PD_Data"; $NewDatabaseSetting.LogFile = "LiveEmployees_PD_Log"; $NewDatabaseSetting.LiveBackupPath = '\\LiveServer\LiveEmployeesBackups'; $DatabaseSettings += $NewDatabaseSetting; เมื่อฉันพยายามใช้คุณสมบัติอย่างใดอย่างหนึ่งในคำสั่ง string execute: & "$SQlBackupExePath\SQLBackupC.exe" -I $InstanceName -SQL ` "RESTORE DATABASE $DatabaseSettings[0].DatabaseName FROM DISK = '$tempPath\$LatestFullBackupFile' WITH NORECOVERY, REPLACE, MOVE '$DataFileName' TO …

6
คำว่า 'Get-ADUser' ไม่รู้จักเป็นชื่อของ cmdlet
ฉันใช้แบบสอบถามต่อไปนี้เพื่อแสดงรายชื่อผู้ใช้ในเซิร์ฟเวอร์ windows 2008 แต่ล้มเหลวและได้รับข้อผิดพลาดด้านล่าง $server='client-pc-1';$pwd= convertto-securestring 'password$' -asplaintext - force;$cred=new-object -typename System.Management.Automation.PSCredential -argumentlist 'Administrator',$pwd; invoke-command -computername $server -credential $cred -scriptblock {Get-ADUser -Filter (enabled -ne $true)} มีข้อยกเว้นด้านล่าง ... ใครสามารถช่วยฉันแก้ปัญหานี้ได้หรือไม่? The term 'Get-ADUser' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of …
101 powershell 

7
การวนซ้ำแฮชหรือใช้อาร์เรย์ใน PowerShell
ฉันใช้นี้ (จีน) ก้อนของรหัสที่จะดึงชุดของตารางจาก SQL Server กับBCP $OutputDirectory = "c:\junk\" $ServerOption = "-SServerName" $TargetDatabase = "Content.dbo." $ExtractTables = @( "Page" , "ChecklistItemCategory" , "ChecklistItem" ) for ($i=0; $i -le $ExtractTables.Length – 1; $i++) { $InputFullTableName = "$TargetDatabase$($ExtractTables[$i])" $OutputFullFileName = "$OutputDirectory$($ExtractTables[$i])" bcp $InputFullTableName out $OutputFullFileName -T -c $ServerOption } มันใช้งานได้ดี แต่ตอนนี้ตารางบางส่วนจำเป็นต้องดึงข้อมูลผ่านมุมมองและบางตารางก็ไม่ ดังนั้นฉันต้องการโครงสร้างข้อมูลดังนี้: …

10
ฉันจะรับไฟล์ปฏิบัติการ PowerShell ปัจจุบันได้อย่างไร
หมายเหตุ: PowerShell 1.0 ฉันต้องการรับชื่อไฟล์ PowerShell ที่เรียกใช้งานปัจจุบัน นั่นคือถ้าฉันเริ่มเซสชันของฉันแบบนี้: powershell.exe .\myfile.ps1 ฉันต้องการรับสตริง". \ myfile.ps1" (หรืออะไรทำนองนั้น) แก้ไข : "myfile.ps1"ดีกว่า ความคิดใด ๆ ?
100 powershell 


6
เปลี่ยนไดเร็กทอรีใน PowerShell
ขณะนี้พรอมต์ PowerShell ของฉันชี้ไปที่ไดรฟ์ C ของฉัน ( PS C:\>) ฉันจะเปลี่ยนไดเร็กทอรีไปยังโฟลเดอร์บนPS Q:\>ไดรฟ์Q ( ) ของฉันได้อย่างไร ชื่อโฟลเดอร์ในไดรฟ์ Q ของฉันคือ "My Test Folder"
99 powershell 

13
เหตุใดสคริปต์ที่สร้างขึ้นภายในเครื่องของฉันจึงไม่ได้รับอนุญาตให้ทำงานภายใต้นโยบายการดำเนินการ RemoteSigned
เนื่องจากคำถามนี้ยังคงดึงดูดการตอบสนองที่ถูกหักล้างโดยเนื้อหาของคำถามหรือไม่ได้แก้ไขปัญหาที่แท้จริง โปรดอ่านข้อมูลสรุปง่ายๆที่คุณต้องรู้: นี่ไม่ใช่ "ทำไมการติดตั้ง PowerShell เริ่มต้นของฉันจึงไม่เรียกใช้สคริปต์" คำถาม. นี่ไม่ใช่ "ทำไมการติดตั้ง PowerShell ของฉันจึงไม่เรียกใช้สคริปต์ที่ดาวน์โหลดจากอินเทอร์เน็ต" คำถาม. คำถามคือเหตุใดRemoteSignedนโยบายการดำเนินการจึงป้องกันการเรียกใช้สคริปต์เมื่อไม่ควร RemoteSignedเป็นนโยบายการดำเนินการเดียวที่ฉันต้องการใช้ ฉันทราบว่ามีนโยบายที่เข้มงวดน้อยกว่าอื่น ๆ หากนโยบายเหล่านั้นเป็นสิ่งทดแทนที่ยอมรับได้ฉันจะใช้มันแทนและคำถามนี้จะไม่มีอยู่จริง นโยบายการดำเนินการที่มีอยู่แล้วRemoteSignedตั้งค่าให้ การเปลี่ยนจากRemoteSignedการRemoteSignedไม่ได้เป็นวิธีการแก้ปัญหา ไฟล์สคริปต์ถูกสร้างและเก็บไว้ในเครื่อง ไฟล์สคริปต์ไม่ถูกบล็อก ไฟล์สคริปต์ไม่เคยถูกบล็อก (ดูจุดก่อนหน้า) ไม่สามารถเลิกบล็อกไฟล์สคริปต์ได้เนื่องจากไม่มีสิ่งใดที่ต้องปลดบล็อก (ดูจุดก่อนหน้า) ไฟล์สคริปต์ (พยายามที่จะ) ดำเนินการโดยผู้ดูแลระบบ Windows PowerShellเป็นแอปพลิเคชั่นเดียวที่เกี่ยวข้อง ไม่มีWindows PowerShell ISEหรือCommand Promptเครื่องมือหรือตัวแก้ไขอื่นใดที่เกี่ยวข้อง สาเหตุของปัญหาได้รับการระบุแล้ว (ดูคำตอบที่ยอมรับ) หลังจากผ่านไปเกือบ 8 ปีฉันคิดว่ามีการโพสต์คำอธิบายที่ชัดเจนอื่น ๆ ทั้งหมดไม่ว่าจะเกี่ยวข้องหรือไม่ก็ตาม หากคุณคิดเป็นอย่างอื่นโปรดอ่านคำถามและคำตอบที่มีอยู่ให้ครบถ้วนก่อนที่จะเพิ่มคำถามของคุณ ฉันใช้ Windows PowerShell 2.0 บน Windows 7 Professional …

12
วิธีทำให้เส้นทางใน PowerShell เป็นปกติ
ฉันมีสองเส้นทาง: fred\frog และ ..\frag ฉันสามารถรวมเข้าด้วยกันใน PowerShell ดังนี้: join-path 'fred\frog' '..\frag' นั่นทำให้ฉันมีสิ่งนี้: fred\frog\..\frag แต่ฉันไม่ต้องการอย่างนั้น ฉันต้องการเส้นทางที่ทำให้เป็นมาตรฐานโดยไม่มีจุดสองจุดดังนี้: fred\frag ฉันจะได้รับสิ่งนั้นได้อย่างไร?
96 powershell  path 

5
TimeStamp บนชื่อไฟล์โดยใช้ PowerShell
ฉันมีเส้นทางในสตริง "C:\temp\mybackup.zip" ฉันต้องการแทรกการประทับเวลาในสคริปต์นั้นเช่น "C:\temp\mybackup 2009-12-23.zip" มีวิธีง่ายๆในการทำเช่นนี้ใน PowerShell หรือไม่?
96 powershell 

10
จะรับไดเร็กทอรีหลักของ Parent ใน Powershell ได้อย่างไร?
ดังนั้นหากฉันมีไดเร็กทอรีที่เก็บไว้ในตัวแปรให้พูดว่า: $scriptPath = (Get-ScriptDirectory); ตอนนี้ฉันต้องการค้นหาไดเรกทอรีสองระดับขึ้นไป ฉันต้องการวิธีที่ดีในการทำ: $parentPath = Split-Path -parent $scriptPath $rootPath = Split-Path -parent $parentPath ฉันจะไปที่ rootPath ในโค้ดบรรทัดเดียวได้หรือไม่

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