1. 获取一个集合的数量
@(get-process | where-object {$_.Name -eq "SERVICE1"}).count
注意:
如果不加“@”,当count为0时将返回空(而非0)。
2. 创建自定义方法
function FindDefaultPrinter
{
Get-WMIObject -query "Select * From Win32_Printer Where Default = TRUE"
}
3. 显示计算字段
C:\PS>get-process | select-object -property ProcessName,@{Name="Start Day"; Expression = {$_.StartTime.DayOfWeek}}
ProcessName StartDay
---- --------
alg Wednesday
ati2evxx Wednesday
ati2evxx Thursday
...
说明
-----------
此命令显示计算机上正在运行的进程的名称和启动日期。
Property 参数的值为 ProcessName 和名为“Start Day”的计算属性。通过使用具有 Name 和 Expression 键的哈希表来添加“Start Day”属性。
4. 获取命令别名
get-alias
5. 创建profile文件
New-Item -path $profile -type file –force
编辑profile文件:
notepad $profile
6. 获取/设置执行策略
Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned
获取签名帮助信息
Get-Help About_Signing
7. 改变当前路径
PS C:\scripts> Set-Location C:\Windows
PS C:\WINDOWS>
8. 在VBScript中执行PowerShell脚本
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("powershell.exe -noexit c:\scripts\test.ps1")
9. 在Windows环境中执行PowerShell脚本
powershell.exe -noexit get-childitem C:\Users\Administrator\Desktop
powershell.exe "C:\Users\Administrator\Desktop\test.ps1"
powershell.exe -noexit "C:\Users\Administrator\Desktop\test.ps1"
注意:
1)powershell.exe后面的文件路径字符串前不能加“&”,否则此脚本文件会被在Notepad中打开,而非被PowerShell执行。
2)文件路径字符串不能用单引号,否则会直接“回显”此字符串,而不是执行。
10. 读取和添加环境变量
$a = $env:path; $a.Split(";")
$env:path = $env:path + ";c:\scripts"
11. 管道示例
get-PsSnapin |select name|Where-Object {$_.name -contains "Microsoft.SharePoint.PowerShell"}
Get-ChildItem C:\Windows | Where-Object {$_.Length -gt 200KB} | Sort-Object Length
Get-Service | Sort-Object Status | Format-Table
12. 如何显示字符串
foreach ($service in get-content c:\services.txt) {
set-service $service -startuptype disabled
"Disabling $service"
}
13. 如何使用管道符(|)
PS C:\> get-content c:\services.txt |
set-service -startuptype disabled
PS C:\>
以下为将发生的情况:
1)Get-Content cmdlet 执行,从而读取整个文件。将文件中的每一行都作为唯一的对象进行处理,将它们放在一起就是对象的集合。
2)将对象的集合通过管道输送到 Set-Service。
3)对于每个输入对象,管道都执行一次 Set-Service cmdlet。对于每次执行,都要将输入对象作为 cmdlet 的第一个参数(即服务名称)传递到 Set-Service。
4)Set-Service 使用其第一个参数的输入对象和指定的任何其他参数(在本例中是 -startuptype 参数)执行。