的功能之一是能够重置,如和中所示。是否可以在PowerShell ISE中执行此操作?几个月前,我编写了一个名为“ISE会话工具”的模块来执行此操作。本质上,ISE中的运行空间等同于一个“选项卡”容器,其子文档共享该运行空间。我的脚本查看当前打开的文件,记住它们,创建新选项卡(运行空间)并关闭旧选项卡,然后将打开的文件添加到新选项卡。其他特点:
自动保存当前会话(文件在当前选项卡中打开。)
如果需要,可以禁用和手动控制
提示在ISE打开时重新加载最后一个会话
系统会向您显示一条提示,提醒
我创建了一个小的PowerShell脚本来删除Autodesk应用程序。但是,PowerShell不喜欢%username%这样的系统变量。在Powershell中实现这一点的最佳方式是什么
# Remove all Autodesk products from a Windows System
$AutoDeskPaths = "C:\Users\%username%\AppData\Roaming\Autodesk", "C:\Users\%username%\AppData\Loca
我有一个文件夹,其中部署了windows服务。此文件夹中的每个部署都创建了一个新文件夹,其名称为适当的当前日期和时间,并从此文件夹重新安装win service。
如何定义上一个部署文件夹的物理路径 如果我理解您的问题,您希望从D:\projects\ru\service获取第二个最新文件夹
您可以这样做:
(dir -path D:\projects\ru\service | ? {$_.PsIsContainer} | sort LastWriteTime)[-2].FullName
如果
我有两个数组,其中包含从文本文件中获取信息的字符串选择。然后,我使用For循环遍历这两个数组并一起打印字符串,这恰好创建了一个文件夹目标和文件名
Get-Content .\PostBackupCheck-TextFile.txt | ForEach-Object { $a = $_ -split ' ' ; $locationArray += "$($a[0]):\$($a[1])\" ; $imageArray += "$($a[2])_$($a[3])_VOL_b00$($a[4])_i0
我有一个文本文件,包含数百行包含数据库信息的文本
我试图为任何35GB的数据库提取DatabaseIds
我想使用Powershell查询该文件,并生成一个包含所有匹配数据库的文本文件
所以本质上,我想扫描文件,找到一个DatabaseSize,它是35,然后从前面的3行中提取相应的DatabaseId
我已经在网上找遍了,但似乎找不到任何可以做到这一点的东西
文本文件提取示例:
ServerId = VMlinux-b71655e1
DatabaseId = db-ecb2e784
Statu
是否可以使用powershell获取azure服务的公共虚拟IP(VIP)?我不确定,但我怀疑是否有一种简单的方法,因为它可能会改变(尽管它很少改变)
Microsoft Azure提供了一个友好的DNS名称,如“blogsmarx.cloudapp.net”或“botomatic.cloudapp.net”。提供这些名称是有原因的(不仅仅是比IP地址更漂亮)。这是一个必要的抽象层,可以让下面的虚拟IP地址(VIP)在不中断服务的情况下进行更改。应用程序的VIP很少更改,但特别是考虑到地理位置场
我花了几个小时试图解决这个问题。我正在运行PowerShell以验证各种服务是否正在运行。我想从Windows任务计划程序每隔5分钟运行一次
它检查其他服务器上的服务,以及运行它的同一台机器上的一些服务。当我在TaskScheduler下运行它时,在运行interactive的同一用户ID下,我会得到不同的结果。以交互方式显示本地计算机上的所有服务正在运行。当运行任务调度器时,它告诉我找不到服务
这只是一个更大程序的一个片段。我从CSV文件中获取服务器/服务名称,然后在最后它发送一封漂亮的HTM
如果我在没有外观的情况下运行此脚本并手动输入say my email作为(邮件)部分=myaddress@someplace.com)它工作并显示在广告中找到的用户,但当我运行此脚本循环时,返回的是电子邮件地址的完整列表,其中用户在广告中不存在,就好像它在广告中找不到电子邮件地址一样
我在这里做错了什么
$path = "H:\users.csv"
$csv = Import-Csv $path
Import-Module ActiveDirectory
foreach($line in $
在远程服务器上运行PowerShell脚本时,我遇到以下错误:
Starting the CLR Failed with HRESULT 8007000e
这就是我运行/调用脚本的基本方式:
在本地服务器上,我正在运行一个CMD脚本,该脚本调用PowerShell脚本来创建到远程服务器的远程会话。在PowerShell脚本中,我还调用CMD脚本在远程服务器上运行,如下所示:
$Script = [scriptblock]::create("cd $BuildPath | cmd.exe /c
我在一个函数的开头使用了以下内容,该函数用于查询计算机中的各种wmi对象。如果仅运行just get_卷,则应使用127.0.0.1。似乎当我在没有任何字符串的情况下运行get_volumes时,它会直接传递到else段。实现这一目标的正确或更好的方法是什么
PS> function get_volumes([string]$a){
if ($a -eq $null){
write-host 'Using localhost'
$a = '127.0.0.1'
}e
老实说,我对powershell和所有类似的东西都很熟悉
我试图实现一个简单的批处理文件来执行,并简化解锁用户帐户
目前,我已经设法创建了以下基于谷歌搜索,这将只是解锁一个名为“用户名”的用户帐户
powershell-命令“&{import module activedirectory;unlock adaccount USERNAME}”
我试图实现的是将“USERNAME”部分设置为一个变量,并在执行批处理文件时创建一个提示以请求用户名,以便能够解锁任何键入的帐户
我试过搜索相关的帖子,但
我试试这个命令
get-wmiobject win32_networkadapter -filter "netconnectionstatus = 2" |
Select macaddress | Select -Last 1
我想摆脱macaddress所说的格式表
我该怎么做?我只需要macaddress,不需要表。选择对象的属性以及其他内容。结果仍然是对象列表,尽管表格输出显示了对象的属性。如果只需要特定属性的值,则需要将其展开:
get-wmiobject win32_networ
是否可以对文件中的特定字符串进行计数并将值保存在变量中
对我来说,应该是字符串“/export”(不带引号)。这里有一种方法
$count = (get-content file1.txt | select-string -pattern "/export").length
如注释中所述,这将返回包含模式的行的计数,因此如果任何行有多个模式实例,则计数将不正确以下是一种方法:
$FileContent = Get-Content "YourFile.txt"
$Matches = Select
我不知道powershell脚本中的错误在哪里
#Add-PSSnapin SqlServerCmdletSnapin100
#Add-PSSnapin SqlServerProviderSnapin100
$DATA=IMPORT-CSV "C:\Users\pzd74f\Desktop\SLAPERFMAT2011.csv" -header("SLA1 Applications Availability")"
FOREACH ($LINE in $DATA)
{
$SLADefinit
当我尝试对生成的校验和文件运行md5sum-c时,遇到了一个错误。我应该提到的是,我正在从PowerShell运行这个程序(最终会有一个脚本运行这个程序),这是md5sum的cygwin版本
我有一个测试文件,jira_defect.txt,我创建了如下校验和:
md5sum jira_defect.txt > result.md5
这将提供一个包含以下内容的文件:
7d559b59459052f274e290b5e01a5485 *jira_defect.txt
但是当我跑的时候
m
我是PowerShell新手,在查找Convert VHD命令时遇到问题。我希望谷歌告诉我需要安装SDK,但找不到任何说明
帮助页面显示它已经安装在Win 8.1(我的操作系统)上。如果是,它在哪里?
感谢您的帮助。您必须导入ServerManager模块
Import-Module ServerManager
当然,您必须安装它,您可以在Windows PowerShell的名为Hyper-V Module的功能中找到它
这应该是从Powershell安装模块的代码
Add-Window
以下是我在项目目录中运行特定grunt任务时Windows PowerShell的一些示例输出:
Done, without errors.
Execution Time (2015-08-25 01:57:14 UTC)
loading tasks 9ms ██████ 17%
loading grunt-contrib-copy 23ms ███████████████ 43%
copy:styles 20ms ███
我有一个调用WinSCP.NET程序集的脚本。脚本从FTP目录下载最新的文件,并根据其文件扩展名+.txt(2245.xml->xml.txt)对其命名
我需要创建一个筛选器,以便只下载名为tn*或nc1的文件扩展名。谁能给我指出正确的方向:
$session = New-Object WinSCP.Session
# Connect
$session.Open($sessionOptions)
# Get list of files in the directory
$directoryI
我在powershell中有以下代码,非常有效,但由于.NET问题,需要将其作为vbscript运行。有人能帮我理解vbscript支持的调用方法吗
此代码读取URL时使用用户名和访问键等获取信息的方法。$item是正在读取的项目的占位符
$url="http://server.org/Info/svcs/Info.wsdl"
$proxy=New-WebServiceProxy -Uri $url -Class "proxy" -Namespace "Service" -UseDefaultC
我正在尝试使用这行代码指定powershell ISE的快捷方式
$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Comment Selected Lines",{Comment-IseSelectedLines},"Ctrl+/")
但我犯了这个错误
Cannot convert argument "shortcut", with value: "Ctrl+/", for "Add" to type
"System.Windows.
我在微软广告公司工作。我已经配置了WSMan和CredSSP。一切都很好,会话很好
几天前我们遇到了一个问题,一个系统管理员错误地通过GPO创建了一个防火墙规则,阻止了所有入站连接(他的意思是允许连接)。当他能够对错误做出反应时,许多电视台已经更新了这项政策
此时,任何计算机都无法从域控制器接收任何更新。所有这些电台都被封锁,无法访问任何外界
要解决这个问题,我必须关闭防火墙,更新组策略,然后重新打开防火墙。它在一些计算机站上工作
从那以后,我写了一些脚本来处理将来类似的情况。我唯一关心的是执行
我在一个驱动器的不同目录中有备份文件。这些目录中的文件可能相当大,高达800GB左右。因此,我有一个批处理文件,其中包含一组脚本,用于将文件上载/同步到S3
见下例:
aws s3同步R:\DB\u Backups3\System s3://usa daily/System/--exclude“*”--include“*/*/Diff/*”
上传时间可能会有所不同,但目前为止还不错
我的问题是,如何编辑脚本或创建一个新脚本,在s3存储桶中检查文件是否已上载,并且仅当文件已上载,然后将其从本地驱动
由于StackOverflow的杰出人员,我们收到了一份非常好的关于如何在脚本或函数的Param()子句中检索ValidateSet中定义的值的报告:
Param (
[ValidateSet('Startup', 'Shutdown', 'LogOn', 'LogOff')]
[String]$Type = 'Startup'
)
(Get-Variable Type).Attributes.ValidValues
唯一让我感到困扰的是,这段代码只有在PowerShell
我有一个脚本,可以将具有特定扩展名的文件从源目录移动到目标目录
我的源目录如下所示:
if(!(Test-Path $SourceDirPath) -or !(Test-Path $DestinationDirPath))
{
Write-Host "The source- or destination path is incorrect, please check "
break
}else
{
Write-Host "Success"
Copy-Item -p
我是PowerShell的新手,我有一个小问题
我在C://--C:/folder1和C:/folder2
folder1包含10个子文件夹,我只想将其中的3个子文件夹复制到folder2
我应该用远程计算机来做,所以我也应该使用Invoke命令
不幸的是,该程序与我的代码不兼容
$SubFolders = "C:/subfolder1", "C:/subfolder2", "C:/subfolder3"
$copy = InvokeCommand -ComputerName $compname
我刚刚完成菜单生成器的工作,但我需要添加警告消息或弹出窗口,如下所示:
与菜单的其他元素一样,警告消息的宽度应为80,内部宽度为78,因为边框为两个。我构建了一个带有一个参数的函数,可以很容易地为将要显示的文本生成消息。问题是,当我输入的文本长度超过78个字符时,就会出现错误。我想把它分成两行或更多行,这取决于我们将获得多少行参数,因为没有人会在每个参数/行上计算到78。我正在寻找一种可能性,将文本分割成两行或多行,以适应78的内部宽度
因为这次我决定用空格分隔符分割文本
$textsplit
标签: Powershell
continuous-deploymentadministratoroctopus-deploy
我已经设置了一个八达通部署脚本,以使用update SPSolution和WSP包更新SharePoint解决方案
当我从Powershell ISE(以管理员身份运行)测试脚本时,它可以工作
当我从Powershell ISE(正常模式)测试脚本时,它失败,出现错误Update SPSolution:Access denied
当我让它从Octopus运行时,它也会失败,出现错误Update SPSolution:Access denied
我添加了以下代码,以查看从八达通运行时,我的代码
有人能告诉我我犯的语法错误吗
robocopy "$env:UserProfile\desktop\" "$Destination\desktop" *.* /copy:DAT /log:"C:\Logs"
robocopy "$env:UserProfile\pictures" "$Destination\pictures" *.* /copy:DAT /log+:"C:\Logs"
robocopy "$env:UserProfile\documents\" "$Destination\do
这条线行得通
get-aduser -f {name -like '*John*'} | format-Table name,SamAccountName
===
下面的方法不起作用。我们将非常感谢您的帮助,提前非常感谢
$name = Read-Host "Enter a First Name or Last Name"
$uname = "'*" + $name + "*'"
get-aduser -f {name -like $uname } | Format-Table na
我们将我们的.AWS.PEM密钥的内容存储在密码管理器实用程序中
我们正在使用PowerShell自动化服务器的构建
目前我正在尝试从密码管理器中提取密码,并创建一个.PEM密钥。一旦我完成了它,它会立即被删除
这是我的密码:
try
{
//pulling the key!
$password = $mypulledkey
}
catch{}
$password | Out-File -Encoding ascii C:
这个PowerShell脚本工作得很好,但我需要它是一个单行脚本,如何内联创建参数对象
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument 'invoke-command -scriptblock {iisreset}'
$trigger = New-ScheduledTaskTrigger -Daily -At 9am
Register-ScheduledTask -Action $action -Tri
如何对联机列和正常运行时间列进行排序?我想在顶部显示True,在顶部显示最长的正常运行时间,然后是FALSE
<#
.Synopsis
Query Uptime Details of servers.
.Description
This script helps you to get the uptime details of the servers. It also generates a HTML report
我的脚本监视进程的CPU使用情况,每5秒循环一次代码并将其写入文件。这很好用
但是我发现当一个新进程运行时,我的脚本将无法找到它,直到我停止脚本并再次运行它
此外,如果进程结束/停止,脚本会给出以下错误:
获取计数器:其中一个性能计数器示例中的数据为
无效。查看每个项目的状态属性
PerformanceCounterSample对象以确保其包含有效数据
第2行字符:34
PowerShell似乎只检索一次进程信息并将其缓存
如果我运行bellow脚本(它是我所有脚本的一部分),它将完美运行:
w
我一直在使用在此处和其他来源上找到的几个脚本,试图使用PowerShell脚本删除系统上的数千个空文件夹,这些文件夹最终用于日常表单处理。有几种简单有效的方法可以做到这一点,但我需要一种方法来验证和选择文件夹,这样我就不会删除少数即使是空的也不应该删除的文件夹
我正在为$folder使用参数语句,因此我可以在命令行中输入它,或者它将提示输入它。使用这个命令,我得到了gridview,如果我只是简单地回显输出,就可以了。然而,我似乎不知道如何将输出传递给Remove Item或Del-Recurs
我在脚本中引用了一些文件,其中有一个句点表示脚本的当前执行目录,例如。\images\test.png,但我发现我也可以使用$PSScriptRoot\images\test.png指向同一个文件
有没有一个论点可以支持一个而不是另一个?使用PS ISE时,前者要求在运行代码之前将CD放入脚本目录,但脚本通常会自动运行,因此PWD应始终在范围内本地化。还有别的案子我没有考虑吗
ED:我想我应该指定,在一个独立脚本被隔离执行的情况下,我是在询问,它被直接调用,而不调用其他脚本,这可能导致当前位置的
有没有一种方法可以将对象传递到函数中而不必命名对象本身
换句话说,我可以使用对象的名称调用函数并对该对象进行更改,而不是对每个$username重复相同的最后三行代码(有10个username文本框),如果输入对象都是引用类型,则可以在$input枚举器上迭代:
function Itil
{
$_.Font = 'Microsoft Sans Serif, 8.25pt, style=Italic'
$_.Text = 'Double-click to add username
在命令行的PowerShell中,如何为多行命令输入选项卡缩进
显然,[tab]或[shift]+[tab]不起作用,否则我不会问这个问题。使用PSReadline(内置于PS 5.1或可通过安装模块获得)您可以制作自定义密钥处理程序:
Set-PSReadlineKeyHandler -Chord 'ctrl+tab' -ScriptBlock {
$text = ''
$cursor = 0
[Microsoft.PowerShell.PSConsoleReadLi
我试图简单地返回活动用户名,以便稍后在脚本中使用,但是我目前不想让我的变量只填充用户名,不包括域
Function Get-Username() {
$username = Get-WMIObject -class Win32_ComputerSystem | select username
return $username
}
Function Delimit-Username() {
$newUserName = $username -replace 'DOMAIN\',''
Wri
因此,我很难理解如何在PowerShell中使用自定义类继承System.Collections.Generic.List类。如果我使用下面的代码示例,脚本将失败,错误为“创建管道时出错”。如果我将列表类型从MyClass更改为标准类型,如String,则代码工作正常。我肯定我遗漏了一些明显的东西,但我的搜索没有找到答案
Class MyClass
{
[String]$foo
[int]$bar
}
Class MyClassList : System.Collections.
我正在执行一项任务,需要从UNC路径获取服务器上的本地路径
基本上\\server\MyShare\Somewhere\Bla应该是例如D:\foo\bar\Somewhere\Bla
我从[system.Uri]$Path了解服务器主机,因此我知道在哪个服务器中查找本地路径
$localPath = Join-Path $localShare $remainingPath
我可以使用Get SmbShare获取服务器上的共享
现在我唯一需要比较的是,分割UNC路径并获取共享名
有没有一个简单
我有一个PowerShell脚本,可以重新启动文件中列出的服务器
foreach ($server in $servers) {
try {
cmd /c "shutdown.exe /r /f /m \\$server /t 0 /d p:0:0 /c 'PlannedRestart'"
"$server`tRestarted"
"$server`tRestarted" | Out-File -FilePath .\RestartSer
尝试将其拆分为“-”和任意数字,
以便
拆分后的第一部分是abc_test.txt
我在下面试过了
$string = abc_test.txt-1234.xml
将破折号添加到您的-split:
$new = $string -Split'(?=\d)'
$new[0]
$new = $string -Split'(?=-\d)'
在堆栈外运行美味测试时,我需要将字符串“faillog”作为美味模式参数传递
在bash中,这是非常直接的:
PS C:\Pyrethrum>堆栈测试--fast--ta“-p\“失败日志\
但尝试使用Powershell实现同样的目标让我抓狂:
PS C:\Pyrethrum>stack test--fast--ta“-p”“fail”“
没有空间时工作(运行测试)
PS C:\Pyrethrum>stack test--fast--ta“-p”失败日志“
分析目标时出错:未找到目录:日志
为什么powershell不过滤对象的toString方法的输出
Get-ChildItem cert:\localmachine\my | % { Select-String -InputObject $_.ToString() -Pattern 'testcert' -SimpleMatch }
相反,我只是得到了我通常通过跑步得到的一切
获取ChildItem证书:\localmachine\my |%{$\u0.ToString}
我希望像grep或findstring一样,我只得到与
我正在尝试创建一个从标准[Data.DataTable]类派生的PowerShell[DataTable]类,以简化数据表的创建:
(另见:)
它用于创建新的数据表:
$MyDataTable = [DataTable]('a', 'b', 'c')
$MyDataTable.AddRow(@(1,2,3))
但是要获得需要的$DataTable,需要执行以下操作:
$MyDataTable.DataTable
a b c
- - -
1 2 3
我希望它在默认情况下输出数据表$MyData
我有几个文件服务器,我想创建一个路径,如果它不存在。。。简单对吧?我想是的,但是路径是沿着一个隐藏的管理共享
就在我认为自己在编写一个简单问题的脚本方面越来越得体的时候,我的$h@$@却被一股脑地吸引住了
下面是我划掉的代码:
Cls
#check for fileshare
$servers = get-content C:\Temp\test.txt
forEach ($server in $servers) {
$shareTest = Test-Path "\\$Server\Shar
我正在尝试查询此API
我无法解决URL错误,这让我相信在这行的某个地方我在格式方面出了问题,但我不知道在哪里,所以任何帮助都将不胜感激
$Request = Invoke-RestMethod -Method Post
-Uri 'https://api.iocparser.com/url'
-Headers @{"Content-Type" = "application/json"
我需要从PowerShell脚本中打印PNG文件。在Win10下,指向特定打印机。我找到了许多针对文本文件和PDF的解决方案,但没有一个针对图像文件。因此有一个答案:
Start-Process C:\windows\system32\mspaint.exe -Arg '/p "C:\scripts\testfil.PNG" /pt "\\ourprintserver\skr1234"'
欢迎访问stackoverflow.com。对于您遇到的任何特
上下文:
我需要能够捕获在使用Restore-DbaDatabase cmdlet时阻止还原某些备份的警告
我发现一些帖子提到,还原数据库的-Silent参数将把这些警告视为错误,这样我就可以捕捉到它们,但是这个参数已经不存在了
我使用-EnableException参数时运气不佳。警告显示在屏幕上,但我无法在脚本中捕获它们,因为没有引发异常,如下图所示:
问题:
捕捉/捕获dbatools命令所有警告的正确方法是什么?您需要将警告流重定向到stdout3>&1。请参阅。您也可以在脚本开头使用
执行上述脚本时,计算时间的结果值保存为EndTime.txt。但是,900秒过后,消息不会保存在EndTime.txt文件中,只输出时间值。如何修复?根据注释“当执行上述脚本时,结果仅为数字ex)39568.2052459不记录“时差大于900秒”,我最终可能知道您的目标:)
您所做的是将秒数通过管道传输到文件($diff.TotalSeconds | Out文件'D:\script2\IIS\EndTime.txt'),您需要通过管道传输消息本身。我在消息中添加了秒数值
$timeFromFi
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 1208 页