标签: powershell

普通极客可以从 Powershell 中获得什么好处?

我想知道普通极客可以从 Powershell 中获得什么好处。所以拿那些把所有时间都花在电脑前但不一定是程序员的人来说吧。游戏玩家、动漫和硬件怪胎,或者只是一般的计算机极客。这些非技术用户从学习命令行/脚本语言中得到什么好处?生产力有任何提高吗?

我一直对命令行/脚本工具很感兴趣,因为极客比我使用它们并发誓更酷(极客)。但是,除了每周一次自动执行文件夹 RAR-ing 和通过网络共享备份一次之外,我不知道像我这样的人使用命令行有什么用,但也许一旦我学会了它,我会发现它更有用吗?

有任何想法吗?

script powershell command-line

6
推荐指数
1
解决办法
3453
查看次数

Windows 7 上的 Powershell 如何区分两个文件?

Windows 7 上的 Powershell 可以区分硬盘驱动器上的两个文件吗?

有时文本比较是有帮助的,但除此之外,仅仅判断一个文件是否与另一个文件相同是有帮助的。谢谢。

更新:

在 UNIX 上,它是

diff file1.dat file2.dat
Run Code Online (Sandbox Code Playgroud)

在 Powershell 上,如果我创建包含内容“hello”的 file1.txt 并将此文件复制到 file2.txt,然后键入

diff file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)

结果是

InputObject                                                 SideIndicator
-----------                                                 -------------
file2.txt                                                   =>
file1.txt                                                   <=
Run Code Online (Sandbox Code Playgroud)

如果我将 file2.txt 的内容更改为“hello world”并再次进行 diff,则 diff'ing 的结果是相同的。

windows-7 powershell diff comparison

6
推荐指数
1
解决办法
8083
查看次数

用于 Windows cmd/powershell 的多尾?

是否有类似multitail的程序,但适用于 Windows cmd.exe 或 powershell(不是 GUI)?

替代文字

windows powershell command-line tail

6
推荐指数
1
解决办法
7041
查看次数

Powershell 访问表中的单个值

这应该是一个非常简单的方法,但我似乎找不到一种简单的方法。

例如,在 Powershell 中,我使用 CSV 文件,然后使用该文件根据 ID 查找一些配置数据。这是我现在拥有的,它有效,但必须有更好的方法。

$configList = import-csv "C:\myconfig.csv"
$id = "5001"

$configList | where-object {$_.id -eq $id} | foreach-object{ $configData = $_.configData}
Run Code Online (Sandbox Code Playgroud)

如果使用格式表等,我总是得到列标题,然后我必须将其切断。

同样,这必须非常简单,而且这不是表演障碍。但是必须有更好的方法来从没有列标题的表中获取数据。

powershell

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

如何在 PowerShell 中将字节数组显示为连接的十六进制数字字符串?

我正在使用 WMI 找出 HBA 卡上我的端口的 WWN(全球通用名称)是什么。我可以取回 WWN,但它包含为 8 字节数组。我想将此字节数组转换为 16 位十六进制数字的字符串,以便于显示。

这是我用来在自己的行中打印出每个数字的查询。有没有办法将其转换为将 8 行合并为一行?

gwmi -namespace root\wmi -class MSFC_FibrePortNPIVAttributes | select -expand WWPN | foreach { $_.ToString("X2") }
Run Code Online (Sandbox Code Playgroud)

我认为以下内容可用于仅使用字节数据进行测试,但我还是 PowerShell 的新手。

[byte[]] 1,2,3,4,5,6,7,8 | foreach { $_.ToString("X2") }
Run Code Online (Sandbox Code Playgroud)

powershell fiber

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

WinRM - 它是什么以及如何使用它?

在安装更新期间,我注意到“PowerShell 2.0 和 WinRM”更新。在阅读了一些 Microsoft 和 Wikipedia 页面后,我了解到它是在 SOAP 上运行的远程管理系统,并且对于远程技术支持很有用。

当我提供远程“家庭技术支持”时,我变得感兴趣。

