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

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

1
ดูเหมือนว่าไม่สามารถทำให้ OneGet / Chocolatey ทำงานบน Windows 10 ได้
ฉันรู้สึกตื่นเต้นเกี่ยวกับ OneGet แต่ฉันไปทำงานไม่ได้ ฉันทำตามคำแนะนำที่นี่: http://www.hanselman.com/blog/AptGetForWindowsOneGetAndChocolateyOnWindows10.aspx . โดยทั่วไปสิ่งที่ฉันได้รับก็คือฉันจะติดตั้งแพ็คเกจ vlc (หรือ git หรือ totalcmd ฯลฯ ... ) และคำสั่งดูเหมือนว่าจะประสบความสำเร็จในการรัน แต่ vlc ดูเหมือนจะไม่ได้ติดตั้งบนคอมพิวเตอร์ ฉันได้รับไฟล์บางไฟล์ ~ 4kb ในไดเรกทอรี c: \ chocolatey ดูเหมือนว่าไม่มีไฟล์ใดที่จะใช้งานได้จริง ฉันทำสิ่งต่อไปนี้ใน PowerShell: get-provider chocolatey install-package git install-package totalcmd install-package vlc (มันไปได้ดีถามคุณแน่ใจหรือไม่พิมพ์คำถามฉันว่า 'Y' กับแต่ละคนแสดงแถบความคืบหน้าสำหรับการดาวน์โหลดช็อคโกแลตครั้งแรกแล้ว nuget แล้วแพคเกจที่จำเป็น) PS C:\Chocolatey> tree /f Folder PATH listing Volume …

1
ตั้งค่าวันที่สร้างของไฟล์เป็นของไฟล์อื่นด้วย Powershell
มีคนช่วยฉันให้ได้แถวนี้ไหม? powershell Set-ItemProperty -LiteralPath '[NewVideo]' -Name CreationTimeUtc -Value ('[CreationTimeOfOldVideo]' -as [Datetime]) ฉันพยายามหมุนไฟล์วิดีโอ 90 องศาในขณะที่รักษาวันที่สร้างไฟล์ต้นฉบับ ฉันพบวิธีหมุนโดยใช้ ffmpeg แต่ฉันพยายามคัดลอกวันที่สร้างไปยังไฟล์ใหม่ การค้นหาทำให้ฉันสรุปได้ว่ามันควรจะเป็นไปได้ด้วย powershell (ซึ่งฉันไม่รู้อะไรเลย) นี่คือสิ่งที่ฉันมี: FOR /r %%I in (*.avi, *.mp4) DO CALL :loopbody "%%~fI" "%%~dpnI_%%~xI" "%%~tI" GOTO :EOF :loopbody ffmpeg -i %1 -c:v libx264 -crf 18 -maxrate 4000k -bufsize 4000k -c:a libvo_aacenc -q:a …

1
ตรวจสอบว่ารีจิสทรีมีข้อมูลจากไฟล์. reg หรือไม่
ฉันมี .reg ไฟล์ที่ถูกส่งออกไปยังพีซีเครื่องอื่นและมีคีย์ค่าและข้อมูลจากส่วนต่าง ๆ ของรีจิสตรี จะตรวจสอบว่าคีย์ค่าและข้อมูลนี้มีอยู่ในพีซีของฉันได้อย่างไร มีสคริปต์หรือโปรแกรมที่สามารถใช้ของฉัน .reg ไฟล์เป็นอินพุทแล้วบอกฉันว่าคีย์ค่าและข้อมูลใดในพีซีของฉันอยู่แล้ว? แก้ไข: ฉันไม่ได้ถามวิธีการเปรียบเทียบทั้งสอง .reg ไฟล์ แต่ฉันมี .reg ไฟล์ที่มีคีย์ค่าและข้อมูลและฉันต้องการตรวจสอบว่าคีย์ค่าและข้อมูลนี้มีอยู่ในรีจิสทรีของพีซีเครื่องอื่นหรือไม่ ฉันไม่สามารถส่งออกไฟล์เดียวกันบนพีซีเครื่องอื่นและเปรียบเทียบได้เนื่องจากคีย์ค่าและข้อมูลไม่อยู่ภายใต้คีย์เดียวกัน แต่มาจากส่วนต่าง ๆ ของรีจิสทรี

3
เราจะเริ่ม Powershell ISE โดยไม่เปิดไฟล์ได้อย่างไร
เมื่อฉันเปิดใช้powershell_ise.exeมันจะมีค่าเริ่มต้นเป็นไฟล์ "Untitled.ps1" ที่เปิดอยู่ มีกลไกที่จะถาม ISE เพื่อให้แสดงเฉพาะพรอมต์หรือไม่? นั่นคือในตอนที่ฉันเปิดตัว Powershell ISE ฉันได้รับสิ่งต่อไปนี้: ในขณะที่ฉันต้องการต่อไปนี้:

