小编Mat*_*att的帖子

如何在Notepad ++中将大写字母转换为小写

我主要使用Notepad ++进行编码.

如何将大写字母转换为小写字母,反之亦然?

notepad++ case-sensitive

211
推荐指数
4
解决办法
22万
查看次数

如何重置powershell颜色?

我改变了powershell的颜色,现在我无法改变输入文本的颜色,总是黄色.

我改变了背景的颜色和文字的颜色

改变颜色

背景颜色正确更改,但在显示文本中颜色仍为黄色.

变

我可以做些什么来重置颜色吗?

powershell colors

38
推荐指数
7
解决办法
2万
查看次数

扩展文件内容中的变量

我有一个template.txt包含以下内容的文件:

Hello ${something}
Run Code Online (Sandbox Code Playgroud)

我想创建一个PowerShell脚本来读取文件并扩展模板中的变量,即

$something = "World"
$template = Get-Content template.txt
# replace $something in template file with current value
# of variable in script -> get Hello World
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

variables powershell

29
推荐指数
2
解决办法
8290
查看次数

列出与模式匹配的文件夹中的文件名,不包括文件内容

我使用下面的方法递归列出包含该文件夹的文件夹中的所有文件 $pattern

Get-ChildItem $targetDir -recurse | Select-String -pattern "$pattern" | group path | select name
Run Code Online (Sandbox Code Playgroud)

但它似乎都列出$pattern了名称和内容中的文件,例如当我运行上面的内容$pattern="SAMPLE":

C:\tmp\config.include
C:\tmp\README.md
C:\tmp\specs\SAMPLE.data.nuspec
C:\tmp\specs\SAMPLE.Connection.nuspec
Run Code Online (Sandbox Code Playgroud)

现在:

C:\tmp\config.include
C:\tmp\README.md
Run Code Online (Sandbox Code Playgroud)

确实包含SAMPLE关键字/文本,但我不关心,我只需要命令列出文件名而不是文件,其内容与模式匹配.我错过了什么?

基于以下答案,我也尝试过:

$targetDir="C:\tmp\"
Get-ChildItem $targetDir -recurse | where {$_.name -like "SAMPLE"} | group path | select name
Run Code Online (Sandbox Code Playgroud)

和:

$targetDir="C:\tmp\"
Get-ChildItem $targetDir -recurse | where {$_.name -like "SAMPLE"} | select name
Run Code Online (Sandbox Code Playgroud)

但它不会返回任何结果.

powershell powershell-5.0

22
推荐指数
3
解决办法
4万
查看次数

如何在PowerShell中从数组创建ArrayList?

我有一个数组中的文件列表.我想枚举这些文件,并从中删除特定文件.显然我无法从数组中删除项目,所以我想使用一个ArrayList.但以下对我不起作用:

$temp = Get-ResourceFiles
$resourceFiles = New-Object System.Collections.ArrayList($temp)
Run Code Online (Sandbox Code Playgroud)

$temp数组在哪里.

我怎样才能做到这一点?

powershell

20
推荐指数
2
解决办法
10万
查看次数

如何验证AD帐户是否已锁定?

我想知道是否可以验证特定的AD帐户是否被锁定.

该命令Get-ADUser不返回此参数:

 -------------------------- EXAMPLE 3 --------------------------

 Command Prompt: C:\PS>
 Get-ADUser GlenJohn -Properties * 


  - Surname : John 
  - Name : Glen John
  - UserPrincipalName : jglen
  - GivenName : Glen
  - Enabled : False
  - SamAccountName : GlenJohn
  - ObjectClass :
  - user SID :S-1-5-21-2889043008-4136710315-2444824263-3544
  - ObjectGUID :e1418d64-096c-4cb0-b903-ebb66562d99d
  - DistinguishedName : CN=Glen John,OU=NorthAmerica,OU=Sales,OU=UserAccounts,DC=FABRIKAM,DC=COM

 Description :
 -----------

 Get all properties of the user with samAccountName 'GlenJohn'.

 --------------------------END EXAMPLE --------------------------

有没有其他方法来获取此信息?

powershell active-directory

18
推荐指数
3
解决办法
9万
查看次数

作为计划任务运行时,Powershell脚本无法访问文件

我的Powershell(2.0)脚本包含以下代码段:

$fileName = "c:\reports\1.xlsx"
$xl = new-object -comobject excel.application
$xlFormat = [Microsoft.Office.Interop.excel.XlFileFormat]::xlWorkbookDefault
$xl.displayalerts = $false
$workbook = $xl.workbooks.open($fileName)
#Code to manipulate a worksheet
$workbook.SaveAs($fileName, $xlformat)
$xl.quit()
$error | out-file c:\reports\error.txt
Run Code Online (Sandbox Code Playgroud)

我可以在Powershell命令提示符下运行此脚本,没有任何问题.电子表格会更新,error.txt为空.但是,当我在任务计划程序中将其作为任务运行时,我会在第一行出错.

使用"1"参数调用"打开"的异常:"Microsoft Office Excel无法访问文件'C:\ reports\1.xlsx'.有几个可能的原因:文件名或路径不存在.文件正在尝试保存的工作簿与当前打开的工作簿具有相同的名称.

