我有一个相当标准的带有标题的csv文件我想添加一个新列并将所有行设置为相同的数据.
column1, column2
1,b
2,c
3,5
Run Code Online (Sandbox Code Playgroud)
column1, column2, column3
1,b, setvalue
2,c, setvalue
3,5, setvalue
Run Code Online (Sandbox Code Playgroud)
如果有人能指出我的方向很好,我就找不到任何相关的东西.对不起,Power Shell非常新.
问候,我正在尝试使用power-shell命令停止"资源管理器"进程:
Stop-Process -ProcessName explorer -Force
Run Code Online (Sandbox Code Playgroud)
该行的问题,它将停止进程但它会自动再次运行,所以它只是重新启动进程而不是停止它.
请建议我如何使用power-shell完全停止"资源管理器"进程
问候,
如何知道PowerShell是否安装在远程工作站上 ; 我们需要对所有支持PowerShell的工作站进行清点,以便我们可以规划部署的更改; 有没有办法远程知道PowerShell是否已安装以及版本是什么?
我正在尝试创建一个脚本,根据计算机可能具有的特定属性生成计算机列表.例如,我正在尝试制作Windows XP计算机和Windows 7计算机的列表,将它们的名称放在.csv文件中并输出每个计算机的最终计数.
到目前为止,这是我的代码
import-module ActiveDirectory
$computers = get-adcomputer -Filter 'ObjectClass -eq "Computer"' -properties "OperatingSystem"
$i = 0
$j = 0
Foreach ($computer in $computers) {
if ($computer.operatingSystem -like "Windows 7*") {
$i++
'"{0}","{1}","{2}"' -f $computer.Name, $computer.OperatingSystem, "$computer.DistinguishedName" | Out-file -append C:\users\admin\desktop\test.txt
}
elseif ($computer.OperatingSystem -like "Windows XP*") {
$j++
'"{0}","{1}","{2}"' -f $computer.Name, $computer.OperatingSystem, "$computer.DistinguishedName" | Out-file -append C:\users\admin\desktop\test.txt
}
else {
$_
}
}
write-host "$i Win 7"
write-host "$j Win xp"
$k = $i+$j
write-host "$k Total"
Run Code Online (Sandbox Code Playgroud)
样本输出: …
我如何在 PowerShell 中编写函数或别名命令,以便 cd 可以做两件事:
编辑:
我需要的是这个:
function ccd
{
param($path)
set-location $path
ls
}
Run Code Online (Sandbox Code Playgroud)
但我想写 cd 而不是 ccd。当我将函数名称更改为 cd (从 ccd)时,它会更改目录,但未列出其中的项目:(。似乎我的 cd 函数被覆盖了。
我是powershell的新手,必须根据名称列表从AD中获取用户.有没有办法使用类似于SQL中的in-statement来过滤AD?(从名为('Joe','Bill)的用户中选择*?
至于现在我在foreach循环中获取用户并将它们添加到arraylist,但我不知道这是否是一个好习惯:
function GetUsers()
{
$dummydata = @('Bill','Joe','Sam')
$users = New-Object System.Collections.ArrayList($null)
foreach($user in $dummydata)
{
$aduser = get-aduser -f {GivenName -eq $user} -Properties * | select *
$users.add($aduser) | Out-Null
}
Return ,$users
}
Run Code Online (Sandbox Code Playgroud) 想得到一个帮助,想要一个正则表达式来消除"\"以及之前发生的事情,
Input should be "vmvalidate\administrator"
and the output should be just "administrator"
Run Code Online (Sandbox Code Playgroud) 我在PowerShell中匹配包含管道字符的字符串时遇到困难.匹配在以下情况下返回true,但不应:
> "Debug|x86" -match "Debug|x128"
True
Run Code Online (Sandbox Code Playgroud)
我已经尝试转义匹配参数管道字符,但这不会改变意外的结果,例如:
> "Debug|x86" -match "Debug`|x128"
True
Run Code Online (Sandbox Code Playgroud) 我使用PowerShell发送SMTP邮件.电子邮件的正文来自文件.问题是,当我收到这封电子邮件时,它会删除所有空格和换行符,因此它看起来很难看.
Outlook客户端无法删除换行符.
我的代码如下:
$smtpserver = "smtpserver"
$from="email1@domain.com"
$to="email2@domain.com"
$subject="something"
$body= (Get-Content $OutputFile )
$mailer = new-object Net.Mail.SMTPclient($smtpserver)
$msg = new-object Net.Mail.MailMessage($from,$to,$subject,$body)
$msg.IsBodyHTML = $true
$mailer.send($msg)
Run Code Online (Sandbox Code Playgroud)
我甚至试图使用带有-encoding ASCII的get-content和其他几个但没有帮助.有人可以帮忙吗?
-
谢谢
我是PowerShell的新手并注意到执行help
并且Get-Help
是两个不同的东西,前者表现得像Get-Help | more
.
我的第一个想法是,也许help
是别名,Get-Help
但显然它不能是别名,如果它的行为不同,事实上,它不是.
那是什么help
?它有一些内置功能吗?具有非标准命名约定的cmdlet?(顺便说一下,类似的问题可能会被问到more
,也可能是其他问题.)