1
“ เปิดหน้าต่าง PowerShell ที่นี่” คำสั่งเมนูบริบทของ File Explorer แบ่งเป็นชื่อโฟลเดอร์ที่มีเครื่องหมายอัญประกาศเดี่ยว (อัญประกาศเดี่ยว)
ใน Windows 10 การคลิกขวา Shift บนโฟลเดอร์หรือในพื้นหลังใน File Explorer เพิ่มคำสั่ง "OpenPowerShell window here" ลงในเมนูบริบท อย่างไรก็ตามคำสั่งที่ใช้ในการเปิดหน้าต่าง PowerShell นั้นไม่ได้กำหนดไว้ (อย่างน้อย W10 รีลีส ID 1709) ซึ่งถือว่าไม่ถูกต้องสมมติว่าชื่อโฟลเดอร์ไม่เคยมี'อักขระฝังอยู่: # !! Breaks with folder names such as "a'b" powershell.exe -noexit -command Set-Location -literalPath '%V' ดูการแก้ไขด้านล่าง แต่โปรดทราบว่ามันต้องใช้สิทธิ์ผู้ดูแลระบบ

1
เพิ่มสมาชิกที่มีค่าอาร์เรย์
เนื่องจากปัญหาที่ฉันมีกับคลาส powershell (ไม่มี accessors และ mutators aka getter และ setters) ฉันได้ใช้ Custom Objects ที่สร้างโดยใช้ add-member ฉันมีปัญหาในการหาวิธีที่เหมาะสมในการอ้างอิงค่าอาร์เรย์ใน SecondValue scriptblock สำหรับรายการที่ง่ายรหัสต่อไปนี้ทำงานได้ดี $Object = New-Object PSObject Add-Member -InputObject $Object -MemberType NoteProperty -Name "Array" -Value @() -Force $Object.Array += 1 $Object.Array $Object.Array[0] = 2 แต่เนื่องจากฉันต้องการตัวเลือกเพิ่มเติม (การตรวจสอบความถูกต้องของพารามิเตอร์การตั้งค่าคุณสมบัติที่เกี่ยวข้องเพิ่มเติม) เมื่อตั้งค่าที่ฉันใช้ในรูปแบบต่อไปนี้ $Object2 = New-Object PSObject Add-Member -InputObject $Object2 …

1
จะใช้ Powershell เพื่อกรองกลุ่มข้อความหลายบรรทัดจากไฟล์ได้อย่างไร
ฉันมีบันทึกข้อผิดพลาดที่ฉันต้องการกรองข้อผิดพลาดที่รู้จักทั้งหมดโดยใช้ Powershell ฉันรู้วิธีกรองตามบรรทัดใน PowerShell แต่ปัญหาของฉันคือข้อผิดพลาดในบันทึกข้อผิดพลาดครอบคลุมหลายบรรทัด แต่พวกเขามักจะเริ่มต้นด้วยวันที่ เช่น: 2016-01-14 01:01:01 Error 1: blab blab blab blab blab blab line 1 blab blab blab line 2 blab blab blab line 3 2016-01-14 02:33:04 Error 2: blab blab blab blab blab blab line 1 blab blab blab line 2 2016-01-14 02:33:04 Error 3: …

2
เปลี่ยนตำแหน่งของโฟลเดอร์ผู้ใช้ผ่าน cmd หรือ PowerShell?
ฉันมักจะติดตั้ง Windows D:บนคอมพิวเตอร์ของฉันและเก็บผู้ใช้ของฉันทุกไฟล์บนไดรฟ์ทุ่มเทพูด ทุกครั้งที่ฉันทำเช่นนี้ฉันต้องไปด้วยตนเองC:\Users\<username>\คลิกขวาที่ทุก ๆ โฟลเดอร์ (และโฟลเดอร์ย่อยบางอันAppData\Roaming\Microsoft\Windows\Start Menu\Programs) และเปลี่ยนตำแหน่งตามที่แสดงด้านล่าง: เพื่อให้ง่ายขึ้นฉันต้องการเขียน.batหรือ.ps1สคริปต์ที่ทำโดยอัตโนมัติ มี cmdlet ในตัวที่ให้ฉันทำสิ่งนี้หรือไม่?

