PowerShell DSC由哪个进程运行?
查询msft_providers
Get-WmiObject msft_providers | select provider
这里显示的provider是DSCTimer,还有一个provider是DSCCore
查看进程
$dscProcessID = Get-WmiObject msft_providers | Where-Object {$_.provider -like 'dsc*'} | Select-Object -ExpandProperty HostProcessIdentifier
Get-Process -Id $dscProcessID
查询进程的时候,添加 -includeusername 可以显示该进程运行的账户
DSCTimer是network service账户运行
DSCCore是system账户运行
运行账户
知道运行的账户对我们理解程序什么有帮助,比如我们执行一个数据库备份的操作,通过调用invoke-sqlcmd
命令去执行,该命令可以显示的传递username和pwd,也可以不传递。
那么不传递的时候,用的是哪个账户呢?
答案是,使用运行PowerShell Session的那个账户,也就是System账户。
Specifies the login ID for making a SQL Server Authentication connection to an instance of the Database Engine.
The password must be specified through the Password parameter.
If Username and Password are not specified, this cmdlet attempts a Windows Authentication connection using the Windows account running the Windows PowerShell session. When possible, use Windows Authentication.
如果我们在SQLServer中禁掉system账户,那么备份时候就会出错。