我试图分离数组中的值,以便将它们传递给另一个函数
我在for循环中使用select Object函数遍历每一行,并分隔时间戳和值字段
但是,无论我做什么,下面的代码只显示每行的第一个select对象变量。第二个“选择对象”命令似乎不起作用,因为我的输出是6行中每一行的一个空行
关于如何获得这两种价值观有什么想法吗
$ReportData = $SystemStats.get_performance_graph_csv_statistics( (,$Query) )
### Allocate
我正在使用PowerShell 2.0通过函数将数据写入PowerShell的调试流。现在我想从同一个PowerShell脚本读取该流。我试图用“2>&1”重定向调试流,但这只适用于错误流
有没有办法从PowerShell脚本读取PowerShell调试流?可以这样做,但很复杂。请看Oisin的文章。一般来说,这个能够重定向stdout和stderr以外的流的问题已经解决了。您可能希望对此进行投票。您还可以尝试将调用的函数,而不是cmdletWrite Debug。下面是一个非常快速的实现:
$
我正在使用Virtual Machine Manager 2008 R2,不知道你们中是否有人知道如何通过运行时间搜索虚拟机
我想找到那些运行时间最长的机器,这样我就可以检查并重新启动任何已经运行了6个月以上的机器
也许使用powershell可以实现这一点?GUI中的任何东西都会更好 更新:刚刚找到了一种更好、更短的方法:
Get-VM | Where-Object { (Get-VMPerformance -VM $_.Name).UpTime.Days -gt 180 } | Select
我正在尝试编写一个脚本,自动地、无声地将一组字体移动到中,这样它们就可以像您从资源管理器“安装”它们一样使用(通过拖放、复制或右键单击并选择“安装”)。我将Shell.Application部分一直保存到副本
$FONTS = 0x14
$shell = New-Object -ComObject Shell.Application
$source = $shell.Namespace($downloaded_path)
$target = $shell.Namespace($FONTS)
$t
我有一个WixMSI安装程序,用于运行在my\u服务器上的ASP.NET网站。该软件包是通过一个非常简单的Powershell脚本install.ps1安装的,该脚本只调用带有一些参数的msiexec
问题
当我直接在我的服务器上运行install.ps1时,一切正常。但是,当我想从远程计算机(例如,build\u server)上运行install.ps1时,安装失败,错误代码为1603,MSI安装日志显示以下错误:
操作开始14:22:30:配置用户
ConfigureUsers:错误0x8
我有一个带有标题行的csv文件,我想将其转换为哈希表
例如,这是我的输入:
#Version1.0
#Fields:ID,Data
1,data1
2,data2
3,data3
我希望输出是一个哈希表,其中Key=ID,Value=Data
这就是我所拥有的,但结果并不是我想要的
$mytable = Import-Csv -Path $filePath -Header ID,Data
$HashTable=@{}
foreach($r in $mytable)
{
$HashTab
我正在搜索PowerShell中可以使用的所有颜色的列表。因为我们需要提供名称和数字,所以很难确定颜色是否存在,至少如果您不知道如何使用:))
例如,as-foregroundcolor
write-host "hello world" -foregroundcolor "red"
查看帮助怎么样?与此类似,get help write host将告诉您:
[-BackgroundColor {Black | DarkBlue | DarkGreen | DarkCyan | DarkRed
我已经成功创建了DSC配置并将其部署到服务器上。作为下一步,我尝试将服务器中常见的配置块部分拆分为可重用部分,或者用DSC术语“复合资源”。经过大量的研究,我仍然无法使用复合资源,它们在运行“Get-DSCResource”时没有列出
在查看了“Get-DSCResource”函数后,它似乎需要一个“DSCResources”子文件夹,PowerShell.org电子书没有说明,但PowerShell博客有说明。Get DSCResources函数使用资源名称(示例中为SimpleConfig)
我使用Windows Server 2012
我可以这样做:
在“管理工具”文件夹中,双击“本地安全策略”图标,展开“帐户策略”,然后单击“密码策略”
在右侧窗格中,双击“密码必须满足复杂性要求”并将其设置为“禁用”。单击“确定”保存策略更改
如何使用Powershell以编程方式完成此操作?根据@Kayasax的回答,没有纯粹的Powershell方法,您必须将secedit包装到Powershell中
secedit /export /cfg c:\secpol.cfg
(gc C:\sec
我经常在周末收到电子邮件说“我想我的密码过期了,你能帮我查一下吗?”。所以我创建了一个简单的脚本,在周五检查它,然后通过电子邮件发送给我,这样我就可以在周末参考它。我们有一堆共享邮箱,我试图将它们排除在外,但已经有一段时间了,我觉得我忘记了什么
Get-QADUser -SearchRoot $root | Select Name,PasswordStatus| Where-Object FirstName -notlike "Shared" | Sort Name,PasswordStatus
我正在尝试使用DSACLS命令向用户对象授予特定权限DSACLS命令仅在安装了AD管理单元时可用
在用户对象上运行此命令时,它将列出其所有对象安全权限:
dsacls“CN=aaronooi,OU=Users,OU=IT,DC=Domain”
我想要的权限来自名为:
允许内置\Windows授权访问组
tokenGroupsGlobalAndUniversal的特殊访问权限
读取属性
如何使用此命令将上述类似权限应用于其他用户帐户?我似乎无法从“帮助”菜单中找到答案
如果类似的要求可以在Powe
我正在阅读powershell.org上的DSC手册,并尝试使用手册中指定的配置代码设置拉取服务器
configuration CreatePullServer
{
param
(
[string[]]$ComputerName = 'localhost'
)
Import-DSCResource -ModuleName xPSDesiredStateConfiguration
Node $ComputerName
{
我正在尝试使用以下代码获取受密码保护的pfx文件的指纹:
function Get-CertificateThumbprint {
#
# This will return a certificate thumbprint, null if the file isn't found or throw an exception.
#
param (
[parameter(Mandatory = $true)][string] $Certifica
我在2014年和2011年与Installshield合作。我正在使用主要升级和自动构建脚本来处理构建。InstallShield是独立的构建版本。两者都有
现在,windows 2003服务器上的Installshield 2011一切正常。我可以使用自动化界面打开一个项目,更改产品代码(用于主要升级),然后在构建安装程序之前保存它
此类代码在vbs文件中,如下所示:
Dim oISM, oGUID
Set oGUID = CreateObject("InstallShield.GUID")
我正在尝试使用windows powershell创建一个批处理文件,该文件将查找现有的持久性网络共享,并采用它们的路径创建名称,非常类似于自定义磁盘标签
我是一个新手,但知道起点可以基于以下内容,尽管这需要进一步查找现有共享,在stratup上运行,并在每次添加新共享时可执行
谢谢
$Net = New-Object -ComObject WScript.Network
$Rename = New-Object -ComObject Shell.Application
#### #
我目前有以下代码行
(Get-Content 'file.txt') |
ForEach-Object {$_ -replace '"', ''} |
Set-Content 'file.txt'
这在测试时起作用,但现在我尝试在真实数据文件(13 GB)上使用它,使用Get Content的过程会导致Powershell消耗大量RAM,最终会消耗机器上的所有可用RAM
有没有更好的方法可以在没有相同开销的情况下实现相同的结果
似乎我在做与最佳实践相反的事情,但不确定还有什么比上述方法
我试过这个
$arrColors=import csv-header colors.txt
$arrColors-包含“蓝色”
其中colors.txt包含
blue
red
green
结果为false而不是true为什么?获取CSV对象的颜色属性:
$arrColors = (import-csv colors.txt).color
$arrColors -contains "blue"
获取CSV对象上的color属性:
$arrColors = (import-csv colors
我正试图通过jenkins在远程计算机上安装msi软件包。msi文件和powershell脚本都在远程计算机上。
来自jenkins(另一台机器),使用powershell插件尝试使用该命令
Invoke-Command -ComputerName $env:client -ScriptBlock { param($mach,$u,$p) c:\install\scripts\Install_msi.ps1 -database $mach -username $u -password $p }
我使用get childitem获取文件名、位置和大小
$agh=get childitem E:\Documents \-recurse |%{Write output$\.FullName$\.length}
我得到如下输出
E:\Documents\Application Recovery-要查找的内容。pptx
55956
E:\Documents\变更所需时间的估算。xlsx
10509
我在一行中得到文件名,在新行中得到大小
我期待输出如下
文件名位置大小
应用程序修正-查找内容。p
我正在尝试运行一个有限用户数的PS脚本。因为我有太多的广告用户,这需要很长时间
有人知道如何在有限数量的用户上运行脚本吗?例如:200将用户存储在一个变量中,根据需要循环:
$user = Get-ADUser -Filter "*"
$start = 0;
for ($i = $start; $i -lt $start + 200; $i++) {
$user[$i] # run your code here
}
现在增加$start并重新开始。您可以限制使用-ResultSetSiz
我已在Powershell构建步骤中配置了以下参数:-protocol:http-portsToOpen 951295139512
TFSBuild运行整个脚本后,将抛出以下错误:
“System.Int32[]”。错误:“无法转换
“951295139515”到“System.Int32”
问题是TFSBuild正在运行带有引号的脚本SOR951295139515(即'951295139515')
有什么解决方案吗?一种可能的解决方法是从命令生成步骤运行powershell.exe,但我想知道
我正在使用Invoke WebRequest获取HtmlWebResponseObject对象。当描述字段与特定字符串(在本例中为“server1”)匹配时,我希望获取ID字段的值。Invoke WebRequest返回了数百个结果(因此字符串非常长)。给定下面的示例,如何提取ID
{
“地位”:200,
“数据”:[
{
“nextRecipient”:0,
“Clearnet”:是的,
“lastSentNotificationOn”:0,
“netscanVersion”:“0”,
“su
我添加了newitem命令,但它不喜欢我的语法。请帮助:
$Dir = get-childitem -path "\\ahs-bind01\ftptest01\CRAR" -recurse
$Source = $Dir | where {$_.extension -eq ".txt"}
#Declare the file path and sheet name
$file = "C:\Users\us6205\Desktop\DatabaseNameConfigs\Test\CareMov
我正在为批处理制作API。它的一个功能是colortext,它使用PowerShell(如果机器上不支持PowerShell,则使用findstr)来完成工作。(它只需转换给定的批处理颜色,如3C,将其转换为PowerShell友好的名称,如DarkCyan和Red,并使用更多内容打印以颜色给出的文本。)
但是,当我尝试将前台设置为F(White)时,出于某种原因,它会尝试执行2到4次(取决于是否启用了延迟扩展)
如果假定的%fcn%和%bcn%从未应用,则在上次运行/尝试显示相同内容时,它有时
我可以从GoogleDriveAPI下载一个文件,但是,它只适用于文本文件
如何下载其他类型的文件
示例:word文件已下载,但当我打开它时
“很抱歉,我们无法打开文件,因为我们发现其内容有问题”
这是代码。多谢各位
function getfile($uri){
$results = Invoke-RestMethod `
-Method GET `
-Uri $uri `
-Headers @{Authorization = Get-Token} `
我有下面这个简单的xml文件
<?xml version="1.0" encoding="utf-8"?>
<MyRoot
MyGuid="99999999-9999-9999-9999-999999999999"
>
</MyRoot>
第三行输出:
unTypeVariable = '@{MyGuid=99999999-9999-9999-9999-999999999999}'
在最后一行,我一直在下面得到一个强制转换异常。我明白,但我不知道如
我有下面的PowerShell脚本,它将所有文件压缩到一个zip文件中,当前月份为zip文件名(2017年6月7日)
如何修改脚本,使其能够压缩每个月分别创建的所有文件?例如,aaa1、aaa2、aaa3将压缩到2016年8月7日,bbb1、bbb2、bbb3将压缩到2017年2月7日,依此类推,然后删除存档文件
8/29/2016 11:09 PM 88583 aaa1.log
8/30/2016 6:06 AM 88590 aaa2.log
8/30
我已经接管了一个项目,并试图优化一些已经到位的东西。当前最大的问题之一是所提供的图像是次优的。
存储中有80000多个图像,我一直在寻找一个脚本,它可以循环遍历所有图像,压缩图像并覆盖旧文件
我必须承认,我对powershell完全没有兴趣
这就是我发现的:
虽然此脚本成功地优化了图像,但它没有将图像放回正确的位置。它将其放入blob容器的根中
我已经报告了这个问题,但没有回应
有没有人能帮我,这样当它重新保存图像时,它就可以去它应该去的地方
剧本:
<#
.SYNOPSIS
正在查找PowerShell代码段,该代码段将递归列出文件夹中的所有文件扩展名以及计数
/abc/(1).cfc
/abc/john/(265).cfm, (1).html
/abc/john/js/(25).js
/abc/john/css/(6).css
您可以按多个条件进行分组:
Get-ChildItem 'C:\projects\newfolder\edit' -Recurse |
Where-Object { -not $_.PSIsContainer } |
Gro
有时我在VisualStudio调试器中运行一个或多个web服务。它们都有一个chrome浏览器,打开时带有自定义配置文件。如果关闭这些浏览器窗口,VisualStudio将停止调试。然后我会运行“常规”chrome标签
有时我想杀死所有的chrome进程,除了那些由VisualStudio调试器控制的进程。有没有办法过滤它们?Visual Studio启动的Chrome进程在%USER\u PROFILE%\AppData\Local\Microsoft\VisualStudio中有一个自定义
我有一个.csv文件,看起来像这样:
"UserName" , "GroupName"
"t123","G-Q-TAT"
"t124","G-Q-ABC"
"t234","G-Q-ABD"
"UserName" , "GroupName" , "SID"
"t123","G-Q-TAT","S-1-5-21-2079806555-1600217444-939750222-15100"
"t124","G-Q-ABC","S-1-5-21-2079806555-1600217444-93975
我正在尝试通过GPO部署的计划任务运行此脚本:
$registryPath = 'HKLM:\Software\CC\PST_Discovery_Script\Already_Run'
if (!(Test-Path -Path $registryPath)) {
$dir = "c:\Users"
$ext = "pst"
Get-ChildItem "$dir" *$ext -r | Select-Object
我编写了一个脚本,它从CSV文件中获取信息,并根据列中的变量创建一个AD帐户和一个MSOL帐户。该脚本只与我测试的一个用户一起工作
$AccountList = import-csv "C:\File\path\input.csv"
ForEach ($Person in $AccountList) {
$Accountname = $firstname.Trim().ToLower() + "." + $lastname.Trim().ToLower()
$Firstname
我正在编写一个PS脚本来收集某些事件ID,并每隔一个小时左右将它们吐回。我这样做是因为我想把它发到电子邮件里,以便阅读
我现在的问题是脚本将运行到某个点并挂起。如果我删除日期过滤器,它运行良好。只要我通过变量或硬编码重新添加它们,它就会再次挂起。然而,我需要日期过滤器,因为否则,当我寻找每小时的数据块时,我会得到所有信息
寻找建议,因为我想使用一次性或修改变量!我也希望在其他方面的报道中使用衍生产品
$filedate = (get-date).ToString("MM_dd_yy-hh_mm"
我正在尝试使用powershell自动化下面的步骤。我能够执行步骤1
步骤1:使用用户凭据打开RDP连接。
第二步:点击确定窗口横幅。
我无法在powershell中执行步骤2。欢迎提出任何意见或建议
我使用以下代码完成此操作:
步骤#1如以下URL所述完成:
步骤2:使用下面的代码完成
[system.Reflection.Assembly]::LoadWithPartialName("####TITLE OF THE WINDOW####") | out-null
# Set the ex
我正在使用nuget.exe pack从Powershell脚本在Jenkins服务器上构建nuget包:
& "C:\Git\packages\nuget.exe" pack -Build -ForceEnglishOutput -Prop Configuration=Release -IncludeReferencedProjects -OutputDirectory "c:\git\Packages" -Verbosity quiet
这将在当前文件夹中编译csproj,并将编译
我有一个CSV文件,其中包含first.last name格式的用户别名
我试图一个接一个地提取这些别名,并将它们与我们的域合并,以创建它们的电子邮件地址
这是我的密码:
$CSV = Import-CSV "\\this\is\thepath\to\the\csv.csv"
$domain = "@domain.co.uk"
$CSV.Alias | ForEach-Object (
Write-Host ($CSV.Alias + $domain)
)
我需要的输出是:
John
我正在尝试使用powershell将文本文件的内容读入字符串变量,以便使用它(通过smtp)发送电子邮件
使用Get Content将文件内容读入变量没有问题:
$body = Get-Content 'C:\somewhere\some-file.html'
问题是
Send-MailMessage -To [recipient] -From [sender] -Subject [subject] -Body $body -SmtpServer [ip address]
与消息一起失败
无
我正在编写一个小脚本,用于输出用户当前Skype的业务状态
可用,忙碌,请勿打扰。等等
我已经做了一些实验,可以输出很多信息。脚本工作正常,但我找不到状态条目
这是我目前的代码:
$userCredential = Get-Credential
$sfbSession = New-CsOnlineSession -Credential $userCredential
Import-Module SkypeOnlineConnector
Import-PSSession $sfbSession
这是我的powershell脚本的一部分,我必须将本地文件夹映射到S:驱动器。当我的脚本“以管理员身份运行”时,我无法映射新的PSDrive。如果我这样做,它在“我的电脑”上不可见。我已经运行了Get-PSDrive,它显示它在“我的电脑”上不可见
我在PS中尝试过网络使用。
我试过新的地图
New-SMBmapping -localpath 'S:' -remotepath '\\$comName\pos' -persistent $true
我的脚本需要在脚本的其余部分作为管理员运行。
目
我编写了一个脚本,它使用WinSCP在文件夹上循环并转换文件
WinSCP.exe/keygen$filePath/output=$filePathdest
该脚本可以工作,但会打开几个WinSCP窗口,说明它完成了任务的内容。我希望抑制此操作,或在完成后强制PowerShell关闭其所有子级。这可能吗?使用
winscp.com是一个控制台应用程序,其功能与winscp.exe相同。作为控制台应用程序,它从PowerShell继承控制台,而不打开自己的控制台。完成后,它也不会等待按键。在控制
我正在寻找一种方法从网站列表下载mp4文件,并根据名称列表重命名它们,因为我不能使用URL,它们太长太复杂了
有没有办法下载这些文件并根据我的单独列表给它们命名
$Videos= get-content "C:\temp\VidList.txt"
$VideoNames = Get-Content "C:\temp\NameList.txt"
foreach ($site in $Videos){
$uri= $site
$file='F:\CEH Saved videos\test\te
我试图写一个脚本,告诉我如果一个文件大小大于一个数字,下面是我写的脚本,但它一直显示1999,即使我知道文件大小大于这个数字
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (' powershell -c "(Get-ChildItem -Recurse "C:\XSTOREDB\xstore_data.mdf" | Measure-Object -Property Length -Sum).Sum" ')
如何逐个比较阵列与powershell
我试过使用eq/match/like/contains/in。但仍然不能很好地工作。非常感谢
输入【数组】:
$array=@('OK'、'OK'、'OK'、'OK')
$array1=@('OK'、'failed'、'OK'、'OK')
$array2=@(“确定”)
预期产出:
$Array比较阵列2输出
$Array1比较Array2输出False如果两个数组的元素顺序(不仅仅是值)很重要(即两个数组的元素数应该相同,元素值必须相同,元素的显示顺序应
我有一个PowerShell脚本,在其中我使用启动进程并将输出重定向到日志文件。cmd在for循环中,我希望每次运行时都能追加输出。现在,它每次运行时都会清除日志文件。有没有重定向和附加的方法
Start-Process $cmd -ArgumentList $cmdArgs -RedirectStandardError $logFile -Wait -NoNewWindow
注意:要同步执行控制台应用程序,请直接调用它们c:\path\To\some.exe。。。或&$exePath…,不要
首先对不起我的英语
我不使用powershell,但我必须编写一个脚本来生成一些SSR报告。我需要连接两个变量并将结果转换为大写,下面的代码工作正常,但我不知道如何将结果转换为大写并将其放入其他变量。非常感谢
$direxcel = "C:\Users\Administrador\Documents\SSRS"
$rdl = "Sin Título"
write-host ${direxcel}\$rdl.xls
要连接字符串,可以使用多个选项
$a = "first string"
$b =
我有一个类,其中类上有属性,但我只希望能够在内部设置它们的值,但允许对其使用公共get访问器。因为在C#中这样的类中没有PS等价物:
公共字符串属性名称{
得到;
私人设置;
}
我研究了在我的类上实现以下变通方法,以便“私有”成员通过属性的公共访问器保持隐藏状态:
class-MyClass{
隐藏的[字符串]$\u属性名称
MyClass($propertyValue){
$this.\u PropertyName=$PropertyValue
$this | Add Member-Scr
我需要PowerShell中的帮助以将两个输出或两个PSCustomObjects合并为一个。
比如说,
$services = Get-Service | Select Name, Starttype,Status
$processes = Get-Process | Select ID
我需要带有表格标题的输出
名称、开始类型、状态、ID
我已经尝试创建CSV并加入它们,但问题是当服务的整个输出结束时,进程ID开始。我需要一个平行的
第二,我尝试创建PSCustomObjects,但没有成
我有以下代码在多个文件中查找字符串,我找到了其中的一部分
我想我不明白的语法是最后一行的这一部分:
@{n='SearchWord';e={$sw}}
我会解释我认为我理解的内容,然后提问
@我想这意味着它是一个数组
n=是“名称”的缩写
冒号(;)用于分隔列的名称和填充列的表达式
e=是表达式的简写
{$sw}-括号是封装表达式所必需的
问题:
为什么使用数组填充此列
为什么必须使用表达式而不仅仅是变量“$sw”
谢谢你的帮助 它不是数组,而是哈希表。在引用的代码中,使用了a。通常,计算属性
我有许多文件夹,其中包含我从同事那里获得的文件的子文件夹,这些文件具有特殊甚至隐藏的字符,如:
非标准字符:{µ,市, ', &, 「看不见的字符,Ü,é,…}
我正在寻找一个脚本或windows工具,将重命名所有子文件夹
通过根据列表X中的字符将任何非标准字符替换为标准字符,一次完成文件的创建。另外,如果工具选中列表R,并使用替换规则(如果已定义),则更好。如果没有,则应将非标准字符替换为“\u1”
感谢对工具或脚本的任何提示。我会解析文件/目录名,如果每个字符不在ascii范围内,请用任意字