1
วิธีสร้างรีเฟรชตามเวลาจริงของเมนูเริ่มของ windows 10
ด้วยความช่วยเหลือของฟอรัมนี้และสแต็คโอเวอร์โฟลว์ฉันได้สร้างสคริปต์ Powershell แบบแยกส่วนที่สร้างเมนูเริ่มและแถบงาน XML ที่จะใช้โดยนโยบายกลุ่มใน Windows 10 Pro v1703 ด้วยตัวมันเองมันทำงานได้ดี ขั้นตอนต่อไปคือการดำเนินการนี้หลังจากติดตั้งแอปพลิเคชันและอัปเดตเมนูเริ่มตามลำดับ ดังนั้นตอนนี้ฉันต้องหาวิธีที่จะอัปเดตไทล์ / xml แบบเรียลไทม์โดยไม่ต้องรีสตาร์ท นี่คือผังกระบวนการหลังจากติดตั้งแอปพลิเคชันที่ควรอยู่ในเมนูเริ่มต้น: 1) สคริปต์สอบถามผู้ใช้ / คอมพิวเตอร์เพื่อติดตั้งแอพพลิเคชั่นทางลัด ฯลฯ 2) สคริปต์อ่านรายการกลุ่มและแอพจากไฟล์ปรับแต่งและค้นหาแอปที่ติดตั้ง (ป้องกันช่องว่างและเครื่องหมายคำถาม) 3) สคริปต์สร้างไฟล์ชื่อ startmenu xml และแปลงไฟล์เก่าเป็น startmenuold.xml 4 *) ที่นี่ฉันไม่สามารถหาทางออกที่สง่างามได้ ตอนนี้คุณควรอ่าน xml ใหม่และอัปเดตเมนูเริ่มเพื่อให้สอดคล้องกับการเปลี่ยนแปลง ปัญหาของฉันคือฉันพบสองวิธีเท่านั้นที่จะอัปเดตเมนูเริ่มต้นจนถึงขณะนี้ได้รับ explorer.exe | หยุดกระบวนการซึ่งล่วงล้ำต่อผู้ใช้หรือรีบูตซึ่งไม่ใช่ตัวเลือกสำหรับอุปกรณ์เหล่านี้ ข้อเสนอแนะใด ๆ เกี่ยวกับวิธีการอัปเดตเมนูเริ่ม / รับไปอ่าน startmenu.xml ที่อ้างอิงในนโยบายกลุ่มของฉันจะน่าทึ่ง! ฉันได้ลองใช้ gpupdate มาตรฐาน, …