我使用与Powershell命令提示符中运行脚本相同的凭据运行任务.当我手动运行脚本时,它可以打开,更新和保存电子表格而不会出现任何问题.当我在任务计划程序中运行它时,它无法访问电子表格.

有问题的文件对所有用户都是可读/可写的.我已经验证我可以使用相同的凭据在Excel中打开该文件.如果我创建一个新的电子表格并将其名称作为$ filename,我会得到相同的结果.我已经确认任务管理器中没有Excel.exe实例.

奇怪的是,如果我使用get-content,我没有任何问题.另外,如果我制作新的电子表格,我没有任何问题.

$fileName = "c:\reports\1.xlsx"
$xl = get-content $spreadsheet
$xl = new-object -comobject excel.application
$xlFormat = [Microsoft.Office.Interop.excel.XlFileFormat]::xlWorkbookDefault
$xl.displayalerts = $false
# Commented out $workbook = $xl.workbooks.open($fileName)
$workbook = $xl.workbooks.add()
#Code to manipulate a worksheet
$workbook.SaveAs($fileName, $xlformat)
$xl.quit()
$error | out-file c:\reports\error.txt
Run Code Online (Sandbox Code Playgroud)

这很好.因此Get-ChildItem可以毫无问题地打开文件.如果我手动运行它,ComObject可以打开该文件,但如果它作为任务运行则不能.

我不知所措.有任何想法吗?

com excel powershell scheduled-tasks powershell-2.0

12
推荐指数
1
解决办法
1万
查看次数

在包含花括号的字符串上使用-f运算符

请考虑以下here-string,我试图使用模板进行Nagios定义.

$blankDefinition = @"
define host{
        use             windows-server  ; Inherit default values from a template
        host_name       {0}       ; The name we're giving to this host
        alias           {0}       ; A longer name associated with the host
        address         {1}     ; IP address of the host
        }

"@
Run Code Online (Sandbox Code Playgroud)

我有一个脚本可以确定哪些服务器不在nagois中.因为它循环我试图让它为我吐出一个定义,以便我可以复制并粘贴到我的Nagios配置中.

$comparison | %{
    $blankDefinition -f $($_.serverName),$($_.ipAddress)
}   
Run Code Online (Sandbox Code Playgroud)

哪个让我知道以下错误:

Error formatting a string: Input string was not in a correct format..
Run Code Online (Sandbox Code Playgroud)

像这样的东西工作得很好

@"
Testing
One
{0}
Three
"@ -f "Twelve"
Run Code Online (Sandbox Code Playgroud)

所以我发现它是因为其他花括号.有没有一种方法可以使用-f格式化我的字符串,同时保留括号?或者我只能使用变量替换?

string powershell formatting powershell-3.0

12
推荐指数
1
解决办法
5097
查看次数

是否有适用于版本2的PowerShell等效tracert?

我正在使用PSVersion 2.0,我想知道是否有相当于traceroute它?

我知道PowerShell v4有没有Test-NetConnection cmdlet做tracert但v2 ?! 可以这样做:

Test-NetConnection "IPaddress/HOSTaname" -TraceRoute
Run Code Online (Sandbox Code Playgroud)

谢谢

powershell traceroute powershell-2.0

12
推荐指数
1
解决办法
2万
查看次数

如何在返回具有相对于驱动器名称的文件时查询临时PS-Drive?

我正在尝试创建一个脚本,我将在文件服务器中搜索非继承权限.因此,我遇到了文件名的260个字符限制.我看到的一个建议,我认为会有所帮助,有几次是创建一些非持久性PS驱动器,并且可以查询这些驱动程序.

问题是,当我使用Get-ChildItem新PS驱动器时,它返回具有完整网络路径的对象而不使用我指定的名称.

# Cycle the folders
Get-ChildItem $rootPath -Directory | select -first 1 | ForEach-Object{
    $target = $_

    # Create a PS Drive for each sub directory and get all the folders
    [void](New-PSDrive -Name $target.Name -PSProvider FileSystem $target.FullName)

    # Get the file objects. 
    Get-ChildItem "$($target.Name):\" -Recurse
}
Run Code Online (Sandbox Code Playgroud)

我相信如果我用驱动器号创建了一些合适的持久性网络驱动器,我就不会遇到这个问题.

希望我只是没有错过它,但Technet for New-PSDrive并不是100%清楚这个场景.

我正在寻找一种方法来制作ps-drive并引用文件夹,同时返回相对于新驱动器名称的路径.考虑我制作的psdrive(G :)然后我的一个映射网络驱动器(M :)的输出.

PS M:\> Get-ChildItem G:\

    Directory: \\server01\COMMON\Folder

Mode                LastWriteTime     Length Name                                                                                                            
----                -------------     ------ ----                                                                                                            
d----         6/18/2011   8:14 AM            Folder 1 …
Run Code Online (Sandbox Code Playgroud)

powershell network-drive powershell-4.0

12
推荐指数
1
解决办法
4494
查看次数