Questions tagged «powershell»

Windows PowerShell是Windows的命令行外壳程序和脚本语言,它取代了CMD.exe Shell和批处理语言。PowerShell还是Windows的自动化引擎,提供类似于Windows Script Host和VBScript的功能。

1
PowerShell尝试使用代理,即使我没有选择
当试图运行试图从NuGet网站下载内容的脚本时,我收到以下错误: Preparing to run build script... Unable to find version '0.30.0' of package 'Cake'. C:\Users\user\.nuget\packages\: Package 'Cake.0.30.0' is not found on source 'C:\Users\user\.nuget\packages\'. C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\: Package 'Cake.0.30.0' is not found on source 'C:\Program Files ( x86)\Microsoft SDKs\NuGetPackages\'. https://api.nuget.org/v3/index.json: Unable to load the service index for source https://api.nuget.org/v3/index.json. An …

1
使用PowerShell将数据从SharePoint文档库提取到CSV
我正在尝试使用PowerShell将SharePoint文档库的数据提取到CSV文件。我在CSv文件上获取数据正确。但是一列即“描述”上有更多的文本数据。因此,当运行脚本时,数据将进入另一行(它不会出现在一行中)。供参考,下面写了脚本,下面是我的文件。 Powershell脚本 $web = get-spweb "Site Url" $caseLib = $web.lists | where {$_.title -eq "Document Library"} $query=new-object Microsoft.SharePoint.SPQuery $query.ViewFields = "" $query.RowLimit=500000 do { $caseLibItems=$caseLib.GetItems($query) $query.ListItemCollectionPosition = $caseLibItems.ListItemCollectionPosition $listItemsTotal = $caseLibItems.Count $x = 0 for($x=0;$x -lt $listItemsTotal; $x++) { $Description = $caseLibItems[$x]["DocumentSetDescription"] $str = "" if('$Description' -ne $null) { $str …

1
我在runonce中的命令没有运行
我正在编写一个脚本,旨在自动化推广以前没有域名的新域控制器的过程。 我一直关注如何让程序在重新启动后恢复,首先尝试工作流只是为了发现在调试一周并查看日志后,工作流中出现了install-addsforest命令,试图仅使用计划任务发现它们毫无价值,因为在促销后不再存在任务注册的安全用户ID,并且最近尝试使用运行一次注册表项和自动登录以使我的脚本在重新启动后继续。 现在我认为阻止脚本运行完成的原因是它不是以管理员身份运行的:它有一个#requires -runasadmin标志可以防止它被运行,除非作为管理员(并且非常严格),但即使我运行自动登录作为管理员,我无法从runonce键运行我的脚本。 我将在哪里查看与此注册表项关联的日志,是否有人有任何建议? 顺便说一句,我不打算使用DSC:我厌倦了powershell的高级功能,而且它运行的工作流无法成功运行我需要的命令。

1
勺子安装时间超时
我想在笔记本电脑上安装scoop,我没有管理员权限。我在PowerShell中使用以下命令: PS> Set-ExecutionPolicy RemoteSigned -scope CurrentUser PS> iex (new-object net.webclient).downloadstring('https://get.scoop.sh') Exception calling "DownloadString" with "1" argument(s): "The operation has timed out" At line:1 char:1 + iex (new-object net.webclient).downloadstring('https://get.scoop.sh') + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : WebException 我相信这是因为它默认使用IPv6而不是IPv4: PS> ping get.scoop.sh Pinging d19x8hxthvia8.cloudfront.net [2600:9000:2002:7200:1f:b80:d400:93a1] with 32 …

2
Powershell:文件路径中的字符作为索引而不是文件路径中的字符?
我试图编写Powershell脚本来对计算机进行增量差异备份,但是Powershell如何解释文件路径变量存在问题。 $C_P86Files_Name=Get-ChildItem -File -Path 'C:\Program Files (x86)\Test' -Recurse | foreach FullName $B_P86Files_Name $MovedFiles=0 $MovedBytes=0 #Out-File -FilePath 'C:\Program Files (x86)\Test\Test.txt' -InputObject $C_P86Files_Name Get-ChildItem -File 'C:\Program Files (x86)\Test' -Recurse | foreach FullName for ($i=0; $i -le ($C_P86Files_Name.Length-1); $i++) { $B_P86Files_Name = $C_P86Files_Name[$i] -replace "^C", "B" Write-Host "Checking $($C_P86Files_Name[$i])" Write-Host "B drive directory: …

1
没有UAC,可以在几台Win10远程计算机上运行regedit吗?
有没有一种方法可以在一堆远程计算机上运行regedit,而不会在Windows10上弹出UAC?在/s命令行上不工作在我的Windows 10的测试计算机(我倒确信,将在我的Win7 systyems工作,但我的大多数客户端计算机是Win10)。 最终目标是 将注册表文件导入HKLM以将PowerShellexecutionPolicy提升为不受限制, 使用Powershell启用系统保护/还原, 使用PowerShell创建还原点,最后 导入一个reg文件,将executionPolicy设置回Restricted或RemoteSigned。(所有这些都是作为预修补任务完成的,顺便说一句)。 在我的测试计算机上,除了regedit ...即使带有/s参数...也无法在Windows 10上没有UAC弹出窗口的情况下运行。 我已经尝试通过bat文件运行PowerShell提升权限: powershell.exe -ExecutionPolicy Bypass -File .\MyScript.ps1 和 PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList 'Set-ExecutionPolicy unrestricted -Force' -Verb RunAs}" 但是它们都失败了(即访问被拒绝,PowerShell执行策略未提升)。 导入reg文件然后运行我的Powershell脚本是我所获得的最接近成功的方法。 我还通过Sysinternals psexec尝试了此方法,它基于搜索到的其他解决方案(例如,对reg.exe的psexec调用进行导入),但这有其自身的一系列问题(psexec需要为EULA导入reg,所以同样的问题,而不是解)。 从中借用,我还尝试运行以下命令: C:\Windows\System32\REG.exe ADD HKLM\\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell /v ExecutionPolicy /t REG_SZ /d Unrestricted /f ...但是,这种错误不断出现:“错误:无效的密钥名称”。我可能已经花了太长时间(现在3天了),只需要另一双眼睛。有人可以协助吗?

1
获取调用的PowerShell命令的进程ID
无论如何,有没有使用ps来获取已经执行的powershell命令的pid。 例如,说我已经执行了以下命令。 ls | ? { <where condition> } | % { <some operations> } 我的目标是打开另一个Powershell窗口,然后键入一些内容,以等待上面的内容完成。 有任何想法吗?

0
使用一个CMD窗口控制/输入其他CMD窗口?
有没有批处理/ Powershell的方法可以将父控制台输入到子控制台,例如,在父控制台中输入“ echo hello”会导致“ echo hello”被输入到子控制台。 仅使用一个子控制台执行此操作是没有意义的,但是使用更多的子控制台将减少在多个控制台中输入相同命令的时间。

0
Powershell Start-Process命令参数转义
我尝试从Powershell会话中打开提升的Powershell。这有效: powershell -NoExit -Command "Start-Process PowerShell -ArgumentList @('-NoExit','-NoProfile') -Verb RunAs" 这不是: powershell -NoExit -Command "Start-Process PowerShell -ArgumentList @(`"-NoExit`",`"-NoProfile`") -Verb RunAs" 错误提示: In Zeile:1 Zeichen:49 + Start-Process PowerShell -ArgumentList @(-NoExit,-NoProfile) -Verb Ru ... + ~ Argument in der Parameterliste fehlt. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : MissingArgument …

2
DOS批处理变量扩展以提供最后访问时间
我正在尝试使用FOR / R循环遍历一些特别长的文件夹(长度超过260个字符,因此需要使用\?\),我需要使用循环,完全限定的路径名​​和最后访问时间 如果我这样做: for /r "\\?\c:\windows" %a in (*.bat) do echo %~fta 我得到了完整的路径和最后修改的时间。即使我将DIRCMD设置为/ TA,似乎对FOR / R也没有影响。有人知道强制该时间/日期最后访问而不是最后修改的方法吗?AFAIK,长路径名称排除了Powershell,这是我最初的方法,但也很高兴收到建议。

1
使用PowerShell在数组中查找通配符匹配
我有一个要在其上进行ActiveDirectory查找的用户列表,但我不想在弹出到我的列表中的系统帐户上进行查找。我要检查的列表将具有用户帐户的全名。我想使用可预测的模式对照该列表。 我正在编写的代码目前看起来像这样: $Usertest = "BUILTIN\Administrator" $SystemUsers = @( 'NT AUTHORITY\*', 'BUILTIN\*', 'S-*', 'Everyone' ) if ($SystemUsers -contains $UserTest) { Write-Host "$Usertest is a system or deleted account" } else { Write-Host "$Usertest exists in Active Directory" } 显然,上面的代码无法正常工作,但确实可以传达我要完成的工作。

2
Powershell脚本列出所有共享中的文件夹
愚蠢的问题,但不确定是否可行。 我有一个托管8个单独共享的文件服务器。我正在寻找一个脚本来提取所有共享的文件夹名称列表(无子文件夹)。 我可以使用Get-ChildItem -path“ \ server1 \ share1 *” | 其中{$ _。PsIsContainer}列出特定共享的文件夹,但是我试图找到一种方法,仅使用服务器路径一次列出所有共享和文件夹。 是唯一为每个共享单独运行脚本的选项吗?

0
Unicode字符在Powershell中加倍(在Cmder下运行)
好的,这很奇怪。在过去的几年中,我在Powershell中使用了Unicode闪电符号作为提示。我刚买了一台新笔记本电脑,然后重新安装了所有东西。我使用Cmder运行Powershell,然后将整个目录备份到Dropbox上并还原到我的新笔记本电脑上,因此无需进行任何更改。现在,我的提示是两个闪电。提示功能如下所示: Write-Host -ForegroundColor Yellow -NoNewLine "`n" ([char]0x26a1).ToString() 当我运行此命令时,我得到: 因此,基本上字符0x26a1是两个螺栓,而不是一个。相同版本的Windows 10,相同版本的Powershell,相同版本的Cmder,所有相同的设置。是什么会导致PowerShell呈现这样的Unicode符号?还有一些其他字符加倍了(例如26aa是两个圆圈),但是大多数字符都很好(2601是一个云)。我也尝试过在终端中使用各种字体,但是每种字体都会加倍。Windows的哪一部分负责?谢谢! 更新:设置文件 # name: Pressing Ctrl-D exits session # type: bool # Ctrl-D exits cmd.exe when it is pressed on an empty line. ctrld_exits = 1 # name: Toggle if pressing Esc clears line # type: bool # Clink clears the …

1
发出PowerShell通常发出的声音(例如蜂鸣声)
在正常的PowerShell控制台中,运行[System.Console]::Beep(500, 1000)会发出声音。 在ConEmu中运行的PowerShell控制台中,该命令不会发出声音。 打开PowerShell的ConEmu任务为powershell.exe -new_console:a。 运行Beep命令时,如何配置ConEmu发出声音? 奇怪的是,我发现了超级用户有关如何禁用而不是如何启用这些声音的问题:ConEmu:禁用铃声

1
在文件浏览器地址栏中输入cmd无效
我试图通过在Windows资源管理器的地址栏上键入“ cmd”并按Enter键来打开命令提示符实例,但没有任何反应。 通常,将显示命令提示符的实例以及打开它的路径。是什么导致它无法正常工作? -更新-输入powershell地址栏效果不佳。 --UPDATE 2--我试图访问命令提示符的示例文件路径: C:\Projects\Python --UPDATE 3--从中输入cmd将Windows + r创建命令提示符的实例。 --UPDATE 4--尝试在文件目录上打开Powershell后,出现以下错误: Powershell屏幕截图 --UPDATE 5--我正在使用管理员帐户。Shift + Right Click并按 Open powershell window here.返回将返回错误消息,指出找不到目录。 -更新6-我已经在笔记本电脑上进行了出厂重置,因为问题可能比最初想象的要严重得多。 是什么导致此错误?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.