所以:

  1. 什么是 WinRM?它是否与 SSH 略有相似?
  2. 我到底可以用它做什么?
  3. 有 Linux 客户端吗?我读了一些 Novell 正在准备的内容,但信息可能已过时。
  4. 什么是 Windows 7 客户端?

linux windows-7 powershell powershell-2.0

6
推荐指数
1
解决办法
7244
查看次数

列出特定级别的子文件夹,并带有修改日期

给你们的挑战,在这里:

我需要一些方法(最好是内置的,但也可以考虑 F/OSS 第三方应用程序)来生成某个级别的子文件夹列表,以及(或者,更好地,过滤)它们的“修改日期”。请注意,我需要的文件夹列表-输出应排除文件。

例子:

对于文件夹结构:

C:
\---Reports
    +----Task1
    |    \----Report1
    |         +----CSV
    |         +----HTML
    |         \----XML
    +----Task2
    |    +----Report1
    |    |    +----CSV
    |    |    +----HTML
    |    |    \----XML
    |    +----Report2
    |    |    +----CSV
    |    |    +----HTML
    |    |    \----XML
    |    \----Report3
    |         +----CSV
    |         +----HTML
    |         \----XML
    \----Task3
         +----Report1
         |    +----CSV
         |    +----HTML
         |    \----XML
         \----Report2
              +----CSV
              +----HTML
              \----XML
Run Code Online (Sandbox Code Playgroud)

我希望列表具有类似于以下内容的信息:

PATH                         | MODIFIED
=============================|==========
C:\Reports\Task1\Report1     | 6/23/2011
C:\Reports\Task2\Report1     | 6/17/2011
C:\Reports\Task2\Report2     | 6/30/2011 …
Run Code Online (Sandbox Code Playgroud)

powershell report windows-xp

6
推荐指数
1
解决办法
3836
查看次数

在 Powershell 中使用环境变量调用目录的任何快速方法

假设我有一个名为 p 的用户环境变量,它的值是我存储项目的路径。

在命令提示符中,您可以使用它们从命令行的任何位置快速访问特定目录:

cd %p%
Run Code Online (Sandbox Code Playgroud)

这在 Powershell 中不起作用,无论如何可以获得相同的功能?

powershell command-line environment-variables powershell-2.0

6
推荐指数
1
解决办法
1616
查看次数

在 powershell 中使用 SQLConnection 对象

例如,我想像从 vb 一样使用 SQLConnection 对象。我想这样做:

例如

$conn = New-Object system.data.sqlclient.sqlconnectionstringbuilder
$conn.DataSource = 'myserver'
Run Code Online (Sandbox Code Playgroud)

但这失败了:

Keyword not supported: 'DataSource'.
At line:1 char:4
+ $conn. <<<< DataSource = 'myserver'
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyAssignmentException
Run Code Online (Sandbox Code Playgroud)

虽然:

PS C:\WINDOWS\system32\WindowsPowerShell> $conn|Get-Member *sour*


   TypeName: System.Data.SqlClient.SqlConnectionStringBuilder

Name       MemberType Definition
----       ---------- ----------
DataSource Property   System.String DataSource {get;set;}
Run Code Online (Sandbox Code Playgroud)

我的 Powershell 版本:

PS C:\WINDOWS\system32\WindowsPowerShell> $PSVersionTable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.3634
BuildVersion                   6.0.6002.18111
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion …
Run Code Online (Sandbox Code Playgroud)

powershell

6
推荐指数
1
解决办法
2256
查看次数

通过命令提示符重命名计算机

我是一家小型企业(120 名员工)的系统管理员,我正在寻找一种简单的方法来将办公室中的所有计算机重命名为更统一的命名约定。

我曾尝试在命令提示符中使用“netdom renamecomputer”行,但这似乎根本不起作用。可能是因为不在组策略上。我们使用 WORKGROUP 设置我们的计算机,然后让我们的员工使用远程桌面连接连接到工作服务器。

是否有我可以下载的 Powershell 工具或程序来帮助我重命名网络中的所有计算机?

PS 我们主要有 Win7 机器,但最近我们增加了大约 20 台 Win8 机器(以防万一)

windows-7 powershell windows-8

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