2
powershell วนรอบ arrary ใน arrary
ฉันพยายามเขียนสคริปต์ PowerShell เพื่อสร้างโฟลเดอร์แล้วสร้างไฟล์ภายในโฟลเดอร์นั้น $arr = @( ("First Folder",@("1", "2")), ("Sceond Folderr", @("1","2")) ) for ($i=0; $i -lt $arr.length; $i++) { #New-Item -Path $arr[$i] -ItemType directory for ($a=0; $a -lt $arr[$i].length; $a++) { $file=$arr[$a] #New-Item -Path "$file.txt" -ItemType File $file } } นี่คือผลลัพธ์ที่ฉันได้รับ First Folder 1 2 First Folder 1 2 …

1
ข้อผิดพลาด Win7:“ การเริ่มต้น CLR ล้มเหลวด้วยข้อผิดพลาด 800700c1”
ฉันติดตั้งและใช้งานchocolateyในอดีตบน Windows 7 ที่ทำงานใน Parallels บน Mac OSX อย่างไรก็ตามเมื่อเร็ว ๆ นี้เมื่อใดก็ตามที่ฉันพยายามใช้จากพรอมต์คำสั่งฉันได้รับข้อผิดพลาดต่อไปนี้: CLR initialization failed with error 800700c1. ฉันไม่คิดว่านี่เป็นปัญหาของchocoตัวเอง แต่มีบางอย่างในการกำหนดค่า CLR ฉันไม่พบวิธีแก้ไขปัญหานี้ UPDATE : ฉันได้รับข้อความเหมือนกันถ้าผมทำงาน นอกจากนี้เมื่อฉันพยายาม "แผงควบคุม -> การแก้ไขปัญหา -> แก้ไขปัญหากับ Windows Update" ฉันได้รับกล่องโต้ตอบข้อผิดพลาดพร้อมรหัสเดียวกันpowershell ฉันยังพยายามซ่อมแซมและปรับปรุงการติดตั้ง. NET Framework แต่ก็ไม่มีประโยชน์ การปรับปรุงที่ 2 ผมคิดว่ามันมีความเกี่ยวข้องกับ DLL C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9alel8e3b_8.0.50727.3053_x-ww_b80fa8ca\MSVCR80.dllต่อไปนี้: เห็นได้ชัดว่ามันเสียหาย เมื่อฉันพยายามเปิดภายในdependsจะมีข้อผิดพลาด: "ไม่พบลายเซ็น DOS หรือ PE ไฟล์นี้ไม่ใช่โมดูล Windows …

1
PowerShell - เปลี่ยนชื่อรายการ: ไม่สามารถแปลง 'System.Object []' เป็นประเภท 'System.String' ที่ต้องการโดยพารามิเตอร์ 'NewName'
ฉันพยายามเปลี่ยนชื่อไฟล์เป็นจำนวนมากด้วย PowerShell แต่ฉันพบข้อผิดพลาดซึ่งฉันไม่รู้ว่าจะทำอย่างไรและการค้นหามันไม่ได้ให้วิธีการแก้ปัญหาเช่นกัน ข้อความผิดพลาด: Rename-Item : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'NewName'. ตัวอย่างเช่น: 2068227794 (0x8f860be3).bnkถึง0x8f860be3_0001.bnk ในกรณีนี้โดยเฉพาะอย่างยิ่งคือ$hex_name0x8f860be3 $source = "K:\_test" Get-ChildItem -Path $source -File -Recurse -Include "* (0x*).*" | ForEach-Object { $prefix, $hex_name = ($_.BaseName).Split('()') Rename-Item -Path $_ -NewName ($hex_name + "_0001" + $_.Extension) }

1
Windows PowerShell Script เพื่อแปลงโฟลเดอร์ของ Word Docs เป็น PDF
ดังนั้นฉันจึงมีรหัสพื้นฐานในการทำเช่นนี้ เช่นแปลงโฟลเดอร์เอกสาร word เป็น pdf # Acquire a list of DOCX files in a folder $Files=GET-CHILDITEM ‘C:\Users\Ashley\downloads\articles\*.DOC’ $Word=NEW-OBJECT –COMOBJECT WORD.APPLICATION Foreach ($File in $Files) { # open a Word document, filename from the directory $Doc=$Word.Documents.Open($File.fullname) # Swap out DOCX with PDF in the Filename $Name=($Doc.Fullname).replace(“doc”,”pdf”) # Save this File as …

1
Powershell Copy-Item จากพีซีระยะไกลถึงพีซีระยะไกล
ฉันกำลังพยายามคัดลอกโฟลเดอร์และโฟลเดอร์ย่อยจากเซิร์ฟเวอร์ไปยังพีซี (ทั้งจากระยะไกล) $source='\\\server1\folder\\*' $destination='\\\PC1\c$\temp\folder' copy-item -path $source -destination $destination -recurse -force สิ่งนี้สร้างข้อผิดพลาดถ้าฉันทำครั้งเดียว แต่ถ้าฉันเรียกใช้คำสั่งเดิมอีกครั้งมันจะเสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด ข้อผิดพลาดคือ: copy-item : container cannot be copied onto existing leaf item. % % % + categoryinfo : Invalidargument: (\\server1\folder:string) [copy-item] PSargumentexception +FullyQualifiedErrrId : CopyContainerItemToLeafError,Microsoft.powershell.Commands.CopyItemCommand อย่างที่ฉันบอกว่ามันเสร็จสมบูรณ์โดยไม่มีข้อผิดพลาดในครั้งที่สองที่ฉันรันคำสั่ง ฉันทำอะไรผิดที่ทำให้เกิดข้อผิดพลาดในการวิ่งครั้งแรก

1
ใน PowerShell วิธีรับ Get-WBV ปริมาณโดยไม่มีเส้นทางที่มีปริมาณ
ฉันกำลังพยายามลบโวลุ่มที่ไม่ทำงานออกจากนโยบายการสำรองข้อมูล แต่เพื่อที่จะลบมันคุณต้องระบุในคำสั่งลบ แต่ฉันไม่สามารถหาวิธีระบุโวลุ่มที่จะลบได้หากมันไม่มีเส้นทางวอลุ่ม ... ฉันจะไปรับ WBVolume สำหรับไดรฟ์ข้อมูลที่ไม่มีเส้นทางไดรฟ์ได้อย่างไร นี่คือข้อมูลปริมาณที่ฉันมี: VolumeLabel : MountPath : MountPoint : \\?\Volume{b193b193-0000-0000-0000-406b3b000000} FileSystem : NTFS Property : Critical, ValidSource FreeSpace : 367382528 TotalSpace : 854589440 ฉันพยายามที่จะลบมันออกจาก WBPolicy แต่เพื่อลบมันจะต้องมีการระบุบางสิ่งเช่นนี้: $Volume = Get-WBVolume -VolumePath "?" cmdlet แบบนี้จะใช้ได้ Remove-WBVolume -Policy $Policy -Volume $Volume

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